AWS Summit 2014 Brisbane - Breakout 5
With AWS companies now have the ability to develop and run their applications with speed and flexibility like never before. Working with an infrastructure that can be 100% API driven enables businesses to use lean methodologies and realize these benefits. This in turn leads to greater success for those who make use of these practices. In this session we'll talk about some key concepts and design patterns for Continuous Deployment and Continuous Integration, two elements of lean development of applications and infrastructures.
Presenter: Adrian White, Solutions Architect, Amazon Web Services
5. A CI / CD pipeline
Teardown
Release
Deploy
Test
Code
6. Get your source under control
Prod Phoenix (feature)UAT
Code
Test
Deploy
Release
Teardown
Code
Test
Deploy
Release
Teardown
Code
Test
Deploy
Release
Teardown
Code
Test
Deploy
Release
Teardown
8. What does CI give us?
• Test driven promotion (of development change)
• Increasing velocity of feedback cycle through
iterative change
• Contain change to reduce risk
• Bugs are detected quickly
• Automated testing reduces size of testing effort
9. What does CD give us?
• Changes are pushed quickly to production
• Immediate feedback from users
• Supports A/B testing or “We test customer
reactions to features in production”
• Hardens, de-risks the deployment process
• Gives us a breadth of data points across our
applications
10. Deployment approaches
• Deploy in place
– Manage interruption
• Bake
– Discrete environment
• Multiple environments from branches
• Support A/B testing
• “Rolling DNS”
Deploy Deploy in-place
Bake
32. CloudFormation Custom Resources
• Change DB schema during deployment
• Extend CloudFormation to support other
services - “So You Think You Are An
AWS Ninja” talk
https://github.com/aws/aws-cfn-resource-bridge
https://github.com/awslabs/aws-cfn-custom-resource-examples
Parameters
Custom resource
implementation
Git
37. Containerisation
• Build environments for artifacts, don’t update
environments with artifacts
• All environments are transient
• Standardisation, abstraction and portability
38. Docker, Amazon Linux and Elastic
Beanstalk
• A framework for managing containers
• LXC containers are more lightweight than VMs
• Amazon Linux (2014.03) bundles Docker 0.9
and LXC 0.9
• Docker containers on Beanstalk are Go!
39. Innovation, Quality, Governance
Discrete environments for each branch
Automated testing on every commit on every branch
Leverage CD tools to provide separation of duties
Audit Logs
Git approvals process
Use custom resources to extend CloudFormation
Leverage DNS
Interface with the API
Environments for artifacts
40. Expand your skills with AWS
Certification
aws.amazon.com/certification
Exams
Validate your proven
technical expertise with
the AWS platform
On-Demand
Resources
aws.amazon.com/training/
self-paced-labs
Videos & Labs
Get hands-on practice
working with AWS
technologies in a live
environment
aws.amazon.com/training
Instructor-Led
Courses
Training Classes
Expand your technical
expertise to design, deploy,
and operate scalable,
efficient applications on AWS