Immutable pattern in IT infrastructure architecture. Building own OS'es and containers to deliver software.
Examples for delivery pipelines. Pros and cons for containers and configuration managers. Docker, Ansible, Chef, AWS CloudFormation, GCE, Terraform.
6. Classic Model
OS v1.0
App v1.0
Immutable model
The difference in upgrade process
App v1.1
App v1.0
OS v1.0
Reboot
Instance A
Instance A
App v1.0
OS v1.0
Instance A
App v1.1
OS v1.0
Destroy
Instance B
Start new
15. Background Infrastructure Support,
DevOps services
40+ production environments,
including HighLoad websites,
Private Clouds, IoT vendors
and PaaS providers
30+ Development Teams, with
different stacks, OS’es,
delivery processes etc..
19. What could be the atomic replaceable unit?
Application instance: Elastic Beanstalk, Google App Engine
Container: Docker, RKT, LSX, Kubernetes POD
VM Image: VMDK, AMI, GCOW, ISO
Whole Infrastructure: AWS CloudFormation, Hashicorp Terraform
22. SHALB Delivery Process: Image Delivery Pipeline
OS Version
Local OS
Mirror
Build
Scenario
Packer Script
Configuration,
Software
Ansible CM
Build System
Terraform
Provision
Orchestration
Vagrant
CI/CD Auto Tests
QA Team
GIT
Infrastructure
Delivery Teams
Images
ISO, AMI,
GCOW,LXC,
Docker
Production
Development
25. SHALB Delivery Process: Add software /Apply Configuration Changes
Can’t be immutable now? Use Hybrid Pipeline:
26. Summary
We can rely on any orchestration available
on premise or on public cloud.
We can scale a billions instances without the
pain managing every OS.
27. Don’t have time to build custom
pipelines?
Use available free instruments!
31. AWS Elastic Beanstalk. What is this?
● Fast and simple application deployment
● Pre-installed environments Java Tomcat and Java SE
● Compile and build during deploy: javac maven ant gradle
● Auto-scaling, Load Balancing, AWS resources RDS, S3 etc..
Code Sample
37. Google Guide: Automated Image Builds with Jenkins, Packer, and Kubernetes
Guide: https://cloud.google.com/solutions/automated-build-images-with-jenkins-kubernetes
Google Project on Github: https://github.com/GoogleCloudPlatform/kube-jenkins-imager
39. Amazon CloudFormation
● Create templates for the service or application
architectures
● Quick and reliable provisioning of the services or
applications (called “stacks”).
● Update or replicate the stacks as needed.
● Sample solution templates show how to create an
end-to-end solution with common applications.
41. To Take Away
Split your apps and the data
Deliver apps with the OS
CM approach is not a panacea
Pre-build images are more reliable and then provisioned
It is not so complex to build own image delivery
43. Using Docker. Developing and Deploying Software with Containers
http://shop.oreilly.com/product/0636920035671.do#
44. Book for SRE in Google
https://landing.google.com/sre/book/index.html
45. Terraform: Up & Running By Yevgeniy Brikman
http://www.terraformupandrunning.com/
46. Amazon Professional Services Implementation Sample
AWS re:Invent 2016: Life Without SSH: Immutable Infrastructure in Production*
https://www.slideshare.net/AmazonWebServices/aws-reinvent-2016-life-without-ssh-immutable-
infrastructure-in-production-sac318
49. Infrastructure as a code, versioning
Environment “time machine”, Scaling OOB
No dependencies for 3rd party repositories
Immutable Infrastructure advantages
Good for:
DevOps
Developers