Presentation shows the evolution of different configuration management tool from imperative cod on a mutable infrastructure through declarative code back to the imperative code with immutable infrastructure.
5. Mutable (reusable) vs Immutable (disposable)
Reusable
• I want to use the same server during the life of the project.
Immutable
• I want to provision a new server when I need to change something.
8. Case 1
Challenges
• Projects require environments to be created
• A lot of environments are similar
• Takes time for admins to provision and configure them
9. Private cloud enables automation
What we did
• VMware vSphere to provide on-demand VMs
• Puppet to configure environments
• Hiera to separate data from the code
• Jenkins to control the lifecycle
Continuous Delivery
• Huge time savings and code reuse
• Developers are enabled to create configurations
• Deployments are scripted
Apache
New
server
Java
Zabbix
agent
MySQL
12. Case 2
Challenges
• Control the state of the environments
• Release new versions of applications safely
• Automate the procedures to save time
13. Case 2
What we did
• Puppet to control the state of the servers
• Package artifact and assign version
• Deploy specific version to specific environment
• Rebuild the whole environment on deploy
Continuous Delivery
• Visibility
• Repeatable process
• Scripted deployments
Production
1.3-127
Staging
1.3-140
Testing
1.3-156
16. Case 3
Challenge
• Software needs to be tested in different configurations
• Test environments are multi-server
• Environments take days to provision manually
17. Environments as a service
Solution
• Amazon Web Services to provision infrastructure
• Ansible to create procedures for each configuration
• REST API service to coordinate requests
Continuous Delivery
• Ready for both human and robots
• 20 minutes to create any environment
• Reduced feedback time
REST API
Ansible
20. Key takeaways
• Optimize for Continuous Delivery
• Automate infrastructure
pavel@levi9.com
@PavelChunyayev
Any questions?
Notas do Editor
Hello, my name is Pavel Chunyayev,
I’m a Continuous Delivery architect. With more than 10 years of experience, more than 5 of them I worked for Levi9 helping our clients to successfully run their applications in production as well as establishing and improving their Continuous Delivery pipelines in order to deliver software in time and of certain quality.
Let’s have a look at the CD process to aim for in 2015.
It just happens that configuration management is hard with bash scripts.
Pass configuration directly through service
Any configurations are supported
Cloud
For best case CD
Automated, repeatable, on-demand infrastructure
Automation
Cycle time, feedback loop
Change QA/Sysadmin
Quality