SlideShare a Scribd company logo
1 of 67
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Chad Schmutzer, Solutions Architect, AWS
June 21, 2016
Amazon ECS with Docker
It’s All About Containers
Agenda
Why containers?
What is Docker?
Amazon EC2 Container Service (Amazon ECS)
• Cluster management
• Benefits
• Running services
Why Containers?
The Problem
Different application stacks
Different hardware deployment
environments
How to run all applications
across different environments?
How to easily migrate from one
environment to another?
Static
website
Web
front end
Background
workers
User DB
Analytics
DB
Queue
Develop-
ment VM
QA
server
Single
prod
server
On-site
cluster
Public
cloud
Contributor’s
laptop
Customer
servers
Static
website
Web
front end
Background
workers
User DB
Analytics
DB
Queue
Develop-
ment VM
QA
server
Single
prod
server
On-site
cluster
Public
cloud
Contributor’s
laptop
Customer
servers
The Solution
Unit of software delivery
Lightweight, portable, consistent
Deploy and run everywhere
Deploy and run anything
Containers
User space running on OS kernel
Little overhead
Guest OS choices limited to host OS kernel
Been around for a while: chroot, FreeBSD jails,
Solaris containers, OpenVZ, LXC
VMs vs. Containers
VMs Containers
https://www.docker.com/what-docker
Container Advantages
Portable
Flexible
Fast
EfficientServer
Guest OS
Bins/Libs Bins/Libs
App2App1
Benefits
Portable runtime application environment
Package application and dependencies in a single artifact
Run different application versions (different dependencies)
simultaneously
Faster development & deployment cycles
Better resource utilization
Use Cases
Consistent environment between development & production
Service-oriented architectures / microservices
Short lived workflows
Isolated environments for testing
Services Evolve to Microservices
Monolithic Application
Order UI User UI Shipping UI
Order
Service
User
Service
Shipping
Service
Data
Access
Host 1
Service A
Service B
Host 2
Service B
Service D
Host 3
Service A
Service C
Host 4
Service B
Service C
Containers Are Natural for Microservices
Simple to model
Any app, any language
Image is the version
Test & deploy same artifact
Stateless servers decrease change risk
What is Docker?
Docker
Lightweight container virtualization platform
Tools to manage and deploy your applications
Licensed under the Apache 2.0 license
Built by Docker, Inc.
Docker Engine
Docker daemon
Docker client
Image source - https://docs.docker.com/engine/introduction/understanding-docker/
Client DOCKER_HOST Registry
docker build
docker pull
docker run
Docker daemon
Containers Images
Amazon ECS:
Cluster Management
Scheduling
Server
Guest OS
Bins/Libs Bins/Libs
App2App1
Scheduling One Resource Is Straightforward
Scheduling a Cluster 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
General Cluster Management: Resource
Management
Docker
Task
EC2 Instance
Container
Docker
Task
EC2 Instance
Container
Task
Container
Docker
EC2 Instance
Task
Container
AZ 1 AZ 2
General Cluster Management: Scheduling
Docker
Task
EC2 Instance
Container
Docker
Task
EC2 Instance
Container
Task
Container
Docker
EC2 Instance
Task
Container
AZ 1 AZ 2
Amazon ECS: Resource Management
Docker
Task
Container Instance
Container
Task
Container
Docker
Task
Container Instance
Container
Task
Container
Docker
Task
Container Instance
Container
Task
Container
AZ 1 AZ 2
Cluster Management Engine
Amazon ECS: Agent Communication
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
AZ 1 AZ 2
Cluster Management Engine
Agent Communication Service
Amazon ECS: Key/Value Store
Docker
Task
Container Instance
Container
ECS Agent
ELB
Internet
ELB
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
AZ 1 AZ 2
Key/Value Store
Cluster Management Engine
Agent Communication Service
Amazon ECS: APIs
Docker
Task
Container Instance
Container
ECS Agent
ELB
Internet
ELB
User /
Scheduler
API
Cluster Management Engine
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
AZ 1 AZ 2
Key/Value Store
Agent Communication Service
Amazon ECS: Scheduling
Docker
Task
Container Instance
Container
ECS Agent
ELB
Internet
ELB
User /
Scheduler
API
Cluster Management Engine
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
AZ 1 AZ 2
Key/Value Store
Agent Communication Service
Amazon ECS:
Benefits
Easily Manage Clusters for Any Scale
Nothing to run
Complete state
Control and monitoring
Scale
Scalable
Flexible Container Placement
Applications
Batch jobs
Multiple schedulers
Designed for Use with Other AWS Services
Elastic Load Balancing
Amazon Elastic Block Store
Amazon Virtual Private Cloud
Amazon CloudWatch
AWS Identity and Access Management
AWS CloudTrail
Extensible
Comprehensive APIs
Custom schedulers
Open source agent and CLI
Amazon ECS
Docker
Task
Container Instance
Amazon
ECS
Container
ECS Agent
ELB
Internet
ELB
User /
Scheduler
API
Cluster Management Engine
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
Docker
Task
Container Instance
Container
ECS Agent
Task
Container
AZ 1 AZ 2
Key/Value Store
Agent Communication Service
Amazon ECS:
Running Services
Task Definitions
Volume Definitions
Container Definitions
Key Components: Task Definitions
Key Components: Task Definitions
Tasks
Shared Data Volume
Containers
schedule
Container
Instance
Volume Definitions
Container Definitions
Unit of work
Grouping of related containers
Run on container instances
Tasks
Create a Service
Good for long-running
applications and services
Create Service
Load balance traffic across containers
Automatically recover unhealthy containers
Discover services
Elastic Load Balancing
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
Scale Service
Scale up
Scale down
Elastic Load Balancing
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
Update Service
Deploy new version
Drain connections
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
new new new
Elastic Load Balancing
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
old old old
Update Service (cont.)
Deploy new version
Drain connections
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
new new new
Elastic Load Balancing
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
old old old
Update Service (cont.)
Deploy new version
Drain connections
Elastic Load Balancing
Shared Data Volume
Containers
Shared Data Volume
Containers
Shared Data Volume
Containers
new new new
Thank You!
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Chris Malek
Associate Director of Academic Development
June 21, 2016
access.caltech in AWS
• California Institute of Technology
• Pasadena, CA
• Top tier university: #1 in Times Higher
Education world rankings
• Small: 6400 people (1000 undergrads,
1200 grads, 300 faculty, 3900 staff)
• 3:1 undergrad-faculty ratio
• JPL: Founded by Caltech in 30’s,
managed for NASA since 1958
• Part of IMSS, the central IT org
• Lean, 6 people, all developers, even management
• 35 years of collective systems administration experience
• 50 years of collective development experience
• ~130 websites and web applications, including www.caltech.edu and
the campus intranet portal
• Much smaller than counterparts at peer institutions
Our job: Enable research and instruction through software
Academic Development Services
Upper management, operations and developers pro-cloud
Move all on-premise services to cloud within 3 years
We've been production in AWS since 2010
Many Caltech production workloads currently in AWS
Strategy: DevOps, public data, low-hanging fruit, Field of Dreams model
Cloud Adoption (2010-present)
Leverage AWS scale, expertise, and capabilities
• AZs, APIs, Infrastructure as code
• AWS better than us at many things
• AWS allows us to do things we can’t on-premises
• Don’t have to run low level services
Allows us to concentrate on how we add value
Why cloud?
access.caltech in AWS
• Distributed system comprised of many interconnected
systems.
• Authenticating proxy server with around 90 applications
behind it
• Covers most of the academic and administrative apps
people might use
Two parts: core system and proxied apps
access.caltech: Caltech’s intranet portal
• Needs to be highly-available
• Be performant at variable loads
• Typical traffic: 5-10 hits/s
• Must scale to 800 hits/s during registration
• Protect and secure proxied apps and data
• Certain core components should stay up during disaster
• Be able to easily deploy new versions of core software
• Need many DEV, TEST, QA and production support envs
access.caltech: key requirements
user
AUTH SERVICE
REDIS
CONTROL SERVICE
haproxy
home
admin
prefs
my_account
loadapp
challenge_questi
ons_api
LDAP
LEGACY LDAP
LDAP
LEGACY LDAP
Active
Directory
mail servers
mailman API
mailman
MySQL
PROXY SERVERS
CORE SERVER
LDAP SLAVES LDAP MASTERS AD
~90 PROXIED APPS
ON-PREM ARCHITECTURE
user
AUTH SERVICE
REDIS
CONTROL SERVICE
haproxy
home
admin
prefs
my_account
loadapp
challenge_questi
ons_api
LDAP
LEGACY LDAP
LDAP
LEGACY LDAP
Active
Directory
mail servers
mailman API
mailman
MySQL
PROXY SERVERS
CORE SERVER
LDAP SLAVES LDAP MASTERS AD
~90 PROXIED APPS
CLOUD MIGRATION: PHASE 1
• Move access.caltech core PROD to VPC in AWS
• Continuous deployment system based on
Jenkins, Docker containers, and Consul
• Be able to build DEV and TEST environments in AWS
• Proxy from AWS to on-premises apps via VPN tunnel
Later phases: move proxied apps individually to AWS
access.caltech in AWS: phase 1
ELB
NAT
NAT
RDS
AWS
VPN
VPC 1
AZ1
ELASTICACHE
(REDIS)
AZ2
PROXY CORE
CONSUL
CONSUL
PROXY CORE
ELASTICACHE
(REDIS)RDS
LDAP
MASTER
LDAP
SLAVE
VPC 2
AZ1
LDAP
SLAVE
LDAP
MASTER
LDAP
SLAVE
AZ2
LDAP
SLAVE
ELB ELB
ELASTICSEARCH
~90 PROXIED APPS
CALTECH
P
E
E
R
I
N
G
ECS MACHINE
AWS SERVICE
EC2
INSTANCE
PRIVATE
PUBLIC
SUBNETS
JENKINS
Need a more rapid, consistent deployment mechanism
• Our current process takes weeks to months to get new versions
to production, and deployments are rocky
• Raw vs cooked. Cooked: build as much before deployment as
possible.
• encapsulation of entire OS as a software artifact
• guaranteed same code and OS build for DEV, TEST, PROD
• easily replicate whole systems architectures in DEV
Docker image community
Why Docker?
Deployment pipeline (Jenkins)
Build Test Image Run Tests
Build and Push
final image
Deploy to QA
infrastructure
Run integration
tests
Human
Review
Deploy to prod
infrastructure
Run integration
tests
Deploy to prod
support
infrastructure
QA Pipeline
Developer
pushes
code
Promote to Prod pipeline
No orchestration infrastructure to run
• Container scheduling and placement are implicitly at cloud scale
— no need to plan for HA, throughput, etc.
• Built in monitoring via CloudWatch and ECS event stream
• Powerful ECS command line tools
AWS API for managing tasks and services
AWS service integration, especially for load balancers and
VPCs
ECS repositories
Why ECS? (vs Docker Swarm) PROS
Painful to debug container launch fails
docker version lags behind current, sometimes significantly
No equivalent to swarm overlay network
Different strategies for deploying containers
• Swarm has spread, binpack and random
• ECS has task and service strategies, which both seem to be like
Swarm’s “spread” strategy
• Although ECS allows you to develop your own strategies via
custom schedulers via StartTask API
Why ECS? (vs Docker Swarm) CONS
The entire container is your software
• not just your own code.
• OS + code becomes a software artifact
Development team will need to have or develop systems
experience
• Or work closely with systems people
Probably need to remediate your code in order to take
advantage of the container environment
Docker/ECS Challenges
Containers are truly disposable and anonymous
• Figuring out which container is having issues is interesting
• Entire OS is destroyed when re-deploying containers
Containers are not VMs
• No ssh interface to containers
• Containers are minimal systems: no ssh, no cron, no syslogd,
etc.
Need to change your architecture and practices
Logging, monitoring
Docker/ECS Challenges, cont.
Thank You!

