Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Running stateful services in containers - ContainerDays Boston 2016

5,631 views

Published on

How to think of, manage and maintains stateful services in containers

Published in: Technology

Running stateful services in containers - ContainerDays Boston 2016

  1. 1. 1 community.emccode.com RUNNING STATEFUL SERVICES IN CONTAINERS JONAS ROSLAND, EMC {code} DEVELOPER ADVOCATE & COMMUNITY MANAGER
  2. 2. 2 community.emccode.com • How are Container Platforms managed? • Handling stateless apps and stateful services • Everything running in containers • Making the platforms understand data persistence AGENDA
  3. 3. 3 community.emccode.com • Clustered servers • Manual deployments • Redundancy, not necessarily high availability BACK IN THE OLD DAYS
  4. 4. 4 community.emccode.com • Infrastructure as a Service • Deploy virtual machines • Manual/half-automated way of deploying apps • Almost efficient THEN SOME TIME AGO
  5. 5. 5 community.emccode.com • Collection of compute resources • Spread out horizontally • Brings scale to your deployments NOW – CONTAINER PLATFORMS
  6. 6. 6 community.emccode.com Standard definitions
  7. 7. 7 community.emccode.com APPLICATIONS RUN IN CONTAINERS Code Code and requirements Container
  8. 8. 8 community.emccode.com • Manages all physical/virtual resources • Deploys and schedules apps • Handles hardware failures RESOURCE MANAGERS AND SCHEDULERS
  9. 9. 9 community.emccode.com SCHEDULING
  10. 10. 10 community.emccode.com PAAS SITS ON TOP OF SCHEDULERS
  11. 11. 11 community.emccode.com • Enables apps and infra to automatically find parts of each other • Keeps track of how to connect and use the application services SERVICE DISCOVERY
  12. 12. 12 community.emccode.com SERVICE DISCOVERY
  13. 13. 13 community.emccode.com You don’t have to rewrite your apps!
  14. 14. 14 community.emccode.com • Storing data (state) is a critical component of any application • Where they store this state defines their class – Connected database – In memory – Local disk APPLICATION STATE DIFFERENCES
  15. 15. 15 community.emccode.com • Store no critical data locally • Can be scaled as needed • Recovers quickly STATELESS APPLICATIONS
  16. 16. 16 community.emccode.com • Services that store state • Have usually been treated as HA apps • Can be scale-out or scale-up STATEFUL SERVICES
  17. 17. 17 community.emccode.com FROM oraclelinux:latest ENV PACKAGE_URL https://repo.mysql.com/yum/mysql-5.7-community/docker/x86_64/mysql-community-server-minimal-5.7.12- 1.el7.x86_64.rpm RUN rpmkeys --import http://repo.mysql.com/RPM-GPG-KEY-mysql && yum install -y $PACKAGE_URL && yum install -y libpwquality && rm -rf /var/cache/yum/* RUN mkdir /docker-entrypoint-initdb.d VOLUME /var/lib/mysql COPY docker-entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] EXPOSE 3306 33060 CMD ["mysqld"] MYSQL IN A CONTAINER
  18. 18. 18 community.emccode.com APPLICATIONS BUILT FROM SERVICES Front End or Non-Persistent Data Services (Persistent) Scale-Up Scale-Out Cassandra Postgres Redis CouchDB Elastic Search Hadoop MariaDB Mysql Nginx HAProxy MongoDB RabbitMQ Tomcat Memcached ScaleIO ECS ApacheRails Language Specific HTTP
  19. 19. 19 community.emccode.com • No! – Without proper storage mapped, the service will lose data – Data doesn’t travel with the service if it’s stored on local disk • Yes! – Automatically mapping modern storage backends delivered by EMC, AWS, GCE, OpenStack and others enables your data to be stored safely STATEFUL SERVICES IN CONTAINERS?
  20. 20. 20 community.emccode.com
  21. 21. 21 community.emccode.com • Have been mostly focused on stateless apps • Working hard on making stateful services part of their inventory • So how do you handle both types? CONTAINER PLATFORMS
  22. 22. 22 community.emccode.com • Data is stored outside the platform EXAMPLE 1
  23. 23. 23 community.emccode.com • Data is stored on the same platform EXAMPLE 2
  24. 24. 24 community.emccode.com Virtual Machine PERSISTENCE AND P3 Platform 2 Platform 3 High Availability Live Migration Highly Available Container Platform Lifecycle Management Container Platform Lifecycle Management
  25. 25. 26 community.emccode.com Making the platform understand storage
  26. 26. 27 community.emccode.com • When a container starts, we can map storage to it • For apps such as databases this is a necessity • When a container stops, the storage is unmounted and can be reused by another container HOW DOES STORAGE IN CONTAINERS WORK?
  27. 27. 28 community.emccode.com • Local storage locks the container’s data on one server • Using non-local storage gives us the possibility to move containers across servers • Having that possibility is crucial for HA environments WHY NOT USE LOCAL STORAGE?
  28. 28. 29 community.emccode.com LET’S START WITH THE BASICS GCE ? AWSEMC OpenStack
  29. 29. 30 community.emccode.com SAY HELLO TO MY LITTLE FRIEND – REX-RAY
  30. 30. 31 community.emccode.com NOW WE’RE GETTING SOMEWHERE GCEAWSEMC OpenStack
  31. 31. 32 community.emccode.com AND NOW IT’S GETTING INTERESTING GCEAWSEMC OpenStack Mesos Kubernetes
  32. 32. 33 community.emccode.com • Gives you the possibility to use any storage platform, and even multiple platforms at the same time • Always in sync with Docker’s development cycle • Integrated with Docker, Mesos and Kubernetes REX-RAY BENEFITS
  33. 33. 34© Copyright 2016 EMC Corporation. All rights reserved. @EMCcode @jonasrosland emccode.com community.emccode.com Questions?
  34. 34. 35© Copyright 2016 EMC Corporation. All rights reserved. 35© Copyright 2016 EMC Corporation. All rights reserved.

×