Hi everyone

I'm not new to Solr, but I'm upgrading from Solr 4 to 5 and needing to use the 
new Zookeeper configuration requirement. It is adding a lot of extra complexity 
to our deployment and I want to check that we are doing it right.


1. We are using Saltstack to push files to deployment servers. That makes it 
easy to put files anywhere I want, run scripts, etc. If you don't know Salt, it 
is a lot like Puppet or other configuration management tools. Salt is all 
python.

2. We use Jenkins to build and test

3. Deployment servers are all FreeBSD.


Now, in the old days, I could just push the right core configuration files to 
each Solr instance (we have three cores), make sure one is the master and use 
cron to ensure the master updates. The other Solr slaves all update nicely. The 
problem we want to escape is that this configuration causes outages and other 
random issues each time the Solr master does a full reload. It shouldn't, but 
it does and hopefully the new SolrCluster will be better.


Now, I can still deploy Solr and Zookeeper using Salt. All that works well and 
is easy. But how I do get the configuration files from our development/test 
environment (built and tested with Jenkins) into production? Obviously I want 
those config files in version control. And maybe Jenkins can zip up the 8 
configuration files (per core) and push them to our artifact repository.

But then what? In the production cluster it seems I then need to

1. Grab the latest configuration bundle for each core and unpack them
2. Launch Java
3. Execute the Solr jars (from the production server since it must be the right 
version)
- with org.apache.solr.cloud.ZkCLI
- and some parameters pointing to the production Zookeeper cluster
- pointing also to the unpacked config files
4. Parse the output to understand if any error happened
5. Wait for Solr to pick up the new configuration and do any final production 
checks


Am I missing some really simple step, or is this what we must now do?

I'm thinking that gradle might help with 2&3 above since then at least it can 
launch the right version of Java, download the right Solr version and execute 
against that. And maybe that can run from Jenkins as a "release" step.

Is that a good approach?

Cheers
Ari




-- 
-------------------------->
Aristedes Maniatis
CEO, ish
https://www.ish.com.au
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to