More Related Content

What's hot

Deep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSDeep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSAmazon Web Services
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...Amazon Web Services
 
AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)
AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)
AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)Amazon Web Services
 
Workshop: AWS Lamda Signal Corps vs Zombies
Workshop: AWS Lamda Signal Corps vs ZombiesWorkshop: AWS Lamda Signal Corps vs Zombies
Workshop: AWS Lamda Signal Corps vs ZombiesAmazon Web Services
 
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...Amazon Web Services
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)Amazon Web Services
 
NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...
NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...
NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...Amazon Web Services
 
Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...
Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...
Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...Amazon Web Services
 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...Amazon Web Services
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...Amazon Web Services
 
Achieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef AutomateAchieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef AutomateAmazon Web Services
 
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...Amazon Web Services
 
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
 Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar... Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...Amazon Web Services
 
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T... Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...Amazon Web Services
 
Advanced AWS techniques from the trenches of the Enterprise – Sourced Group
Advanced AWS techniques from the trenches of the Enterprise – Sourced GroupAdvanced AWS techniques from the trenches of the Enterprise – Sourced Group
Advanced AWS techniques from the trenches of the Enterprise – Sourced GroupAmazon Web Services
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsAmazon Web Services
 
Amazon Aurora New Features - September 2016 Webinar Series
Amazon Aurora New Features - September 2016 Webinar SeriesAmazon Aurora New Features - September 2016 Webinar Series
Amazon Aurora New Features - September 2016 Webinar SeriesAmazon Web Services
 
AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...
AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...
AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...Amazon Web Services
 
AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...
AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...
AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...Amazon Web Services
 

What's hot (20)

Deep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSDeep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECS
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
 
AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)
AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)
AWS re:Invent 2016: Automated DevOps and Continuous Delivery (DEV211)
 
Workshop: AWS Lamda Signal Corps vs Zombies
Workshop: AWS Lamda Signal Corps vs ZombiesWorkshop: AWS Lamda Signal Corps vs Zombies
Workshop: AWS Lamda Signal Corps vs Zombies
 
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
 
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)AWS re:Invent 2016: Securing Container-Based Applications (CON402)
AWS re:Invent 2016: Securing Container-Based Applications (CON402)
 
NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...
NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...
NEW LAUNCH! Introducing AWS Batch: Easy and efficient batch computing on Amaz...
 
Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...
Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...
Managing Your Infrastructure as Code by Travis Williams, Solutions Architect,...
 
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
AWS re:Invent 2016: Infrastructure Continuous Delivery Using AWS CloudFormati...
 
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
AWS re:Invent 2016: Deploying and Managing .NET Pipelines and Microsoft Workl...
 
Achieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef AutomateAchieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef Automate
 
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
AWS re:Invent 2016: Effective Application Data Analytics for Modern Applicati...
 
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
 Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar... Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
Improving Infrastructure Governance on AWS by Henrik Johansson, Solutions Ar...
 
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T... Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
Getting Started with AWS Lambda and the Serverless Cloud - AWS Summit Cape T...
 
Microsoft Best Practices on AWS
Microsoft Best Practices on AWSMicrosoft Best Practices on AWS
Microsoft Best Practices on AWS
 
Advanced AWS techniques from the trenches of the Enterprise – Sourced Group
Advanced AWS techniques from the trenches of the Enterprise – Sourced GroupAdvanced AWS techniques from the trenches of the Enterprise – Sourced Group
Advanced AWS techniques from the trenches of the Enterprise – Sourced Group
 
NEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# ApplicationsNEW LAUNCH! Developing Serverless C# Applications
NEW LAUNCH! Developing Serverless C# Applications
 
Amazon Aurora New Features - September 2016 Webinar Series
Amazon Aurora New Features - September 2016 Webinar SeriesAmazon Aurora New Features - September 2016 Webinar Series
Amazon Aurora New Features - September 2016 Webinar Series
 
AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...
AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...
AWS re:Invent 2016: NextGen Networking: New Capabilities for Amazon’s Virtual...
 
AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...
AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...
AWS re:Invent 2016: Building SaaS Offerings for Desktop Apps with Amazon AppS...
 

Viewers also liked

Crear un centro de datos virtual en AWS
Crear un centro de datos virtual en AWSCrear un centro de datos virtual en AWS
Crear un centro de datos virtual en AWSAmazon Web Services
 
Security, Risk, Compliance & Controls
Security, Risk, Compliance & ControlsSecurity, Risk, Compliance & Controls
Security, Risk, Compliance & ControlsAmazon Web Services
 
Building Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS InfrastructureBuilding Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS InfrastructureAmazon Web Services
 
Protecting your data in aws - Toronto
Protecting your data in aws - TorontoProtecting your data in aws - Toronto
Protecting your data in aws - TorontoAmazon Web Services
 
AWS Summit Auckland - Fundamentals of Networking in AWS
AWS Summit Auckland - Fundamentals of Networking in AWSAWS Summit Auckland - Fundamentals of Networking in AWS
AWS Summit Auckland - Fundamentals of Networking in AWSAmazon Web Services
 
Amazon Web Services Introduction
Amazon Web Services IntroductionAmazon Web Services Introduction
Amazon Web Services IntroductionAmazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
AWS ECS Quick Introduction
AWS ECS Quick IntroductionAWS ECS Quick Introduction
AWS ECS Quick IntroductionVinothini Raju
 
AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...
AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...
AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...Amazon Web Services
 
