The journey to container adoption in enterprise

Igor Moochnick
Igor MoochnickGroup Architect (Director, CTO staff), Enterprise DevOps & Cloud Platforms
the journey to container
adoption in Enterprise
Personal observations by
Igor Moochnick
Running Docker,
Mesos and more in
production
The journey to container adoption in enterprise
Where do I come from?
●
Monolithic architecture
●
Local dependencies
●
Everything in one place
●
Static Infrastructure
●
Predictable operations
●
Known Change
●
Scheduled downtime
●
A lot of Change control
and coordination – MR,
MC
●
Waiting for approvals
Paradigm shits for Speed
●
Requirements
●
Correctness
●
Stability
●
Waterfall
●
Monolith/3-tier
●
Market demand
●
Customer's delight
●
Speed
●
Agile/Lean
●
SOA/Services
●
What's in it for us?
●
Will it help?
●
Is it a hype?
●
Static vs. Cloud
●
Virtualization vs.
Containers
●
Private vs. public
Docker?
●
Gradual adoption
of virtualization over
5 years
●
Explosion adoption
of containers over 2
years
Virtualization
OpenStack
Docker
Interest over time (by Google Analytics)
●
Starting slow
●
Getting used to
●
Find limitations
●
Isolation of the builds
●
Slow?
●
Container hosts
●
Network vs. Storage
The journey to container adoption in enterprise
Paradigm shift to MicroServices
●
Loosely coupled service oriented architecture with
bounded contexts
From Adrian Cockroft (ex Netflix Chief Architect)
What is an application?
●
A single container
– Putting multiple processes into a single container simplifies the deployment
– Breaks Docker best-practices model
– monit, supervisord, runsvdir, runIt
●
A composition of related containers
– Pod (Kubernetes)
– Task (Amazon AWS ECS – Elastic Container Service)
– Separation of operational concerns
– Not all frameworks understand the container composition
●
A graph of dependent containers
Immutable
Artifacts
●
Configuration management doesn't guarantee
immutability
●
Cumulative change/Drift vs. refresh
●
Version everything!
●
Turn your release process into an artifact!
Pipeline Builder http://bit.ly/1Eoz7WV
Release Process / Pipeline
1. A developer commits new code to a Repo
2. A build is triggered and creates an app artifact and
pushes it into the artifact repository with metadata:
1. Artifact has a hard version
2. Declares its contracts and contract versions
3. List of dependencies and their versions (Bill-of-materials) attached
3. Builds a Docker images and pushes it to the Docker
registry
1. Inherits from official base image approved by InfoSec and Systems teams
2. Has exactly the same tag as the version of the app artifact – creates correlations
1:1 with the source
4. Deployment ...
Release Process Challenges
●
Pick Container Registry:
– Your own
– DockerHub
– Artifactory
●
Registry management is important:
– Disk space, Heavy images
– Tracking of what's in use
– Decommissioning and pruning of the artifacts
– Availability
– Auditing
– Permissions
Deployment
●
Prepare Docker host (configuration management)
– Fry and not Bake
●
Pull Docker container
– Beware of growing size
– Pre-warm the host with the base image or a previous version
●
Start application
– Single container – easy
– Composition of containers is a challenge (Fig? Your own? ...)
– What configuration (env vars, partitions, etc...) is needed?
●
External HIERARCHICAL config/settings management is the key (Consul,
Zookeeper, Hiera)
– Passing secrets into the containers – think carefully!
●
Secret management is important (Consul, EtcD, ...)
●
Versions
●
Composition
●
Ownership
management
●
Zombie containers
●
Disappearing containers
Container Sprawl
Testing Considerations
●
Not much different from Virtualized payload
●
Spin up sandbox environment
●
Test against API, Mocks, Fakes, Pact
●
Go live?
– Use Blue/Green deployment
●
Pressure testing?
– Simpler and cheaper to do it in production
– Isolate traffic
– Gradually add load to the point of failure
– Monitor and measure
Environment Management
●
Dev/QA/Prod/etc...
environments parity
●
Local dev machine vs.
Cloud deployment
BigRig: http://bit.ly/1Hnrq5w
The journey to container adoption in enterprise
Lots of Microservices
http://accordance.github.io/
Change Management
●
Accordance tracks dependencies & ownership
http://accordance.github.io/
Dependency Management
Service Discovery
●
No built-in SDN yet, just simple linking
●
Where my dependencies?
– Eureka
– EtcD
– Consul
●
Need to manage state of the App
– Starting
– Running
●
When do you know that the app is healthy and running?
●
Healtchecks
●
RunScope - tests contracts and validates the payload
– Stopping
– Dead
– Or check the state from the LB – requires extra code
Am I alive?
●
When the service is ready to
receive traffic?
●
How do you know if your service
is alive? Or still alive?
●
When the service is actually can start accessing the
linked dependencies/volumes?
●
Introduce delayed initialization or retries
●
Make your orchestration smarter to recognize the
composition time
●
Stagger the start and introduce jitter into the system
Monitoring / Alerting
●
Adds another layer to monitor
●
Monitor both host and the
containers
●
Rate of change is drastically
different
●
Location, Names, Versions – everything in motion
●
Mutiple running versions at the same time
●
Multiple locations, regions, zones, DC, HA, etc...
●
Tools start to recognize Docker – DataDog, Librato, NewRelic,
…
●
Composite SLA metrics
Reasoning about failure
●
Tools assume containment
hierarchy
●
Most can't reason about
the relationship
●
Your apps spanning
across multiple containers
and hosts
●
Ex: Machine component
(disk?) failure will affect all
instances, VMs, Containers
and Apps
Region
Zone/DC
Environment
Machine
VM/Instance
Container
Process
Process
Linked
Container
Volume
Storage
Failure Detection, Cleanup
●
When to clean up the containers?
●
What the container failure mean?
●
How to deal with the partial failure of the app
dependencies or linked containers
●
Volume containers filling up the host storage – beware!
●
How to decommission / tear down:
– What?
– In what order?
– How to communicate with the Monitoring/Alerting
– Notify Change Management system
Container storage
●
Stateful containers are hard for the moment
●
Volumes disappear if the Docker host dies –
especially on the clouds: AWS, OpenStack, etc...
●
Use host mounts, but don't forget where is your stuff
and when to clean it
●
Interesting: volume relocation by Flocker
Log Management
●
Eagerly move logs out – containers are short lived
●
Beware of sheer volume of logs – be smart about what and when
you ship
●
Can't truncate or rotate container STDOUT and STDERR
●
Write to volumes
●
Log rotation – volume rotation?
●
Log analysis
●
Log monitoring & alerting
●
Tools examples:
– Scribe, LogStash
– FluentD
– Splunk (if you can afford it)
The journey to container adoption in enterprise
Mesos
●
Cluster management, provides efficient, fine-
grained resource sharing and isolation across
distributed applications, or frameworks
●
Distributed resource broker
●
Since 2012 runs in Twitter in Production
●
In July 2013 became top-level Apache project
Mesos Ecosystem
●
Marathon
●
Chronos
●
Singularity (HubSpot)
– Monitoring: queues growing, failure rates, health checking
●
[Apache] Aurora (Twitter)
– Working rolling upgrades
– Service health--checks
– Notifications/service ownership/quotas
●
Note (can't wait): Mantis (Netflix)
– Distributed scheduler (Fenzo) + predictive auto-scaling (Scryer)
– Resource optimization
– Auto-scaling micro-service graph
Docker Cluster
Management
Missing Mesos features
●
AWS Multi-region?
●
Sticky locations?
●
Persistent volumes?
●
No Pods support (multi-container apps)
●
No REST Api to schedule jobs
●
No built-in clean-up
●
Tricky to write frameworks (but getting easier)
●
A lot of work to integrate with the
monitoring/alerting/logging systems
The journey to container adoption in enterprise
What's next?
●
Kubernetes
– What will be the solution for SDN?
– Container dependencies discovery
●
Lambda architecture
– What's an on-prem alternative?
– How do we test apps?
– What is an app?
– Should we just stop using apps concepts and move to stream processing?
Work in progress
●
Failures tracking
– Correlation does not imply causation (from Wikipedia)
– Derivatives and predictive monitoring
– Machine learning
Data, Request &
Control Flow
Salp (inspired by Dapper)
Credits ...
●
Who Moved My Cheese? Movie by Dr. Spencer Johnson
●
Apache Mesos at Twitter (Texas LinuxFest 2014)
●
Containers at Hong Kong commercial port
●
Yes, prime minister
Thank you! Questions?
@igor_moochnick
igor@igorshare.com
http://r44e.wordpress.com/
1 of 42

Recommended

Continuous delivery workflow with Docker by
Continuous delivery workflow with DockerContinuous delivery workflow with Docker
Continuous delivery workflow with DockerIgor Moochnick
1.4K views28 slides
Atomic CLI scan by
Atomic CLI scanAtomic CLI scan
Atomic CLI scanLalatendu Mohanty
4.2K views19 slides
Container Orchestration from Theory to Practice by
Container Orchestration from Theory to PracticeContainer Orchestration from Theory to Practice
Container Orchestration from Theory to PracticeDocker, Inc.
1.6K views73 slides
Docker and Go: why did we decide to write Docker in Go? by
Docker and Go: why did we decide to write Docker in Go?Docker and Go: why did we decide to write Docker in Go?
Docker and Go: why did we decide to write Docker in Go?Jérôme Petazzoni
187.5K views40 slides
Cgroups, namespaces and beyond: what are containers made from? by
Cgroups, namespaces and beyond: what are containers made from?Cgroups, namespaces and beyond: what are containers made from?
Cgroups, namespaces and beyond: what are containers made from?Docker, Inc.
11.3K views55 slides
Docker Architecture (v1.3) by
Docker Architecture (v1.3)Docker Architecture (v1.3)
Docker Architecture (v1.3)rajdeep
22.3K views26 slides

More Related Content

What's hot

container crash course by
container crash coursecontainer crash course
container crash courseAndrew Shafer
2.7K views64 slides
Securing Applications and Pipelines on a Container Platform by
Securing Applications and Pipelines on a Container PlatformSecuring Applications and Pipelines on a Container Platform
Securing Applications and Pipelines on a Container PlatformAll Things Open
182 views58 slides
Docker and the Linux Kernel by
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux KernelDocker, Inc.
16.7K views22 slides
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more by
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Open
254 views106 slides
OpenVZ, Virtuozzo and Docker by
OpenVZ, Virtuozzo and DockerOpenVZ, Virtuozzo and Docker
OpenVZ, Virtuozzo and DockerKirill Kolyshkin
5.6K views32 slides
Fluentd and docker monitoring by
Fluentd and docker monitoringFluentd and docker monitoring
Fluentd and docker monitoringVinay Krishna
5.7K views45 slides

What's hot(20)

container crash course by Andrew Shafer
container crash coursecontainer crash course
container crash course
Andrew Shafer2.7K views
Securing Applications and Pipelines on a Container Platform by All Things Open
Securing Applications and Pipelines on a Container PlatformSecuring Applications and Pipelines on a Container Platform
Securing Applications and Pipelines on a Container Platform
All Things Open182 views
Docker and the Linux Kernel by Docker, Inc.
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
Docker, Inc.16.7K views
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more by All Things Open
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and moreAll Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Containers - Docker, Kubernetes, Helm, Istio, GitOps and more
All Things Open254 views
Fluentd and docker monitoring by Vinay Krishna
Fluentd and docker monitoringFluentd and docker monitoring
Fluentd and docker monitoring
Vinay Krishna5.7K views
Docker for the new Era: Introducing Docker,its components and tools by Ramit Surana
Docker for the new Era: Introducing Docker,its components and toolsDocker for the new Era: Introducing Docker,its components and tools
Docker for the new Era: Introducing Docker,its components and tools
Ramit Surana1.7K views
Containers and Cloud: From LXC to Docker to Kubernetes by Shreyas MM
Containers and Cloud: From LXC to Docker to KubernetesContainers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to Kubernetes
Shreyas MM3.7K views
Leveraging the Power of containerd Events - Evan Hazlett by Docker, Inc.
Leveraging the Power of containerd Events - Evan HazlettLeveraging the Power of containerd Events - Evan Hazlett
Leveraging the Power of containerd Events - Evan Hazlett
Docker, Inc.998 views
Mobycraft:Docker in 8-bit (Meetup at Docker HQ 4/7) by Docker, Inc.
Mobycraft:Docker in 8-bit (Meetup at Docker HQ 4/7)Mobycraft:Docker in 8-bit (Meetup at Docker HQ 4/7)
Mobycraft:Docker in 8-bit (Meetup at Docker HQ 4/7)
Docker, Inc.1.4K views
Docker architecture (version modified) by Amir Arsalan
Docker architecture (version modified)Docker architecture (version modified)
Docker architecture (version modified)
Amir Arsalan546 views
virtualization-vs-containerization-paas by rajdeep
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
rajdeep7.5K views
Docker 101 - High level introduction to docker by Dr Ganesh Iyer
Docker 101 - High level introduction to dockerDocker 101 - High level introduction to docker
Docker 101 - High level introduction to docker
Dr Ganesh Iyer920 views
Docker HK Meetup - 201707 by Clarence Ho
Docker HK Meetup - 201707Docker HK Meetup - 201707
Docker HK Meetup - 201707
Clarence Ho995 views
Docker 101 - Nov 2016 by Docker, Inc.
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
Docker, Inc.7.2K views

Viewers also liked

OpenStack Journey in Tieto Elastic Cloud by
OpenStack Journey in Tieto Elastic CloudOpenStack Journey in Tieto Elastic Cloud
OpenStack Journey in Tieto Elastic CloudJakub Pavlik
617 views29 slides
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit... by
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...Pooyan Jamshidi
8.5K views37 slides
Docker, the Future of DevOps by
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
9.6K views98 slides
CI/CD with Docker, DC/OS, and Jenkins by
CI/CD with Docker, DC/OS, and JenkinsCI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and JenkinsKarl Isenberg
4.3K views51 slides
Cloud Native in the Enterprise: Real-World Data on Container and Microservice... by
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Donnie Berkholz
3.5K views39 slides
Machine Learning meets DevOps by
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOpsPooyan Jamshidi
1.5K views26 slides

Viewers also liked(11)

OpenStack Journey in Tieto Elastic Cloud by Jakub Pavlik
OpenStack Journey in Tieto Elastic CloudOpenStack Journey in Tieto Elastic Cloud
OpenStack Journey in Tieto Elastic Cloud
Jakub Pavlik617 views
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit... by Pooyan Jamshidi
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...
Microservices Architecture Enables DevOps: Migration to a Cloud-Native Archit...
Pooyan Jamshidi8.5K views
Docker, the Future of DevOps by andersjanmyr
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
andersjanmyr9.6K views
CI/CD with Docker, DC/OS, and Jenkins by Karl Isenberg
CI/CD with Docker, DC/OS, and JenkinsCI/CD with Docker, DC/OS, and Jenkins
CI/CD with Docker, DC/OS, and Jenkins
Karl Isenberg4.3K views
Cloud Native in the Enterprise: Real-World Data on Container and Microservice... by Donnie Berkholz
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Donnie Berkholz3.5K views
Machine Learning meets DevOps by Pooyan Jamshidi
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOps
Pooyan Jamshidi1.5K views
Microservices = Death of the Enterprise Service Bus (ESB)? by Kai Wähner
Microservices = Death of the Enterprise Service Bus (ESB)?Microservices = Death of the Enterprise Service Bus (ESB)?
Microservices = Death of the Enterprise Service Bus (ESB)?
Kai Wähner35.5K views
Achieving CI/CD with Kubernetes by Ramit Surana
Achieving CI/CD with KubernetesAchieving CI/CD with Kubernetes
Achieving CI/CD with Kubernetes
Ramit Surana48.8K views
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd... by Kai Wähner
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ähner63.3K views
Docker勉強会2017 実践編 スライド by Shiojiri Ohhara
Docker勉強会2017 実践編 スライドDocker勉強会2017 実践編 スライド
Docker勉強会2017 実践編 スライド
Shiojiri Ohhara10.9K views
Continuous Integration with Docker on AWS by Andrew Heifetz
Continuous Integration with Docker on AWSContinuous Integration with Docker on AWS
Continuous Integration with Docker on AWS
Andrew Heifetz8.9K views

Similar to The journey to container adoption in enterprise

Containers: from development to production at DevNation 2015 by
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Jérôme Petazzoni
6.4K views47 slides
Container Orchestration @Docker Meetup Hamburg by
Container Orchestration @Docker Meetup HamburgContainer Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup HamburgTimo Derstappen
3.4K views31 slides
Open shift and docker - october,2014 by
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
10K views72 slides
Docker-N-Beyond by
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyondsantosh007
541 views49 slides
Introduction to containers, k8s, Microservices & Cloud Native by
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeTerry Wang
142 views19 slides
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D... by
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...DevOpsDays Tel Aviv
635 views28 slides

Similar to The journey to container adoption in enterprise(20)

Containers: from development to production at DevNation 2015 by Jérôme Petazzoni
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
Jérôme Petazzoni6.4K views
Container Orchestration @Docker Meetup Hamburg by Timo Derstappen
Container Orchestration @Docker Meetup HamburgContainer Orchestration @Docker Meetup Hamburg
Container Orchestration @Docker Meetup Hamburg
Timo Derstappen3.4K views
Open shift and docker - october,2014 by Hojoong Kim
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
Hojoong Kim10K views
Docker-N-Beyond by santosh007
Docker-N-BeyondDocker-N-Beyond
Docker-N-Beyond
santosh007541 views
Introduction to containers, k8s, Microservices & Cloud Native by Terry Wang
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud Native
Terry Wang142 views
Developing the Stratoscale System at Scale - Muli Ben-Yehuda, Stratoscale - D... by DevOpsDays Tel Aviv
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...
Not my problem - Delegating responsibility to infrastructure by Yshay Yaacobi
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
Yshay Yaacobi563 views
Multi-Tenant SOA Middleware for Cloud Computing by WSO2
Multi-Tenant SOA Middleware for Cloud ComputingMulti-Tenant SOA Middleware for Cloud Computing
Multi-Tenant SOA Middleware for Cloud Computing
WSO22K views
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla... by Docker-Hanoi
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
Docker-Hanoi865 views
Solving k8s persistent workloads using k8s DevOps style by MayaData
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
MayaData195 views
Microservice Workshop Hands On by Ram G Suri
Microservice Workshop Hands On Microservice Workshop Hands On
Microservice Workshop Hands On
Ram G Suri58 views
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @... by Demi Ben-Ari
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari413 views
Instant developer onboarding with self contained repositories by Yshay Yaacobi
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
Yshay Yaacobi157 views
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka by Mario Ishara Fernando
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons by C4Media
Disenchantment: Netflix Titus, Its Feisty Team, and DaemonsDisenchantment: Netflix Titus, Its Feisty Team, and Daemons
Disenchantment: Netflix Titus, Its Feisty Team, and Daemons
C4Media378 views
Introduction to OpenStack Storage by NetApp
Introduction to OpenStack StorageIntroduction to OpenStack Storage
Introduction to OpenStack Storage
NetApp373 views
Openstack devops challenges by openstackindia
Openstack devops challenges Openstack devops challenges
Openstack devops challenges
openstackindia789 views
Container World 2018 by aspyker
Container World 2018Container World 2018
Container World 2018
aspyker4.8K views
Containers - Portable, repeatable user-oriented application delivery. Build, ... by Walid Shaari
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Walid Shaari924 views

More from Igor Moochnick

Being a generalist and being great at what you do by
Being a generalist and being great at what you doBeing a generalist and being great at what you do
Being a generalist and being great at what you doIgor Moochnick
344 views18 slides
Dev ops overview (brief) by
Dev ops overview (brief)Dev ops overview (brief)
Dev ops overview (brief)Igor Moochnick
792 views37 slides
Dev ops cd tool chains by
Dev ops cd tool chainsDev ops cd tool chains
Dev ops cd tool chainsIgor Moochnick
1.1K views31 slides
Orchestration musings by
Orchestration musingsOrchestration musings
Orchestration musingsIgor Moochnick
430 views8 slides
Delivery pipelines by
Delivery pipelinesDelivery pipelines
Delivery pipelinesIgor Moochnick
501 views10 slides
Tips for building responsive cloud applications by
Tips for building responsive cloud applicationsTips for building responsive cloud applications
Tips for building responsive cloud applicationsIgor Moochnick
3.7K views10 slides

More from Igor Moochnick(20)

Being a generalist and being great at what you do by Igor Moochnick
Being a generalist and being great at what you doBeing a generalist and being great at what you do
Being a generalist and being great at what you do
Igor Moochnick344 views
Tips for building responsive cloud applications by Igor Moochnick
Tips for building responsive cloud applicationsTips for building responsive cloud applications
Tips for building responsive cloud applications
Igor Moochnick3.7K views
Building complex single page application should be as enjoyable as visit to a... by Igor Moochnick
Building complex single page application should be as enjoyable as visit to a...Building complex single page application should be as enjoyable as visit to a...
Building complex single page application should be as enjoyable as visit to a...
Igor Moochnick3.8K views
Amazon 101 - building composite responsive apps - small by Igor Moochnick
Amazon 101 - building composite responsive apps - smallAmazon 101 - building composite responsive apps - small
Amazon 101 - building composite responsive apps - small
Igor Moochnick571 views
Ccr - Concurrency and Coordination Runtime by Igor Moochnick
Ccr - Concurrency and Coordination RuntimeCcr - Concurrency and Coordination Runtime
Ccr - Concurrency and Coordination Runtime
Igor Moochnick1.9K views
Azure ServiceBus Queues and Topics by Igor Moochnick
Azure ServiceBus Queues and TopicsAzure ServiceBus Queues and Topics
Azure ServiceBus Queues and Topics
Igor Moochnick1.2K views
Arch factory - Agile Design: Best Practices by Igor Moochnick
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
Igor Moochnick1K views
Best practices for agile design by Igor Moochnick
Best practices for agile designBest practices for agile design
Best practices for agile design
Igor Moochnick2.6K views
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7 by Igor Moochnick
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Igor Moochnick3.4K views
Building lean products with distributed agile teams by Igor Moochnick
Building lean products with distributed agile teamsBuilding lean products with distributed agile teams
Building lean products with distributed agile teams
Igor Moochnick680 views
Building Gwt Clients For Cloud Apps.Pptx by Igor Moochnick
Building Gwt Clients For Cloud Apps.PptxBuilding Gwt Clients For Cloud Apps.Pptx
Building Gwt Clients For Cloud Apps.Pptx
Igor Moochnick452 views
Application Patters For The Cloud by Igor Moochnick
Application Patters For The CloudApplication Patters For The Cloud
Application Patters For The Cloud
Igor Moochnick420 views

Recently uploaded

ict act 1.pptx by
ict act 1.pptxict act 1.pptx
ict act 1.pptxsanjaniarun08
12 views17 slides
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea... by
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Safe Software
391 views59 slides
LAVADORA ROLO.docx by
LAVADORA ROLO.docxLAVADORA ROLO.docx
LAVADORA ROLO.docxSamuelRamirez83524
7 views1 slide
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... by
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...HCLSoftware
6 views2 slides
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Donato Onofri
643 views34 slides
Best Mics For Your Live Streaming by
Best Mics For Your Live StreamingBest Mics For Your Live Streaming
Best Mics For Your Live Streamingontheflystream
6 views6 slides

Recently uploaded(20)

Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea... by Safe Software
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Geospatial Synergy: Amplifying Efficiency with FME & Esri ft. Peak Guest Spea...
Safe Software391 views
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut... by HCLSoftware
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
Elevate your SAP landscape's efficiency and performance with HCL Workload Aut...
HCLSoftware6 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... by Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri643 views
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023 by Icinga
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Icinga36 views
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove... by Deltares
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
DSD-INT 2023 HydroMT model building and river-coast coupling in Python - Bove...
Deltares15 views
Software evolution understanding: Automatic extraction of software identifier... by Ra'Fat Al-Msie'deen
Software evolution understanding: Automatic extraction of software identifier...Software evolution understanding: Automatic extraction of software identifier...
Software evolution understanding: Automatic extraction of software identifier...
Les nouveautés produit Neo4j by Neo4j
 Les nouveautés produit Neo4j Les nouveautés produit Neo4j
Les nouveautés produit Neo4j
Neo4j27 views
How to Make the Most of Regression and Unit Testing.pdf by Abhay Kumar
How to Make the Most of Regression and Unit Testing.pdfHow to Make the Most of Regression and Unit Testing.pdf
How to Make the Most of Regression and Unit Testing.pdf
Abhay Kumar10 views
How to Install and Activate Email-Researcher by eGrabber
How to Install and Activate Email-ResearcherHow to Install and Activate Email-Researcher
How to Install and Activate Email-Researcher
eGrabber19 views
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... by Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller31 views
What Can Employee Monitoring Software Do?​ by wAnywhere
What Can Employee Monitoring Software Do?​What Can Employee Monitoring Software Do?​
What Can Employee Monitoring Software Do?​
wAnywhere18 views
A first look at MariaDB 11.x features and ideas on how to use them by Federico Razzoli
A first look at MariaDB 11.x features and ideas on how to use themA first look at MariaDB 11.x features and ideas on how to use them
A first look at MariaDB 11.x features and ideas on how to use them
Federico Razzoli44 views
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge... by Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
DSD-INT 2023 Delft3D FM Suite 2024.01 2D3D - New features + Improvements - Ge...
Deltares16 views
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM... by Deltares
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
DSD-INT 2023 Next-Generation Flood Inundation Mapping for Taiwan - Delft3D FM...
Deltares7 views

The journey to container adoption in enterprise

  • 1. the journey to container adoption in Enterprise Personal observations by Igor Moochnick Running Docker, Mesos and more in production
  • 3. Where do I come from?
  • 6. ● A lot of Change control and coordination – MR, MC ● Waiting for approvals
  • 7. Paradigm shits for Speed ● Requirements ● Correctness ● Stability ● Waterfall ● Monolith/3-tier ● Market demand ● Customer's delight ● Speed ● Agile/Lean ● SOA/Services
  • 8. ● What's in it for us? ● Will it help? ● Is it a hype? ● Static vs. Cloud ● Virtualization vs. Containers ● Private vs. public Docker?
  • 9. ● Gradual adoption of virtualization over 5 years ● Explosion adoption of containers over 2 years Virtualization OpenStack Docker Interest over time (by Google Analytics)
  • 10. ● Starting slow ● Getting used to ● Find limitations ● Isolation of the builds ● Slow? ● Container hosts ● Network vs. Storage
  • 12. Paradigm shift to MicroServices ● Loosely coupled service oriented architecture with bounded contexts From Adrian Cockroft (ex Netflix Chief Architect)
  • 13. What is an application? ● A single container – Putting multiple processes into a single container simplifies the deployment – Breaks Docker best-practices model – monit, supervisord, runsvdir, runIt ● A composition of related containers – Pod (Kubernetes) – Task (Amazon AWS ECS – Elastic Container Service) – Separation of operational concerns – Not all frameworks understand the container composition ● A graph of dependent containers
  • 14. Immutable Artifacts ● Configuration management doesn't guarantee immutability ● Cumulative change/Drift vs. refresh ● Version everything! ● Turn your release process into an artifact! Pipeline Builder http://bit.ly/1Eoz7WV
  • 15. Release Process / Pipeline 1. A developer commits new code to a Repo 2. A build is triggered and creates an app artifact and pushes it into the artifact repository with metadata: 1. Artifact has a hard version 2. Declares its contracts and contract versions 3. List of dependencies and their versions (Bill-of-materials) attached 3. Builds a Docker images and pushes it to the Docker registry 1. Inherits from official base image approved by InfoSec and Systems teams 2. Has exactly the same tag as the version of the app artifact – creates correlations 1:1 with the source 4. Deployment ...
  • 16. Release Process Challenges ● Pick Container Registry: – Your own – DockerHub – Artifactory ● Registry management is important: – Disk space, Heavy images – Tracking of what's in use – Decommissioning and pruning of the artifacts – Availability – Auditing – Permissions
  • 17. Deployment ● Prepare Docker host (configuration management) – Fry and not Bake ● Pull Docker container – Beware of growing size – Pre-warm the host with the base image or a previous version ● Start application – Single container – easy – Composition of containers is a challenge (Fig? Your own? ...) – What configuration (env vars, partitions, etc...) is needed? ● External HIERARCHICAL config/settings management is the key (Consul, Zookeeper, Hiera) – Passing secrets into the containers – think carefully! ● Secret management is important (Consul, EtcD, ...)
  • 19. Testing Considerations ● Not much different from Virtualized payload ● Spin up sandbox environment ● Test against API, Mocks, Fakes, Pact ● Go live? – Use Blue/Green deployment ● Pressure testing? – Simpler and cheaper to do it in production – Isolate traffic – Gradually add load to the point of failure – Monitor and measure
  • 20. Environment Management ● Dev/QA/Prod/etc... environments parity ● Local dev machine vs. Cloud deployment BigRig: http://bit.ly/1Hnrq5w
  • 24. ● Accordance tracks dependencies & ownership http://accordance.github.io/ Dependency Management
  • 25. Service Discovery ● No built-in SDN yet, just simple linking ● Where my dependencies? – Eureka – EtcD – Consul ● Need to manage state of the App – Starting – Running ● When do you know that the app is healthy and running? ● Healtchecks ● RunScope - tests contracts and validates the payload – Stopping – Dead – Or check the state from the LB – requires extra code
  • 26. Am I alive? ● When the service is ready to receive traffic? ● How do you know if your service is alive? Or still alive? ● When the service is actually can start accessing the linked dependencies/volumes? ● Introduce delayed initialization or retries ● Make your orchestration smarter to recognize the composition time ● Stagger the start and introduce jitter into the system
  • 27. Monitoring / Alerting ● Adds another layer to monitor ● Monitor both host and the containers ● Rate of change is drastically different ● Location, Names, Versions – everything in motion ● Mutiple running versions at the same time ● Multiple locations, regions, zones, DC, HA, etc... ● Tools start to recognize Docker – DataDog, Librato, NewRelic, … ● Composite SLA metrics
  • 28. Reasoning about failure ● Tools assume containment hierarchy ● Most can't reason about the relationship ● Your apps spanning across multiple containers and hosts ● Ex: Machine component (disk?) failure will affect all instances, VMs, Containers and Apps Region Zone/DC Environment Machine VM/Instance Container Process Process Linked Container Volume Storage
  • 29. Failure Detection, Cleanup ● When to clean up the containers? ● What the container failure mean? ● How to deal with the partial failure of the app dependencies or linked containers ● Volume containers filling up the host storage – beware! ● How to decommission / tear down: – What? – In what order? – How to communicate with the Monitoring/Alerting – Notify Change Management system
  • 30. Container storage ● Stateful containers are hard for the moment ● Volumes disappear if the Docker host dies – especially on the clouds: AWS, OpenStack, etc... ● Use host mounts, but don't forget where is your stuff and when to clean it ● Interesting: volume relocation by Flocker
  • 31. Log Management ● Eagerly move logs out – containers are short lived ● Beware of sheer volume of logs – be smart about what and when you ship ● Can't truncate or rotate container STDOUT and STDERR ● Write to volumes ● Log rotation – volume rotation? ● Log analysis ● Log monitoring & alerting ● Tools examples: – Scribe, LogStash – FluentD – Splunk (if you can afford it)
  • 33. Mesos ● Cluster management, provides efficient, fine- grained resource sharing and isolation across distributed applications, or frameworks ● Distributed resource broker ● Since 2012 runs in Twitter in Production ● In July 2013 became top-level Apache project
  • 34. Mesos Ecosystem ● Marathon ● Chronos ● Singularity (HubSpot) – Monitoring: queues growing, failure rates, health checking ● [Apache] Aurora (Twitter) – Working rolling upgrades – Service health--checks – Notifications/service ownership/quotas ● Note (can't wait): Mantis (Netflix) – Distributed scheduler (Fenzo) + predictive auto-scaling (Scryer) – Resource optimization – Auto-scaling micro-service graph
  • 36. Missing Mesos features ● AWS Multi-region? ● Sticky locations? ● Persistent volumes? ● No Pods support (multi-container apps) ● No REST Api to schedule jobs ● No built-in clean-up ● Tricky to write frameworks (but getting easier) ● A lot of work to integrate with the monitoring/alerting/logging systems
  • 38. What's next? ● Kubernetes – What will be the solution for SDN? – Container dependencies discovery ● Lambda architecture – What's an on-prem alternative? – How do we test apps? – What is an app? – Should we just stop using apps concepts and move to stream processing?
  • 39. Work in progress ● Failures tracking – Correlation does not imply causation (from Wikipedia) – Derivatives and predictive monitoring – Machine learning
  • 40. Data, Request & Control Flow Salp (inspired by Dapper)
  • 41. Credits ... ● Who Moved My Cheese? Movie by Dr. Spencer Johnson ● Apache Mesos at Twitter (Texas LinuxFest 2014) ● Containers at Hong Kong commercial port ● Yes, prime minister

Editor's Notes

  1. http://cecd04df9605b630ca29-1241d3348dac2d27e674997029412b55.r13.cf2.rackcdn.com/ZyLoG9yJ65_1399449880339.jpg?rasterSignature=0b94c71b5fc3904e831ae681cfcdfca8&theme=Five%20Seven%20Five&imageFilter=false <number>
  2. <number>
  3. Answer these questions: Did anything change in the environment Audit trail Environments status
  4. Starting Docker container is not instantaneous It takes the app time to stabilize Challenge for linking containers
  5. Docker adds another level of containment
  6. Applications can span across different zones/DC Ex: Cassandra, Hadoop, DB Replica, etc...
  7. Cleaning junk from host – need to keep “warm” images
  8. <number>