Building devops pipe with tools such as Jenkins, Nexus, Hashicorp etc.. Deploying via terraform ansible & packer. Intending to use load balancers in front of each tool, want to deploy tools listed above with their data decoupled enabling easier tear down for updates etc. (eg load balance x2, nexus x2, data ?) Does anyone have any advice or suggested examples of how this is achieved. Not quite ready for containers, but trying to decouple data now in readiness for such a change. Cloud provider not defined yet AWS, Open Stack etc etc ?? Thoughts welcomed.
2 Answers
You might want to explore immutable architecture.
Steps
CI with static analysis(Sonarqube, because free!), pushing version artefacts to Nexus.
Base Image using Packer. These must be revisited from time to time. Base Image has security hardening, log shippers, monitoring tools etc.
Environment/Application specific images from Base image.
healthCheck and version API for each application(healthCheck API in deployment and version for visibility of code in different VMs).
Deploy App using Terraform and Ansible.
Can use Jenkins 2.0 (pipeline as code) to achieve points 1,2,3. It can be part of each application itself.
Let me know if this answers your question.
-
you could also handle the configuration part for some of them through exports/imports. Jenkins I know supports this, could probably be achieved with nexus as well. This way you can dynamically provision the base image with the application instead of storing a hierarchy of images. Not that storing images is bad mind you, just a different approach. To be taken with a grain of salt though, I've never put these ideas in production, just dabled with them for a short while. Commented Jul 19, 2017 at 13:40
I would not reccommed OpenStack Docker killed OpenStack I would reccomend to use Kubernetes, investigate, whether it works with your app architecture
-
1OP states "Deploying via terraform ansible & packer.", good luck porting this as containers within kubernetes. Did you try running nexus or Jenkins within kubernetes ? Does it really make sense in your opinion ? (and all in all if you really go this way, drop a word about persistent volumes as this is what OP's is after). Tl;Dr: this answer is just an opinion without any fact to back it up and doesn't address key points of the question.– TensibaiCommented Jul 19, 2017 at 12:13