Announcing Amazon EC2 F1 Instances with Custom FPGAs
Announcing Amazon EC2 F1 Instances with Custom FPGAsAnnouncing Amazon EC2 F1 Instances with Custom FPGAs
Announcing Amazon EC2 F1 Instances with Custom FPGAsAmazon Web Services
 
AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)
AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)
AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)Amazon Web Services
 
AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...
AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...
AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...Amazon Web Services
 
Container Orchestration with Amazon ECS
Container Orchestration with Amazon ECSContainer Orchestration with Amazon ECS
Container Orchestration with Amazon ECSAmazon Web Services
 
AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)
AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)
AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)Amazon Web Services
 
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker ContainersMicroservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker ContainersDanilo Poccia
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAmazon Web Services Japan
 
AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)
AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)
AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)Amazon Web Services Japan
 

Viewers also liked (18)

IT empresarial en la nube
IT empresarial en la nubeIT empresarial en la nube
IT empresarial en la nube
 
Crear un centro de datos virtual en AWS
Crear un centro de datos virtual en AWSCrear un centro de datos virtual en AWS
Crear un centro de datos virtual en AWS
 
Security, Risk, Compliance & Controls
Security, Risk, Compliance & ControlsSecurity, Risk, Compliance & Controls
Security, Risk, Compliance & Controls
 
Building Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS InfrastructureBuilding Automated Control Systems for Your AWS Infrastructure
Building Automated Control Systems for Your AWS Infrastructure
 
Protecting your data in aws - Toronto
Protecting your data in aws - TorontoProtecting your data in aws - Toronto
Protecting your data in aws - Toronto
 
AWS Summit Auckland - Fundamentals of Networking in AWS
AWS Summit Auckland - Fundamentals of Networking in AWSAWS Summit Auckland - Fundamentals of Networking in AWS
AWS Summit Auckland - Fundamentals of Networking in AWS
 
Amazon Web Services Introduction
Amazon Web Services IntroductionAmazon Web Services Introduction
Amazon Web Services Introduction
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
AWS ECS Quick Introduction
AWS ECS Quick IntroductionAWS ECS Quick Introduction
AWS ECS Quick Introduction
 
AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...
AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...
AWS re:Invent 2016: Learn how IFTTT uses ElastiCache for Redis to predict eve...
 
Announcing Amazon EC2 F1 Instances with Custom FPGAs
Announcing Amazon EC2 F1 Instances with Custom FPGAsAnnouncing Amazon EC2 F1 Instances with Custom FPGAs
Announcing Amazon EC2 F1 Instances with Custom FPGAs
 
AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)
AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)
AWS re:Invent 2016: Choosing the Right Partner for Your AWS Journey (ENT310)
 
AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...
AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...
AWS re:Invent 2016: Workshop: Building Serverless Bots on AWS - Botathon (DCS...
 
Container Orchestration with Amazon ECS
Container Orchestration with Amazon ECSContainer Orchestration with Amazon ECS
Container Orchestration with Amazon ECS
 
AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)
AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)
AWS re:Invent 2016: How to Build a Big Data Analytics Data Lake (LFS303)
 
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker ContainersMicroservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker Containers
 
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
 
AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)
AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)
AWS Blackbelt 2015シリーズ Amazon EC2 Container Service (Amazon ECS)
 

Similar to Amazon ECS with Docker | AWS Public Sector Summit 2016

Getting Started with Docker On AWS
Getting Started with Docker On AWSGetting Started with Docker On AWS
Getting Started with Docker On AWSAmazon Web Services
 
Getting started with docker on aws
Getting started with docker on awsGetting started with docker on aws
Getting started with docker on awsAmazon Web Services
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceAmazon Web Services
 
Getting Started With Docker on AWS
Getting Started With Docker on AWSGetting Started With Docker on AWS
Getting Started With Docker on AWSMikhail Prudnikov
 
AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)
AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)
AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)Amazon Web Services
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSAmazon Web Services
 
Getting Started with Docker On AWS
Getting Started with Docker On AWSGetting Started with Docker On AWS
Getting Started with Docker On AWSAmazon Web Services
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSAmazon Web Services
 
Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017Amazon Web Services
 
Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017Amazon Web Services
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSKristana Kane
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSAmazon Web Services
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSAmazon Web Services
 
SRV201 Getting Started with Docker on AWS
SRV201 Getting Started with Docker on AWSSRV201 Getting Started with Docker on AWS
SRV201 Getting Started with Docker on AWSAmazon Web Services
 
初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務Amazon Web Services
 
Deep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSDeep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSAmazon Web Services
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWSAmazon Web Services
 
AWS Elastic Beanstalk運作微服務與Docker
AWS Elastic Beanstalk運作微服務與Docker AWS Elastic Beanstalk運作微服務與Docker
AWS Elastic Beanstalk運作微服務與Docker Amazon Web Services
 

Similar to Amazon ECS with Docker | AWS Public Sector Summit 2016 (20)

Getting Started with Docker On AWS
Getting Started with Docker On AWSGetting Started with Docker On AWS
Getting Started with Docker On AWS
 
Getting started with docker on aws
Getting started with docker on awsGetting started with docker on aws
Getting started with docker on aws
 
Getting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container ServiceGetting Started with Amazon EC2 Container Service
Getting Started with Amazon EC2 Container Service
 
Getting Started With Docker on AWS
Getting Started With Docker on AWSGetting Started With Docker on AWS
Getting Started With Docker on AWS
 
AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)
AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)
AWS re:Invent 2016: Getting Started with Docker on AWS (CMP209)
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
Getting Started with Docker On AWS
Getting Started with Docker On AWSGetting Started with Docker On AWS
Getting Started with Docker On AWS
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017
 
Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017Getting Started with Docker on AWS - DevDay Los Angeles 2017
Getting Started with Docker on AWS - DevDay Los Angeles 2017
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
SRV201 Getting Started with Docker on AWS
SRV201 Getting Started with Docker on AWSSRV201 Getting Started with Docker on AWS
SRV201 Getting Started with Docker on AWS
 
