running stateful services in containers - containerdays boston 2016
TRANSCRIPT
![Page 1: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/1.jpg)
1community.emccode.com
RUNNING STATEFUL SERVICES IN CONTAINERSJONAS ROSLAND, EMC {code}DEVELOPER ADVOCATE & COMMUNITY MANAGER
![Page 2: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/2.jpg)
2community.emccode.com
• How are Container Platforms managed?• Handling stateless apps and stateful services• Everything running in containers• Making the platforms understand data persistence
AGENDA
![Page 3: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/3.jpg)
3community.emccode.com
• Clustered servers• Manual deployments• Redundancy, not necessarily high availability
BACK IN THE OLD DAYS
![Page 4: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/4.jpg)
4community.emccode.com
• Infrastructure as a Service• Deploy virtual machines• Manual/half-automated way of deploying apps• Almost efficient
THEN SOME TIME AGO
![Page 5: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/5.jpg)
5community.emccode.com
• Collection of compute resources• Spread out horizontally• Brings scale to your deployments
NOW – CONTAINER PLATFORMS
![Page 6: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/6.jpg)
6community.emccode.com
Standard definitions
![Page 7: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/7.jpg)
7community.emccode.com
APPLICATIONS RUN IN CONTAINERS
Code Code andrequirements Container
![Page 8: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/8.jpg)
8community.emccode.com
• Manages all physical/virtualresources• Deploys and schedules apps• Handles hardware failures
RESOURCE MANAGERS AND SCHEDULERS
![Page 9: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/9.jpg)
9community.emccode.com
SCHEDULING
![Page 10: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/10.jpg)
10community.emccode.com
PAAS SITS ON TOP OF SCHEDULERS
![Page 11: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/11.jpg)
11community.emccode.com
• Enables apps and infrato automatically findparts of each other• Keeps track of how to
connect and use theapplication services
SERVICE DISCOVERY
![Page 12: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/12.jpg)
12community.emccode.com
SERVICE DISCOVERY
Java App
2.3.4.5:8080 Where isJava App?2.3.4.5:8080
![Page 13: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/13.jpg)
13community.emccode.com
You don’t have torewrite your apps!
![Page 14: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/14.jpg)
14community.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
![Page 15: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/15.jpg)
15community.emccode.com
• Store no critical data locally• Can be scaled as needed• Recovers quickly
STATELESS APPLICATIONS
![Page 16: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/16.jpg)
16community.emccode.com
• Services that store state• Have usually been treated as HA apps• Can be scale-out or scale-up
STATEFUL SERVICES
![Page 17: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/17.jpg)
17community.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
![Page 18: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/18.jpg)
18community.emccode.com
APPLICATIONS BUILT FROM SERVICESFront End or Non-Persistent
Data Services (Persistent)
Scal
e-Up
Scale-Out
CassandraPostgresRedis CouchDB
Elastic SearchHadoop
MariaDB
Mysql
Nginx
HAProxy
MongoDB
RabbitMQTomcat
Memcached
ScaleIO ECS
ApacheRails
Language Specific HTTP
![Page 19: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/19.jpg)
19community.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 othersenables your data to be stored safely
STATEFUL SERVICES IN CONTAINERS?
![Page 20: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/20.jpg)
20community.emccode.com
![Page 21: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/21.jpg)
21community.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
![Page 22: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/22.jpg)
22community.emccode.com
• Data is stored outside the platform
EXAMPLE 1
![Page 23: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/23.jpg)
23community.emccode.com
• Data is stored on the same platform
EXAMPLE 2
![Page 24: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/24.jpg)
24community.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
![Page 25: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/25.jpg)
26community.emccode.com
Making the platformunderstand storage
![Page 26: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/26.jpg)
27community.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?
![Page 27: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/27.jpg)
28community.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?
![Page 28: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/28.jpg)
29community.emccode.com
LET’S START WITH THE BASICS
GCE
?
AWSEMC OpenStack
![Page 29: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/29.jpg)
30community.emccode.com
SAY HELLO TO MY LITTLE FRIEND – REX-RAY
![Page 30: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/30.jpg)
31community.emccode.com
NOW WE’RE GETTING SOMEWHERE
GCEAWSEMC OpenStack
![Page 31: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/31.jpg)
32community.emccode.com
AND NOW IT’S GETTING INTERESTING
GCEAWSEMC OpenStack
Mesos Kubernetes
![Page 32: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/32.jpg)
33community.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
![Page 33: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/33.jpg)
34© Copyright 2016 EMC Corporation. All rights reserved.
@EMCcode@jonasrosland
emccode.comcommunity.emccode.com
Questions?
![Page 34: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/34.jpg)
35© Copyright 2016 EMC Corporation. All rights reserved. 35© Copyright 2016 EMC Corporation. All rights reserved.
![Page 35: Running stateful services in containers - ContainerDays Boston 2016](https://reader035.vdocuments.site/reader035/viewer/2022070512/589aaeeb1a28abff4f8b4ce9/html5/thumbnails/35.jpg)