SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
OVERCOMING 5 COMMON
DOCKER CHALLENGES:
HOW WE DID IT AT RIGHTSCALE
Panelists
• Ryan O’Leary: Moderator
• Senior Director, Product
• Tony Spataro
• Senior Systems Architect
• Mark Dotson
• Principal System Administrator
• The State of Docker
• RightScale’s Docker Journey
• Development Challenges
• Managing Docker images
• Multi-host Docker development
• Ops Challenges
• Orchestrating Docker in production:
• service discovery, configuration, and auditability
• Dynamic monitoring and alerting
• Increasing container density per host
Agenda
2
RightScale Vision: Manage Any Resource Pool
3
Public
Clouds
Private
Clouds
Virtual
Environments
Bare Metal
Servers
Containers Containers Containers Containers
Orchestration, Management, and Governance for Any Environment
2%
3%
3%
4%
6%
7%
9%
20%
27%
32%
32%
8%
10%
12%
11%
16%
18%
12%
14%
35%
18%
19%
Rancher
Rocket
Docker Tutum
Mesosphere
Docker Swarm
Kubernetes
Salt
Ansible
Docker
Puppet
Chef
Respondents Using DevOps Tools
Use today
Plan to use
2016 DevOps Tools – All Respondents
Source: RightScale 2016 State of the Cloud Report
3%
6%
10%
13%
28%
24%
3%
9%
20%
27%
32%
32%
Rocket
Salt
Ansible
Docker
Chef
Puppet
Respondents Using DevOps Tools
2016
2015
DevOps Tools YoY – All Respondents
Source: RightScale 2016 State of the Cloud Report
RIGHTSCALE’S DOCKER
JOURNEY
• Architectural role of VMs
didn’t change
• Services other then app
lived outside container
• Deployed (generally) 1
app container onto each
VM, using nginx on VM to
route to app container.
• Static Mapping
Step 1: Containerize Code
7
syslog smtp
my-awesome-app
Application Server 1..n
Container
No container
nginx
• Deploy N containers in
a non-cloud VM
• Integration test in real
time
• No persistence, HA, etc
Step 2: Composing in dev-and-test
8
Developer Laptop
nginx
my-awesome-app
smtp
syslog
• Deploy N ‘good
neighbor’ containers
onto a VM
• Host-local balancer
• Service discovery
• Supports
microservices
• Supports “traditional”
services
Step 3: Bay of Containers
9
Application Logical Grouping 1..n
balancer
A
smtp syslog
srv.
dsc.
B C D
Sidecar B
balancer
E
smtp syslog
srv.
dsc.
F
G H Z
DEVELOPMENT AND
DOCKER
CHALLENGE 1
MAKING (USEFUL) IMAGES
Images: Build Args
# In my Dockerfile
ARG gitref=unknown
LABEL git.ref=${gitref}
# During my build
commit=`git rev-parse --verify HEAD`
docker build --build-arg gitref=${commit}
1
2
# In my built image‘s metadata
Id: "sha256:11bb...",
RepoTags: [
"rightscale/right_api:latest”
],
Labels: {
git.ref: "f131ac4047...”
}
3
Metadata-rich images
Conditional content (e.g. debug support)
Your idea here! (Careful…)
Fetch dependencies before the build; install them during the build.
# Add fetched dependencies to
# the image
COPY vendor/cache vendor/cache/
# Build them inside the container
# for matched shared libraries &c
RUN bundle install
# No key material in my image!
Images: The Golden Rule
# Continuous integration script
# Use an SSH private key to
# fetch private dependencies
bundle package
docker build
Secure - no embedded private keys
Efficient layer-cached image builds
Repeatable dependency resolution
• Developers want to integration test without using production-
grade orchestration tools
• Docker images that know how to dance
• Two (or more) ways to dance
• Fail fast
• Eventual consistency
Images: Choreography
# I fail at startup if my database
# is not reachable, or if it isn’t
# in the ideal state for me.
CMD bin/webapp --database=$DB_HOST
Brittle containers Resilient compositions
# docker-compose will relaunch me
# every time I fail.
# Not suitable for real deployment!
webapp:
image: rightscale/webapp:latest
restart: always
env:
DB_HOST: postgres
links:
- postgres
Choreography: Fail Fast
+ Implicit failure is less likely
- Causes log spam at startup
# Wrapper script runs my actual
# service
CMD bin/entrypoint.sh
# Wrapper converges on an ideal state
# before passing control to my app
while [ “$?” != “0” ]; do
psql –qc "select now()" $DB_HOST
sleep 1
done
Resilient containers Simple compositions
# Failures are an error, not an
# expected outcome
webapp:
image: rightscale/webapp:latest
restart: never
env:
DB_HOST: postgres
links:
- postgres
Choreography: Eventual consistency
+ Allows powerful and sophisticated setup logic
- Developer tooling built into images; may ship to production!
CHALLENGE 2
MULTI-HOST DOCKER DEVELOPMENT
Mixed containers/processes Pure-container
Which Runtime Model?
Split Connected
Which Networking Model?
Mixed runtime; split networks
Pure-container runtime; connected network
• Many options
• Experiment & play
• As simple as possible
• …but no simpler!
Multi-Host Docker
OPERATIONS AND
DOCKER
CHALLENGE 3
ORCHESTRATION
• Existing, proven architecture
• Orchestration tools already in place
• SSAE-16 certified key management & auditing practices
• Managing a mixture of resources
• VMs
• Containers-on-VMs
• Databases, load balancers, networks, other non-compute resources
• Need for cross-cutting solutions
• Service discovery that spans VMs and containers
• Key/value store that works for with VM-hosted services
Orchestration: No Clean Slate
Orchestration
26
• Haproxy
• Host-local load balancer.
• Consul
• Service Discovery
• Key-Value Store
• Consul-Template
haproxy
A
smtp syslog consul
B C D
Sidecar B
Orchestration: HAProxy
27
• Acts as host-level balancer between boundry balancers and
containers.
• Allows for enforcement of an container-level maximum connections
allowed to a given service
• Dynamically creates or destroys app listener pools with upstream
hosts (containers) using service discovery/consul + consul-template.
Orchestration: Consul
28
• Service Discovery
• Registers service offering along with randomly assigned
local host port map
• Key-Value Store
• Universal port mapping
• Application configuration (“inputs”) information
• Audit trail
• Consul-template
• Consul + HAProxy = Win
CHALLENGE 4
MONITORING & ALERTING
Monitoring & alerting
30
• Application specific
monitoring for services in
containers
• Deployment information in
consul key-value
• Collectd + docker exec
• Application specific alerts for
services in containers
• Alert definations stored in consul
key-value
• Creation and destruction calls to
add to vm at container runtime
# alert stored as json hash and into kv
{
“deployment”: {
“alerts”: {
"container - High Activity Delay": {
"name": "container - High Activity Delay",
"description": "This graph represents the delay before an
activity completing a request",
"file": "cwf_stats/gauge-median_activity_delay",
"variable": "value",
"condition": ">=",
"threshold": "60",
"duration": 10,
"escalation_name": "critical"
},
…
CHALLENGE 5
INCREASED HOST DENSITY
Increased host density
32
• Old model was 1 properly-sized
vm to 1 container.
• At the end of the day, bringing up a
new service still meant… launching
a new instance.
• New model is 1 properly-sized
vm to many “good neighbor”
containers.
• Have some excess capacity due to
your usage patterns on a host/set of
hosts? Add that new service right
on in!
haproxy
A
smtp syslog consul
B C D
Sidecar B
WHAT COMES NEXT?
Sea of Containers
34
VM VM VM
A A A
A A
A
C C
B B
B B
VM VM VM
A A A
C C
A A A
C C
B B B
B B
Container Management
B • N(×M) containers
• 0..N VMs
• Elastic mesh network
• Declarative
everything
• Resource scheduling
A A
ECS Kubernetes Rancher Swarm
Docker CLI X X X
Orchestration API,
compose
API compose compose
Constraints replication placement placement
Shared Networking layer-3 overlay (IPSec) overlay (VXLAN)
Shared Storage X X D.I.Y.
Load Balancer X X X D.I.Y.
Self-Healing replace replace restart restart
Portability low medium medium high
Overview of Solutions
• Using Docker and RightScale
• www.rightscale.com/docker
Q&A
36

Contenu connexe

Tendances

Stratoscale Latest and Greatest
Stratoscale Latest and GreatestStratoscale Latest and Greatest
Stratoscale Latest and Greatest
Zach Lanksbury
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinal
aspyker
 

Tendances (20)

Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D...
 
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
Avishay Traeger & Shimshon Zimmerman, Stratoscale - Deploying OpenStack Cinde...
 
Serverless Stream Processing with Bill Bejeck
Serverless Stream Processing with Bill BejeckServerless Stream Processing with Bill Bejeck
Serverless Stream Processing with Bill Bejeck
 
Kubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBayKubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBay
 
Stratoscale Latest and Greatest
Stratoscale Latest and GreatestStratoscale Latest and Greatest
Stratoscale Latest and Greatest
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
104 meets cloud
104 meets cloud104 meets cloud
104 meets cloud
 
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
The Mushroom Cloud Effect or What Happens When Containers Fail? by Alois Mayr...
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless Architecture
 
'Cloud-Native' Ecosystem - Aug 2015
'Cloud-Native' Ecosystem - Aug 2015'Cloud-Native' Ecosystem - Aug 2015
'Cloud-Native' Ecosystem - Aug 2015
 
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
A New Centralized Volume Storage Solution for Docker and Container Cloud by W...
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
AliCloud Object Storage Service (OSS) Core Features
AliCloud Object Storage Service (OSS) Core FeaturesAliCloud Object Storage Service (OSS) Core Features
AliCloud Object Storage Service (OSS) Core Features
 
AKS
AKSAKS
AKS
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
Meetup #3: Migrating an Oracle Application from on-premise to AWS
Meetup #3: Migrating an Oracle Application from on-premise to AWSMeetup #3: Migrating an Oracle Application from on-premise to AWS
Meetup #3: Migrating an Oracle Application from on-premise to AWS
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinal
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
Achieve business agility with Cloud APIs, Cloud-aware Apps, and Cloud DevOps ...
 

En vedette

Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
Conferencias Ayto Briviesca 2012 Autrigones
Conferencias Ayto Briviesca 2012 Autrigones Conferencias Ayto Briviesca 2012 Autrigones
Conferencias Ayto Briviesca 2012 Autrigones
labureba
 

En vedette (20)

Ten Ways to Optimize Costs on Public and Private Clouds
Ten Ways to Optimize Costs on Public and Private CloudsTen Ways to Optimize Costs on Public and Private Clouds
Ten Ways to Optimize Costs on Public and Private Clouds
 
The Path to Broker Cloud Services
The Path to Broker Cloud ServicesThe Path to Broker Cloud Services
The Path to Broker Cloud Services
 
What Every MSP Needs to Know for Cloud Success
What Every MSP Needs to Know for Cloud SuccessWhat Every MSP Needs to Know for Cloud Success
What Every MSP Needs to Know for Cloud Success
 
7 Common Questions About a Cloud Management Platform
7 Common Questions About a Cloud Management Platform7 Common Questions About a Cloud Management Platform
7 Common Questions About a Cloud Management Platform
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
 
Microservices in a netshell
Microservices in a netshellMicroservices in a netshell
Microservices in a netshell
 
State of the Dutch Cloud
State of the Dutch CloudState of the Dutch Cloud
State of the Dutch Cloud
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
Pivoting to Cloud: How an MSP Brokers Cloud Services
Pivoting to Cloud: How an MSP Brokers Cloud Services Pivoting to Cloud: How an MSP Brokers Cloud Services
Pivoting to Cloud: How an MSP Brokers Cloud Services
 
How IT at Getty Images Brokers Cloud Services
How IT at Getty Images Brokers Cloud ServicesHow IT at Getty Images Brokers Cloud Services
How IT at Getty Images Brokers Cloud Services
 
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Mentor Gra...
 
How to Manage Clouds, VMs and Bare Metal via RightScale
How to Manage Clouds, VMs and Bare Metal via RightScaleHow to Manage Clouds, VMs and Bare Metal via RightScale
How to Manage Clouds, VMs and Bare Metal via RightScale
 
CHOReVOLUTION WP4 UTC Use case
CHOReVOLUTION WP4 UTC Use caseCHOReVOLUTION WP4 UTC Use case
CHOReVOLUTION WP4 UTC Use case
 
Enterprise Cloud Governance: A Frictionless Approach
Enterprise Cloud Governance: A Frictionless ApproachEnterprise Cloud Governance: A Frictionless Approach
Enterprise Cloud Governance: A Frictionless Approach
 
How 2015 Cloud Trends Should Impact Your 2016 Cloud Strategy
How 2015 Cloud Trends Should Impact Your 2016 Cloud StrategyHow 2015 Cloud Trends Should Impact Your 2016 Cloud Strategy
How 2015 Cloud Trends Should Impact Your 2016 Cloud Strategy
 
Using Rancher and Docker with RightScale at Industrie IT
Using Rancher and Docker with RightScale at Industrie IT Using Rancher and Docker with RightScale at Industrie IT
Using Rancher and Docker with RightScale at Industrie IT
 
How Mentor Graphics Uses Google Cloud for the Internet of Things - Google Clo...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Google Clo...How Mentor Graphics Uses Google Cloud for the Internet of Things - Google Clo...
How Mentor Graphics Uses Google Cloud for the Internet of Things - Google Clo...
 
Best Practices for Your CMP RFP or RFI
Best Practices for Your CMP RFP or RFIBest Practices for Your CMP RFP or RFI
Best Practices for Your CMP RFP or RFI
 
CTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, ViadeoCTO Crunch avec Julien Simon, Viadeo
CTO Crunch avec Julien Simon, Viadeo
 
Conferencias Ayto Briviesca 2012 Autrigones
Conferencias Ayto Briviesca 2012 Autrigones Conferencias Ayto Briviesca 2012 Autrigones
Conferencias Ayto Briviesca 2012 Autrigones
 

Similaire à Overcoming 5 Common Docker Challenges: How We Do It at RightScale

Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
Patrick Chanezon
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
dotCloud
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
dotCloud
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
BlueData, Inc.
 

Similaire à Overcoming 5 Common Docker Challenges: How We Do It at RightScale (20)

Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Containers 101
Containers 101Containers 101
Containers 101
 
MariaDB on Docker
MariaDB on DockerMariaDB on Docker
MariaDB on Docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
Devoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and BoltsDevoxx 2016 - Docker Nuts and Bolts
Devoxx 2016 - Docker Nuts and Bolts
 
OSDC 2014: Tobias Schwab - Continuous Delivery with Docker
OSDC 2014: Tobias Schwab - Continuous Delivery with Docker OSDC 2014: Tobias Schwab - Continuous Delivery with Docker
OSDC 2014: Tobias Schwab - Continuous Delivery with Docker
 
Intro Docker october 2013
Intro Docker october 2013Intro Docker october 2013
Intro Docker october 2013
 
Microservices with containers in the cloud
Microservices with containers in the cloudMicroservices with containers in the cloud
Microservices with containers in the cloud
 
Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep Dive
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
 
Docker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud ApplicationsDocker in Production: How RightScale Delivers Cloud Applications
Docker in Production: How RightScale Delivers Cloud Applications
 
Power of Azure Devops
Power of Azure DevopsPower of Azure Devops
Power of Azure Devops
 
Getting started with MariaDB with Docker
Getting started with MariaDB with DockerGetting started with MariaDB with Docker
Getting started with MariaDB with Docker
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
Docker
DockerDocker
Docker
 
Lessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker ContainersLessons Learned Running Hadoop and Spark in Docker Containers
Lessons Learned Running Hadoop and Spark in Docker Containers
 
Containers docker-docker hub-azureacr-azure aci
Containers docker-docker hub-azureacr-azure aciContainers docker-docker hub-azureacr-azure aci
Containers docker-docker hub-azureacr-azure aci
 

Plus de RightScale

Plus de RightScale (20)

10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance10 Must-Have Automated Cloud Policies for IT Governance
10 Must-Have Automated Cloud Policies for IT Governance
 
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOpsKubernetes and Terraform in the Cloud: How RightScale Does DevOps
Kubernetes and Terraform in the Cloud: How RightScale Does DevOps
 
Optimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScaleOptimize Software, SaaS, and Cloud with Flexera and RightScale
Optimize Software, SaaS, and Cloud with Flexera and RightScale
 
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About NowPrepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
Prepare Your Enterprise Cloud Strategy for 2019: 7 Things to Think About Now
 
How to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your EnterpriseHow to Set Up a Cloud Cost Optimization Process for your Enterprise
How to Set Up a Cloud Cost Optimization Process for your Enterprise
 
Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)Multi-Cloud Management with RightScale CMP (Demo)
Multi-Cloud Management with RightScale CMP (Demo)
 
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBMComparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
Comparing Cloud VM Types and Prices: AWS vs Azure vs Google vs IBM
 
How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale Optima
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider Tools
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and Compliance
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for Enterprises
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBM
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP Helps
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale Optima
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Overcoming 5 Common Docker Challenges: How We Do It at RightScale

  • 1. OVERCOMING 5 COMMON DOCKER CHALLENGES: HOW WE DID IT AT RIGHTSCALE
  • 2. Panelists • Ryan O’Leary: Moderator • Senior Director, Product • Tony Spataro • Senior Systems Architect • Mark Dotson • Principal System Administrator
  • 3. • The State of Docker • RightScale’s Docker Journey • Development Challenges • Managing Docker images • Multi-host Docker development • Ops Challenges • Orchestrating Docker in production: • service discovery, configuration, and auditability • Dynamic monitoring and alerting • Increasing container density per host Agenda 2
  • 4. RightScale Vision: Manage Any Resource Pool 3 Public Clouds Private Clouds Virtual Environments Bare Metal Servers Containers Containers Containers Containers Orchestration, Management, and Governance for Any Environment
  • 5. 2% 3% 3% 4% 6% 7% 9% 20% 27% 32% 32% 8% 10% 12% 11% 16% 18% 12% 14% 35% 18% 19% Rancher Rocket Docker Tutum Mesosphere Docker Swarm Kubernetes Salt Ansible Docker Puppet Chef Respondents Using DevOps Tools Use today Plan to use 2016 DevOps Tools – All Respondents Source: RightScale 2016 State of the Cloud Report
  • 6. 3% 6% 10% 13% 28% 24% 3% 9% 20% 27% 32% 32% Rocket Salt Ansible Docker Chef Puppet Respondents Using DevOps Tools 2016 2015 DevOps Tools YoY – All Respondents Source: RightScale 2016 State of the Cloud Report
  • 8. • Architectural role of VMs didn’t change • Services other then app lived outside container • Deployed (generally) 1 app container onto each VM, using nginx on VM to route to app container. • Static Mapping Step 1: Containerize Code 7 syslog smtp my-awesome-app Application Server 1..n Container No container nginx
  • 9. • Deploy N containers in a non-cloud VM • Integration test in real time • No persistence, HA, etc Step 2: Composing in dev-and-test 8 Developer Laptop nginx my-awesome-app smtp syslog
  • 10. • Deploy N ‘good neighbor’ containers onto a VM • Host-local balancer • Service discovery • Supports microservices • Supports “traditional” services Step 3: Bay of Containers 9 Application Logical Grouping 1..n balancer A smtp syslog srv. dsc. B C D Sidecar B balancer E smtp syslog srv. dsc. F G H Z
  • 13. Images: Build Args # In my Dockerfile ARG gitref=unknown LABEL git.ref=${gitref} # During my build commit=`git rev-parse --verify HEAD` docker build --build-arg gitref=${commit} 1 2 # In my built image‘s metadata Id: "sha256:11bb...", RepoTags: [ "rightscale/right_api:latest” ], Labels: { git.ref: "f131ac4047...” } 3 Metadata-rich images Conditional content (e.g. debug support) Your idea here! (Careful…)
  • 14. Fetch dependencies before the build; install them during the build. # Add fetched dependencies to # the image COPY vendor/cache vendor/cache/ # Build them inside the container # for matched shared libraries &c RUN bundle install # No key material in my image! Images: The Golden Rule # Continuous integration script # Use an SSH private key to # fetch private dependencies bundle package docker build Secure - no embedded private keys Efficient layer-cached image builds Repeatable dependency resolution
  • 15. • Developers want to integration test without using production- grade orchestration tools • Docker images that know how to dance • Two (or more) ways to dance • Fail fast • Eventual consistency Images: Choreography
  • 16. # I fail at startup if my database # is not reachable, or if it isn’t # in the ideal state for me. CMD bin/webapp --database=$DB_HOST Brittle containers Resilient compositions # docker-compose will relaunch me # every time I fail. # Not suitable for real deployment! webapp: image: rightscale/webapp:latest restart: always env: DB_HOST: postgres links: - postgres Choreography: Fail Fast + Implicit failure is less likely - Causes log spam at startup
  • 17. # Wrapper script runs my actual # service CMD bin/entrypoint.sh # Wrapper converges on an ideal state # before passing control to my app while [ “$?” != “0” ]; do psql –qc "select now()" $DB_HOST sleep 1 done Resilient containers Simple compositions # Failures are an error, not an # expected outcome webapp: image: rightscale/webapp:latest restart: never env: DB_HOST: postgres links: - postgres Choreography: Eventual consistency + Allows powerful and sophisticated setup logic - Developer tooling built into images; may ship to production!
  • 23. • Many options • Experiment & play • As simple as possible • …but no simpler! Multi-Host Docker
  • 26. • Existing, proven architecture • Orchestration tools already in place • SSAE-16 certified key management & auditing practices • Managing a mixture of resources • VMs • Containers-on-VMs • Databases, load balancers, networks, other non-compute resources • Need for cross-cutting solutions • Service discovery that spans VMs and containers • Key/value store that works for with VM-hosted services Orchestration: No Clean Slate
  • 27. Orchestration 26 • Haproxy • Host-local load balancer. • Consul • Service Discovery • Key-Value Store • Consul-Template haproxy A smtp syslog consul B C D Sidecar B
  • 28. Orchestration: HAProxy 27 • Acts as host-level balancer between boundry balancers and containers. • Allows for enforcement of an container-level maximum connections allowed to a given service • Dynamically creates or destroys app listener pools with upstream hosts (containers) using service discovery/consul + consul-template.
  • 29. Orchestration: Consul 28 • Service Discovery • Registers service offering along with randomly assigned local host port map • Key-Value Store • Universal port mapping • Application configuration (“inputs”) information • Audit trail • Consul-template • Consul + HAProxy = Win
  • 31. Monitoring & alerting 30 • Application specific monitoring for services in containers • Deployment information in consul key-value • Collectd + docker exec • Application specific alerts for services in containers • Alert definations stored in consul key-value • Creation and destruction calls to add to vm at container runtime # alert stored as json hash and into kv { “deployment”: { “alerts”: { "container - High Activity Delay": { "name": "container - High Activity Delay", "description": "This graph represents the delay before an activity completing a request", "file": "cwf_stats/gauge-median_activity_delay", "variable": "value", "condition": ">=", "threshold": "60", "duration": 10, "escalation_name": "critical" }, …
  • 33. Increased host density 32 • Old model was 1 properly-sized vm to 1 container. • At the end of the day, bringing up a new service still meant… launching a new instance. • New model is 1 properly-sized vm to many “good neighbor” containers. • Have some excess capacity due to your usage patterns on a host/set of hosts? Add that new service right on in! haproxy A smtp syslog consul B C D Sidecar B
  • 35. Sea of Containers 34 VM VM VM A A A A A A C C B B B B VM VM VM A A A C C A A A C C B B B B B Container Management B • N(×M) containers • 0..N VMs • Elastic mesh network • Declarative everything • Resource scheduling A A
  • 36. ECS Kubernetes Rancher Swarm Docker CLI X X X Orchestration API, compose API compose compose Constraints replication placement placement Shared Networking layer-3 overlay (IPSec) overlay (VXLAN) Shared Storage X X D.I.Y. Load Balancer X X X D.I.Y. Self-Healing replace replace restart restart Portability low medium medium high Overview of Solutions
  • 37. • Using Docker and RightScale • www.rightscale.com/docker Q&A 36