初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務初探 AWS 平台上的 Docker 服務
初探 AWS 平台上的 Docker 服務
 
Deep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECSDeep Dive on Microservices and Amazon ECS
Deep Dive on Microservices and Amazon ECS
 
Microservices and Amazon ECS
Microservices and Amazon ECSMicroservices and Amazon ECS
Microservices and Amazon ECS
 
Getting Started with Docker on AWS
Getting Started with Docker on AWSGetting Started with Docker on AWS
Getting Started with Docker on AWS
 
AWS Elastic Beanstalk運作微服務與Docker
AWS Elastic Beanstalk運作微服務與Docker AWS Elastic Beanstalk運作微服務與Docker
AWS Elastic Beanstalk運作微服務與Docker
 
Docker on AWS
Docker on AWSDocker on AWS
Docker on AWS
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Amazon ECS with Docker | AWS Public Sector Summit 2016

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Chad Schmutzer, Solutions Architect, AWS June 21, 2016 Amazon ECS with Docker It’s All About Containers
  • 2. Agenda Why containers? What is Docker? Amazon EC2 Container Service (Amazon ECS) • Cluster management • Benefits • Running services
  • 4. The Problem Different application stacks Different hardware deployment environments How to run all applications across different environments? How to easily migrate from one environment to another? Static website Web front end Background workers User DB Analytics DB Queue Develop- ment VM QA server Single prod server On-site cluster Public cloud Contributor’s laptop Customer servers
  • 5. Static website Web front end Background workers User DB Analytics DB Queue Develop- ment VM QA server Single prod server On-site cluster Public cloud Contributor’s laptop Customer servers The Solution Unit of software delivery Lightweight, portable, consistent Deploy and run everywhere Deploy and run anything
  • 6. Containers User space running on OS kernel Little overhead Guest OS choices limited to host OS kernel Been around for a while: chroot, FreeBSD jails, Solaris containers, OpenVZ, LXC
  • 7. VMs vs. Containers VMs Containers https://www.docker.com/what-docker
  • 9. Benefits Portable runtime application environment Package application and dependencies in a single artifact Run different application versions (different dependencies) simultaneously Faster development & deployment cycles Better resource utilization
  • 10. Use Cases Consistent environment between development & production Service-oriented architectures / microservices Short lived workflows Isolated environments for testing
  • 11. Services Evolve to Microservices Monolithic Application Order UI User UI Shipping UI Order Service User Service Shipping Service Data Access Host 1 Service A Service B Host 2 Service B Service D Host 3 Service A Service C Host 4 Service B Service C
  • 12. Containers Are Natural for Microservices Simple to model Any app, any language Image is the version Test & deploy same artifact Stateless servers decrease change risk
  • 14. Docker Lightweight container virtualization platform Tools to manage and deploy your applications Licensed under the Apache 2.0 license Built by Docker, Inc.
  • 15. Docker Engine Docker daemon Docker client Image source - https://docs.docker.com/engine/introduction/understanding-docker/ Client DOCKER_HOST Registry docker build docker pull docker run Docker daemon Containers Images
  • 19. Scheduling a Cluster 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
  • 20. General Cluster Management: Resource Management Docker Task EC2 Instance Container Docker Task EC2 Instance Container Task Container Docker EC2 Instance Task Container AZ 1 AZ 2
  • 21. General Cluster Management: Scheduling Docker Task EC2 Instance Container Docker Task EC2 Instance Container Task Container Docker EC2 Instance Task Container AZ 1 AZ 2
  • 22. Amazon ECS: Resource Management Docker Task Container Instance Container Task Container Docker Task Container Instance Container Task Container Docker Task Container Instance Container Task Container AZ 1 AZ 2 Cluster Management Engine
  • 23. Amazon ECS: Agent Communication Docker Task Container Instance Container ECS Agent Task Container Docker Task Container Instance Container ECS Agent Task Container Docker Task Container Instance Container ECS Agent Task Container AZ 1 AZ 2 Cluster Management Engine Agent Communication Service
  • 24. Amazon ECS: Key/Value Store Docker Task Container Instance Container ECS Agent ELB Internet ELB Task Container Docker Task Container Instance Container ECS Agent Task Container Docker Task Container Instance Container ECS Agent Task Container AZ 1 AZ 2 Key/Value Store Cluster Management Engine Agent Communication Service
  • 25. Amazon ECS: APIs Docker Task Container Instance Container ECS Agent ELB Internet ELB User / Scheduler API Cluster Management Engine Task Container Docker Task Container Instance Container ECS Agent Task Container Docker Task Container Instance Container ECS Agent Task Container AZ 1 AZ 2 Key/Value Store Agent Communication Service
  • 26. Amazon ECS: Scheduling Docker Task Container Instance Container ECS Agent ELB Internet ELB User / Scheduler API Cluster Management Engine Task Container Docker Task Container Instance Container ECS Agent Task Container Docker Task Container Instance Container ECS Agent Task Container AZ 1 AZ 2 Key/Value Store Agent Communication Service
  • 28. Easily Manage Clusters for Any Scale Nothing to run Complete state Control and monitoring Scale
  • 31. Designed for Use with Other AWS Services Elastic Load Balancing Amazon Elastic Block Store Amazon Virtual Private Cloud Amazon CloudWatch AWS Identity and Access Management AWS CloudTrail
  • 33. Amazon ECS Docker Task Container Instance Amazon ECS Container ECS Agent ELB Internet ELB User / Scheduler API Cluster Management Engine Task Container Docker Task Container Instance Container ECS Agent Task Container Docker Task Container Instance Container ECS Agent Task Container AZ 1 AZ 2 Key/Value Store Agent Communication Service
  • 36. Key Components: Task Definitions
  • 37. Key Components: Task Definitions
  • 39. Unit of work Grouping of related containers Run on container instances Tasks
  • 40. Create a Service Good for long-running applications and services
  • 41. Create Service Load balance traffic across containers Automatically recover unhealthy containers Discover services Elastic Load Balancing Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers
  • 42. Scale Service Scale up Scale down Elastic Load Balancing Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers
  • 43. Update Service Deploy new version Drain connections Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers new new new Elastic Load Balancing Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers old old old
  • 44. Update Service (cont.) Deploy new version Drain connections Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers new new new Elastic Load Balancing Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers old old old
  • 45. Update Service (cont.) Deploy new version Drain connections Elastic Load Balancing Shared Data Volume Containers Shared Data Volume Containers Shared Data Volume Containers new new new
  • 47. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Chris Malek Associate Director of Academic Development June 21, 2016 access.caltech in AWS
  • 48. • California Institute of Technology • Pasadena, CA • Top tier university: #1 in Times Higher Education world rankings • Small: 6400 people (1000 undergrads, 1200 grads, 300 faculty, 3900 staff) • 3:1 undergrad-faculty ratio • JPL: Founded by Caltech in 30’s, managed for NASA since 1958
  • 49. • Part of IMSS, the central IT org • Lean, 6 people, all developers, even management • 35 years of collective systems administration experience • 50 years of collective development experience • ~130 websites and web applications, including www.caltech.edu and the campus intranet portal • Much smaller than counterparts at peer institutions Our job: Enable research and instruction through software Academic Development Services
  • 50. Upper management, operations and developers pro-cloud Move all on-premise services to cloud within 3 years We've been production in AWS since 2010 Many Caltech production workloads currently in AWS Strategy: DevOps, public data, low-hanging fruit, Field of Dreams model Cloud Adoption (2010-present)
  • 51. Leverage AWS scale, expertise, and capabilities • AZs, APIs, Infrastructure as code • AWS better than us at many things • AWS allows us to do things we can’t on-premises • Don’t have to run low level services Allows us to concentrate on how we add value Why cloud?
  • 53. • Distributed system comprised of many interconnected systems. • Authenticating proxy server with around 90 applications behind it • Covers most of the academic and administrative apps people might use Two parts: core system and proxied apps access.caltech: Caltech’s intranet portal
  • 54.
  • 55.
  • 56. • Needs to be highly-available • Be performant at variable loads • Typical traffic: 5-10 hits/s • Must scale to 800 hits/s during registration • Protect and secure proxied apps and data • Certain core components should stay up during disaster • Be able to easily deploy new versions of core software • Need many DEV, TEST, QA and production support envs access.caltech: key requirements
  • 57. user AUTH SERVICE REDIS CONTROL SERVICE haproxy home admin prefs my_account loadapp challenge_questi ons_api LDAP LEGACY LDAP LDAP LEGACY LDAP Active Directory mail servers mailman API mailman MySQL PROXY SERVERS CORE SERVER LDAP SLAVES LDAP MASTERS AD ~90 PROXIED APPS ON-PREM ARCHITECTURE
  • 58. user AUTH SERVICE REDIS CONTROL SERVICE haproxy home admin prefs my_account loadapp challenge_questi ons_api LDAP LEGACY LDAP LDAP LEGACY LDAP Active Directory mail servers mailman API mailman MySQL PROXY SERVERS CORE SERVER LDAP SLAVES LDAP MASTERS AD ~90 PROXIED APPS CLOUD MIGRATION: PHASE 1
  • 59. • Move access.caltech core PROD to VPC in AWS • Continuous deployment system based on Jenkins, Docker containers, and Consul • Be able to build DEV and TEST environments in AWS • Proxy from AWS to on-premises apps via VPN tunnel Later phases: move proxied apps individually to AWS access.caltech in AWS: phase 1
  • 60. ELB NAT NAT RDS AWS VPN VPC 1 AZ1 ELASTICACHE (REDIS) AZ2 PROXY CORE CONSUL CONSUL PROXY CORE ELASTICACHE (REDIS)RDS LDAP MASTER LDAP SLAVE VPC 2 AZ1 LDAP SLAVE LDAP MASTER LDAP SLAVE AZ2 LDAP SLAVE ELB ELB ELASTICSEARCH ~90 PROXIED APPS CALTECH P E E R I N G ECS MACHINE AWS SERVICE EC2 INSTANCE PRIVATE PUBLIC SUBNETS JENKINS
  • 61. Need a more rapid, consistent deployment mechanism • Our current process takes weeks to months to get new versions to production, and deployments are rocky • Raw vs cooked. Cooked: build as much before deployment as possible. • encapsulation of entire OS as a software artifact • guaranteed same code and OS build for DEV, TEST, PROD • easily replicate whole systems architectures in DEV Docker image community Why Docker?
  • 62. Deployment pipeline (Jenkins) Build Test Image Run Tests Build and Push final image Deploy to QA infrastructure Run integration tests Human Review Deploy to prod infrastructure Run integration tests Deploy to prod support infrastructure QA Pipeline Developer pushes code Promote to Prod pipeline
  • 63. No orchestration infrastructure to run • Container scheduling and placement are implicitly at cloud scale — no need to plan for HA, throughput, etc. • Built in monitoring via CloudWatch and ECS event stream • Powerful ECS command line tools AWS API for managing tasks and services AWS service integration, especially for load balancers and VPCs ECS repositories Why ECS? (vs Docker Swarm) PROS
  • 64. Painful to debug container launch fails docker version lags behind current, sometimes significantly No equivalent to swarm overlay network Different strategies for deploying containers • Swarm has spread, binpack and random • ECS has task and service strategies, which both seem to be like Swarm’s “spread” strategy • Although ECS allows you to develop your own strategies via custom schedulers via StartTask API Why ECS? (vs Docker Swarm) CONS
  • 65. The entire container is your software • not just your own code. • OS + code becomes a software artifact Development team will need to have or develop systems experience • Or work closely with systems people Probably need to remediate your code in order to take advantage of the container environment Docker/ECS Challenges
  • 66. Containers are truly disposable and anonymous • Figuring out which container is having issues is interesting • Entire OS is destroyed when re-deploying containers Containers are not VMs • No ssh interface to containers • Containers are minimal systems: no ssh, no cron, no syslogd, etc. Need to change your architecture and practices Logging, monitoring Docker/ECS Challenges, cont.

