emccode / EMCW2016

EMCW2016 Content Development
0 stars 0 forks source link

Introduction to Immutable Infrastructure #2

Closed clintkitson closed 8 years ago

clintkitson commented 8 years ago

No more artisanally hand-crafted infrastructures! Ban snowflake servers! Immutable means "unchanging over time or unable to be changed," which is great if you work in operations. Stable and predictable, but of course you will have to make changes every now and then. How do you handle changes to your infrastructure without impacting reliability, and how can you make sure the task is properly propagated over every part of the infrastructure that needs it? Handling immutable infrastructures has become much easier with modern tools. In this session we will show live demos of Vagrant, Terraform and Ansible.

jonasrosland commented 8 years ago

Explain concept of immutable infrastructure: “A PATTERN OR STRATEGY FOR MANAGING SERVICES IN WHICH INFRASTRUCTURE IS DIVIDED INTO “DATA” AND “EVERYTHING ELSE”. “EVERYTHING ELSE” COMPONENTS ARE REPLACED AT EVERY DEPLOYMENT, WITH CHANGES MADE ONLY BY MODIFYING A VERSIONED DEFINITION, RATHER THAN BEING UPDATED IN-PLACE.”

Examples of tools for different layers (Terraform, Vagrant, Puppet, Ansible, Docker, manifest.yml) Walk through example code. Deploy these layers, one by one, to show the importance of executable documentation. Deploy a data store for example apps. Upgrade a middle layer (CentOS 6.5 to CentOS 7.1), and redeploy everything on top. Apps reconnect and are available again.

Testable and reliable.