Immutable Deployment
Immutable infrastructure and continuous deployment
Introduction
Practical Differences: Embracing the Cloud
Conceptual Differences: Pets vs Cattle
Benefits
Recommendation and Requirements
Process overview
Artifact deployment script
Make changes to code
Create ELB
Create Route53
Build artifact
Bake AMI
Create LC
Create OR Update ASG
One Time Setup
Deploy new version
Deployment Flow
Env
Rolling Blue/Green
Ansible Immutable Deployment script
- name: provision new instance
hosts: localhost
vars_files:
- extra_vars/{{ env }}_all.yml
- extra_vars/{{ evn }}_backend/build.yml
roles:
- role: launch_instance
- name: deploy artifact
hosts: {{ env }}_backend_build
remote_user: admin
become_method: sudo
become: yes
become_user: root
roles:
- deploy-backend
- name: deploy new release
hosts: localhost
vars:
release: "{{ backend_release }}"
vars_files:
- extra_vars/{{ env }}_all.yml
- extra_vars/{{ env }}_backend/build.yml
roles:
- create-ami
- create-launch-configuration
- update-autoscaling
- clean up
hosts: localhost
vars_files:
- extra_vars/{{ env }}_all.yml
roles:
- terminate_instance
- delete-old-ami