Containers and the Evolution of Computing
-
Upload
amazon-web-services -
Category
Technology
-
view
930 -
download
0
Transcript of Containers and the Evolution of Computing
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
July 2016
Containers and the Evolution of Computing
Paul Maddox, Solution Architect, AWSPhil Dalbeck, Principal Architect, Skyscanner
@paulmaddox @w0nderd0g
Order UI User UI UI
Order Service Service Shipping
Service
Order UIOrder UI
User UI UIShipping UI
Order ServiceOrder
ServiceService
ServiceService
ServiceUser
Service
Shipping Service
Containers: A natural fit for microservices
Simple to model; any app, in any language
Portable, Fast, Efficient
Built in versioning
Test & deploy same artifact
Stateless servers decrease change risk
FROM java:7
COPY . /usr/src/appWORKDIR /usr/src/appRUN javac Main.java
EXPOSE 80
CMD [ “java”, “Main” ]
Managing a Fleet is Hard
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
Server
Guest OS
AZ 1 AZ 2
AZ 3
What is Amazon ECS?
Amazon EC2 Container Service (Amazon ECS) is a highly scalable, high performance container management service.
You can use Amazon ECS to schedule the placement of containers across your cluster.
Amazon ECS will maintain the state of your cluster, ensuring availability of your containers and tasks .
Container Management at Any Scale
Nothing to run
Manages resources & availability
Control and monitoring
Scale
Nothing to run…
https://convox.comAn open source PaaS built on Amazon ECS.
Build, deploy, and manage applications with ease.
Stop worrying about servers and focus on your code.
CONVOX
h t t p s : / / c o n v o x . c o m
Integration with the AWS Platform
Elastic Load Balancing
Amazon Elastic Block Store
Amazon Virtual Private Cloud
Amazon CloudWatch
AWS Identity and Access Management
AWS CloudTrail
Who are Skyscanner?
• 40m app downloads• 50m Unique monthly visitors• Rapidly growing B2B relationships• 800 staff, with 50 nationalities• 10 offices around the globe• Regard ourselves as a Tech company, rather than a Travel company• 50% of our staff are engineers
A (brief) evolution of computing @ Skyscanner - Part Deux
18 Months~1500 EC2 instances
Critical Production workloads
9 Months Aggressive containerization
using Docker + ECS
Honorable Mention: Lambda
“Ch-ch-ch-ch-chaaaaaanges”
Organizational change
• Adopted a squads/tribes model• Localized ownership of services• “You build it, you run it”• Remove bottlenecks to delivery• Delegation of previously
centralized capabilities
Architectural change
• Adopt Cloud• Monolithic code releases are
too slow• Loosely coupled
microservices• Data driven experiments• Automate all the things
Enabling change in a non-scary way…
Developer Enablement Tribe
• AWS Architectural guidance• Set and enforce best practices• Provide internal training• Create reusable code snippets• Build automation and deployment tooling • Provide template microservices containers• Maintain shared platforms and tooling• Handle shared VPC’s, Direct connects, DNS,
SSL.• Co-ordinate cost management activities• Perform vulnerability auditing and testing • Run demo’s and showcases• “Eat the dogfood”• Etc….
WS
MBA Conan! What is best in life?
“To accelerate your product delivery --
Satisfy your users needs faster and better,
and hear the lamentation of your competitors!“
Accelerating product delivery
3 Years ago? àToday? à
How?• Containerized Microservices• In-house automation tooling • AWS API driven infrastructure
6 to 8 weeks6 to 8 minutes
More pipeline problems than Mario
Hands up if you’re a developer!Does your development/deployment pipeline look a bit like this?
Why Microservices?
Old school release pipeline
Development à Integration à Test à Pre-prod à Production
New release pipeline
Development à Live!
Automation tooling - Slingshot
Gitlab
BuildPacka
ge
Continuous Integration
Continuous Deployment
SWF
“From source to service in zero clicks…”
Your Service
ECS
API
Lambda
Publish Route 53
ELB