“It is not the strongest of the species that survive, nor the most intelligent, but the one most responsive to change.” — Charles Darwin

“DevOps is a set of practices that seeks to reduce the gap between software development and software operation.”

Immutable Infrastructure

"One of my mantras - focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains." - Steve Jobs


Mutable Infrastructure is using Chef Server, Puppet Master or Ansible Tower to pull running updates regularly on all your servers.

Instead use:
  • Immutable infrastructure where ever possible - replace servers instead of updating them.

  • Serverless infrastructure. Cloud services like AWS RDS, Lamba, SQS etc.

  • Use CI tools like Jenkins to build application artifacts to use in Packer images and Docker containers.

  • Custom Images or Containers. Use Packer or Docker in development to build custom images or containers to use in test and live.

  • Only one Git repository for all environments - use a production branch and allow other branches and allow servers to be built from different branches.

  • Terraform to orchestrate the infrastructure using the packer images or Docker containers.

  • Don't use Configuration Management tools for deployment of applications.

It works best with a cloud:
  • The AWS Console know where your servers are and what their roles are instead of chef server or puppermaster.

  • Orchestrate the servers with terraform or cloudformation.

  • Monitor the servers, manage the log files and generate alarms (e.g. AWS CloudWatch).

  • Run your databases as services (e.g. AWS RDS).

Try and keep it simple and build as little as possible yourself as this will make you as efficient as possible.


References
Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation
DevOps is Not a Feature!
9 Reasons Provisioning Tools Aren’t Ideal for Deploying Enterprise Apps
Testing infrastructure with Test Kitchen
Keep Chef out of your Docker containers
vSphere Immutable Infrastructure with Terraform
Immutable infrastructure with terraform and rolling upgrades of stateful services

0 comments:

Post a Comment