Continuous
with Docker and AWS
Delivery


Who is this guy?
Oliver Lade
Software Engineer, Enterprise Digital - Server/API
(started last week)
In a previous life:
- Study and research at Melbourne Uni
- Internships at IBM and Google
- Co-founder and CTO at Urbanetic

Urbanetic Fabric

Technologies
MUtopia | Catalyst | Fabric | |
---|---|---|---|
Server | Spring | Dropwizard / Guice | Meteor / Node.js |
Database | PostGIS | Neo4j | MongoDB |
GUI | ExtJS | Dojo / Bootstrap | Semantic UI |
3D Rendering | Google Earth | Atlas / Cesium | Unity → Three.js |
Platform | PC | NeCTAR | AWS / Docker |
Testing | JUnit | JUnit / Mockito | Velocity |
What is
Continuous Delivery?
Continuous Integration (CI)

Deploying with Git

Continuous Delivery (CD)

Continuous Delivery

General Workflow
Continuous Delivery
Objectives
- Full automation from VCS push to deployment
- Full transparency of production infrastructure
- Use best-in-class tools:
- Git for version control
- Docker to package and run
- Docker orchestration to deploy
- AWS EC2 for IaaS
- Prefer avoiding vendor lock-in




?

Continuous Delivery



























Service Providers





Continuous Delivery






Manual Build


Continuous Delivery






External Build





Great! The end?
Not so fast
- EC2: Auto-scaling, but 'manual' deployment
- ECS: Automated deployment, but manual update/scale
- Elastic Beanstalk: Both, but black box:
Automatic Update & Scaling
With Elastic Beanstalk, you can quickly deploy and
manage applications in the AWS cloud without worrying about the infrastructure
But what if we are worried about the infrastructure?
logic to automate ECS update and scaling
to the rescue?

Atlassian
Auto-scaling

ECS
Auto-Update
- Get notified by completion of build
- Find task definitions using that image
- Create a new revision of the task definition using the new image tag
- Find services using the latest version of that task definition
- Update those services to the new revision
- Allow ECS to re-deploy tasks from new definition
(if no capacity, optionally terminate old tasks)
ECS

Summary
- Continuous Integration (CI) & Continuous Delivery (CD)
- Variety of interchangeable services
- Alternative configurations with different systems
- Custom automatic updating and scaling of ECS
I'm on the bench, ask me anything!
Resources
Copy of Continuous Delivery with ECS
By Tarun Sharma
Copy of Continuous Delivery with ECS
Continuous Delivery (CD) is a great idea, but how can I continuously deliver my Docker app to my AWS infrastructure?
- 872