wercker
Building and DeployingApplications in a Cloud
Native WorldToon VerbeekProduct Manager
Wercker
RELEASE
INFRA
APP
BUILD/DEPLOY
2000 2010 2016
Weekly Daily Hourly
Single server VM’S Containers
FTP DevOps ?
Simple deployment model. FTP code to single server.
PHSingle app Multi Tiered Microservices
2xDBAPPAPPAPP
AB
C
Developer Abstractions
wercker
RELEASE
INFRA
APP
BUILD/DEPLOY
2000 2010 2016
Weekly Daily Hourly
Single server VM’S Containers
FTP DevOps ?
Simple deployment model. FTP code to single server.
PHSingle app Multi Tiered Microservices
2xDBAPPAPPAPP
AB
C
Daily releases at an increased scale resulting in multiple applications and databases on multiple virtual machines.
Developer Abstractions
wercker
RELEASE
INFRA
APP
BUILD/DEPLOY
2000 2010 2016
Weekly Daily Hourly
Single server VM’S Containers
FTP DevOps ?
Hourly releases, with applications being broken apart in smaller responsibilities (microservices), are running on a large number of servers in thousands of containers.
Simple deployment model. FTP code to single server.
Daily releases at an increased scale resulting in multiple applications and databases on multiple virtual machines.
PHSingle app Multi Tiered Microservices
2xDBAPPAPPAPP
AB
C
Developer Abstractions
wercker
All businesses are software businesses
Product velocity Opportunity cost
wercker
Business agility Competitive advantage
Value of Developer Productivity
All businesses are software businesses
Product velocity Opportunity cost
wercker
Business agility Competitive advantage
Value of Developer Productivity
All businesses are software businesses
Product velocity Opportunity cost
wercker
Business agility Competitive advantage
Value of Developer Productivity
All businesses are software businesses
Product velocity Opportunity cost
wercker
Business agility Competitive advantage
Value of Developer Productivity
Complexity
Speed
The need for speed vs increased complexity
SURVIVAL
WTF isCloudNative?
Highly distributed systems
Elastic infrastructure
Self-healing and Clustered apps
Containers as unit of work
Microservices as topology
Schedulers
wercker
Containers,microservices,schedulers?
wercker
Containers,microservices,schedulers?
wercker
Containers,microservices,schedulers?
wercker
CLOUD NATIVE
So you want to go Cloud Native?
wercker
How to build and deploy containers
How we’ve done things
AMI
wercker
The naive implementation
wercker
Why naive?We’re in flux. We’re in need of best practices and new tools.
Dockerfiles
1 container to rule them all
Build != Runtime containers
Fat containers
Tag your images
wercker
wercker
What to do?Builds & Deploys are insufficient.
Break things apart and split up complexity.
wercker
Stop using DockerfilesBuilding and releasing containers programmatically
1. You should create your containers programatically
2. You should be able to create as many pipelines as you want
3. Pipelines should be chainable
4. Pipelines should be able to build on each others artefacts
5. Pipelines should be able to run in parallel (fan in/ fan out)
6. Pipelines should be version controlled
7. Pipelines should be able to work cross-application
wercker
ConclusionKey requirements for application delivery in Cloud Native world
CLOUD NATIVE
Demo!
wercker
wercker
We’re hiring! wercker.com/careers/