Editor's Notes

  1. Hypervisor virtualization usually means running independent VMs on an intermediate abstraction layer, either on top of an OS or directly on hardware. Containers differ in that the user space (the memory dedicated to handling applications, etc) is ran on top of the OS’ Kernel They’re generally considered lighter than hypervisor virtualisation, as there’s a lot less overhead, but they’re limited by the underlying kernel. E.g. Amazon Linux kernel could run Amazon Linux, Ubuntu, etc., but not Windows. In Docker, these containers were originally based on LXC, but are now based on a native “libcontainer” library. Docker also makes use of cgroups & kernel namespaces to provide isolation of processes, resources, network & filesystems. Each container has it’s own process environment, virtual network interface & root filesystem. The filesystem is copy-on-write, meaning it’s layer, very fast & doesn’t require much disk space. Stdin, Stdout & Stderr are collected, logged & available for you. You can also create a pseudo-tty and login to an interactive shell on the container.
  2. You may be thinking – this sounds interesting but why would I want to use containers? There are 4 key benefits to using containers. 1.) The first is that containers are portable. the image is consistent and immutable -- no matter where I run it, or when I start it, it’s the same. This makes the dev lifecycle simpler –an image works the same on the developer’s desktop & prod, whether I start it today or scale my environment tomorrow, so there’s no surprises. The entire Application is self-contained -- The image is the version, which makes deployments and scaling easier because the image includes the dependencies. Small, usually 10s MB for the image, very sharable 2.) Containers are flexible. You can create clean, reproducible, and modular environments. Whereas in the past multiple processes would be on the same OS (e.g. Ruby, caching, log pushing), now Containers makes make it easy to decompose an app into smaller chunks, like microservices, reducing complexity & letting teams move faster while still running the processes on the same host, e.g. no library conflicts This streamlines both code deployment and infrastructure management 3.) Simply stating that Docker images start fast sells the technology short as speed is apparent in both performance characteristics and in application lifecycle and deployment benefits So yes, containers start quickly because the operating system is already running, but Every container can be a single threaded dev stream; less interdependencies Also ops benefits - Example: IT updates the base image, I just do a new docker build – I can just focus on my app, meaning it’s faster for me to build & release. 4.) Finally, containers are efficient. You can allocate exactly the resources you want – specific cpu, ram, disk, network Since it shares the same OS kernel & libs, containers use less resources than running the same processes on different virtual machines (different way to get isolation)
  3. Makes it easier to build & deploy things more rapidly, because the environment is the same. Build the container in dev, push to test, release to prod. This can also be useful for customers running hybrid environments. Makes it easier to keep consistent environments for SOAs or Micro-Services. Also, many of these services aren’t very resource intensive, so you can place them together on one instance. Sometimes customers have short-lived workflows that need to setup environments (e.g. queue systems, CI jobs, etc.), which doesn’t always map too well to EC2’s per-hour billing model. Docker can be one workaround, allowing them to push & pop containers on to the instance. Can be useful for isolated execution when testing user code. E.g. Go Playground or similar.
  4. So I want to tell you a story about Amazon.com and the evolution of its architecture. Over 10 years ago, Amazon had a large monolithic application running its website. Everything from its UI, ordering systems, recommendations engine, shopping cart was one big application with one large code base. The problem with that was there are a lot of code interdependencies that have to be resolved. Another problem Amazon experienced was it was hard to scale the website. If one part or service was memory intensive and another CPU intensive, the servers much be provisioned with enough memory and CPU to handle that baseline load. So if the CPU intensive service received a heavy load you have to provision a large machine and have a lot of underutilized resources In order to scale better, Amazon decomposed its architecture into individual services that could be deployed separately. This allowed it to scale each service independently. It was able to have smaller teams that worked on each of the services and controlled that services codebase. This allowed the website to evolve faster because new updates can be delivered independently of other teams. This architecture is what now is known as microservices.
  5. Containers & Docker are natural for this pattern of microservices It makes services simple to model; The application and all its dependencies are packaged into an image using a Dockerfile. It supports Any app, any language The Image is a versioned artifact that can be stored in a repository just like your source code. This makes applications easy to test & deploy because they are the same artifacts Containers also simplify deployment -- Stateless servers are natural with Docker and each deployment is a new set of containers This Decreases risk of change – rollback is simple This all makes it easy to decompose applications to microservices. Every microservice is self contained allowing you to reduce dependency conflicts and decouple deployments.
  6. Docker is a platform designed to help automate deployment of application containers. It was built by the Docker, Inc., who were previously “DotCloud”, a PaaS platform.
  7. So lets talk about scheduling
  8. The Docker CLI is great if you want to run a container on your laptop for example “docker run myimage”.
  9. But it’s challenging to scale to 100s of containers. Now you’re suddenly managing a cluster & cluster management is hard. You need a way to intelligently place your containers on the instances that have the resources and that means you need to know the state of everything in your system. For example… what instances have available resources like memory and ports? How do I know if a container dies? How do I hook into other resources like ELB? Can I extend whatever system that I use, e.g. CD pipeline, third party schedulers, etc. Do I need to operate another piece of software? These are the questions and challenges that our customers had which led us to build Amazon ECS
  10. Resource Manager is responsible for keeping track of resources like memory, CPU, and storage and their availability at any given time in the cluster.
  11. Next, the Scheduler is responsible for scheduling containers or tasks for execution. The scheduler contains algorithms for assigning tasks to nodes in the cluster based on the resources required to execute the task.  To properly schedule you need to : Know your constraints like memory, CPU Find resources from your cluster that meet the constraints Request a resource Confirm the resource The scheduler is also responsible for the task execution lifecycle. Is the task alive or dead and should it be rescheduled
  12. ECS provides a simple solution to cluster management: We have a cluster management engine that coordinates the cluster of instances, which is just a pool of CPU, memory, storage, and networking resources The instances are just EC2 instances that are running our agent that have been checked into a cluster. You own them and can SSH into them if you want Dynamically scalable. Possible to have a 1 instance cluster, and then a 100 or even 1000 instance cluster. Segment for particular purposes, e.g. dev/test
  13. On each instance, we have the ECS agent which communicates with the engine and processes ECS commands and turns them into Docker commands To instructs the EC2 instances to start, stop containers and monitor the used and available resources It’s all open source on Github and we develop in the open, so we’d love to see you involved through pull requests.
  14. To coordinate this cluster we need a single source of truth for all the instances in the cluster, tasks running on the instances, and containers that make up the task, and the resources available. This is known as cluster state So at the heart of ECS is a key/value store that stores all of this cluster state To be robust and scalable, this key/value store needs to be distributed for durability and availability But because the key/value store is distributed, making sure data is consistent and handling concurrent changes becomes more difficult For example, if two developers request all the remaining memory resources from a certain EC2 instance for their container, only one container can actually receive those resources and the other would have to be told their request could not be completed. As such, some form of concurrency control has to be put in place in order to make sure that multiple state changes don’t conflict.
  15. But what is unique about ECS is we decouple the container scheduling from the cluster management. We have opened up the Amazon ECS cluster manager through a set of API actions that allow customers to access all the cluster state information stored in our key/value store This set of API actions form the basis of solutions that customers can build on top of Amazon ECS such as connecting your CICD system or schedulers
  16. This API allows you to connect different schedulers to ECS A scheduler just provides logic around how, when, and where to start and stop containers. Amazon ECS’ architecture is designed to share the state of the cluster and allow customers to run as many varieties of schedulers (e.g., bin packing, spread, etc) as needed for their applications.
  17. The reason we developed ECS was customers had been running containers and Docker on EC2 for quite some time. What customers told us was the difficulty of running these containers at scale which generally involved installing and managing cluster management software Eliminates cluster management software Manages cluster state Manages containers Control and monitoring Scale from one to tens of thousands of containers
  18. Earlier this year we ran a load test Over a 3 day period we scaled our cluster 200 to over 1000 instances in our cluster as represented by the purple line The green and red line show the p99 and p50 latencies As you can see they are relatively flat demonstrating that ECS is stable and will scale regardless of your cluster size
  19. So Amazon ECS has two builtin schedulers to help find the optimal instance placement based on your resource needs, isolation policies, and availability requirements: A scheduler for long running applications and services A scheduler for short running tasks like batch jobs As discussed before - Because ECS provides you a power set of APIs, it allows you to integrate your own custom scheduler as well as open source schedulers. All of these allow you to have very flexible methods to do scheduling on ECS
  20. Amazon ECS is built to work with the AWS services you value. You can set up each cluster in its own Virtual Private Cloud and use security groups to control network access to your ec2 instances. You can store persistent information using EBS and you can route traffic to containers using ELB. CloudTrail integration captures every API access for security analysis, resource change tracking, and compliance auditing
  21. As discussed before ECS has a simple set of APIs that allows it to be very easy to integrate and extend You can use your own container scheduler or connect ECS into your existing software delivery process (e.g., continuous integration and delivery systems) Our container agent and CLI is open source and available on GitHub. We look forward to hearing your input and pull requests.
  22. Summing everything, what ECS allows is the reduction on the amount of code you need to go from idea to implementation when building distributed systems. So, rather than having Mesos or other cluster management software having to manage a set of machines directly, ECS manages your instances. Much of the undifferentiated heavy lifting and housekeeping has been abstracted behind a set of APIs. The ability to run multiple tasks on a shared pool of resources can also lead to higher utilization and faster task completion than if compute resources are statically partitioned.
  23. You can model your app using a file called a Task Definition This file defines the containers you want to run together. A task definition also lets you specify Docker concepts like links to establish network channels between the containers and the volumes your containers need. Task definitions are tracked by name and revision, just like source code
  24. To create a task definition, you can use the console to specify the Docker image to use for the containers You can specify resources like CPU and memory, ports and volumes for each container. You can specify what command to run when the container starts. And the essential flag specifies whether the task should fail if the container stops running.
  25. You can also type everything as JSON if you want
  26. Once your task definition is created, scheduling a Task Definition onto an instance with available resources creates a task
  27. A task is an instantiation of a task definition. You can have a task with just 1 container…or up to 10 that work together on a single machine. Maybe nginx in front of rails, or redis behind rails. You can run as many tasks on an instances as will fit. Often people wonder about cross host links, those don’t go in your task, put them behind an ELB, or a discovery system and make multiple tasks.
  28. ECS has a scheduler that is good for long-running applications called the service scheduler You reference a task definition and the number of tasks you want to run and then can optionally place it behind an ELB. The scheduler will then launch the number of tasks that you requested
  29. The scheduler will maintain the number of tasks you want to run and will have it automatically load balance
  30. Scaling up and down is simple. You just tell the scheduler how many tasks you need and the scheduler will automatically launch more tasks or terminate tasks
  31. Updating a service is easy You deploy the new version and the scheduler with launch tasks with the new application version
  32. It will drain the connection from the old containers and remove the containers
  33. Leaving the newest containers running