APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker Presented by: Steven Pousty OpenShift/Red Hat @TheSteve0 on Twitter, IRC, Instagram, Ingress, Skype, SmugMug, and Github
Jul 28, 2015
APPLICATIONS AND CONTAINERS AT SCALE:OpenShift + Kubernetes + Docker
Presented by:Steven Pousty
OpenShift/Red Hat@TheSteve0 on Twitter, IRC, Instagram, Ingress, Skype, SmugMug, and Github
Agenda
• Cover the tech• Show some demos• Wrap it up
Assumptions
• You have written web applications• You like things easy
Platform as a Service
Let’s Start From the Bottom
Containers
Defining Container
• Based on Linux containers (namespaces, control groups)
• Combines file system layers into a "Union File System"
• Includes all of the components necessary to run a process, store persistent data, or both
• Docker currently provides the best specification for portable applications
Containers vs. VMs
Containers: Pros and Cons
Pros:• Extreme application
portability• Very easy to create
and work with derivative images
• Fast boot on containers
Cons:• Host-centric solution;
not aware of anything else
• No higher-level provisioning
• No usage tracking / reporting
Wins
• Efficient resource usage• BYOB - bring your own bits• A standard way for people to make container
images• Huge ecosystem
Kubernetes
• "a system for managing containerised applications across multiple hosts"
• declarative model – make the world match the truth
• open source project by Google
Conceptspod: colocated group of Docker containers that share an IP and storage volumesservice: provides a single, stable name for set of pods and acts as basic load balancerreplication controller: manages the lifecycle of pods and ensures specified number are runninglabel: used to organise and select groups of objects
Wins
• Runtime and operational management of containers
• Manage related Docker containers as a unit• Container communication across hosts• Availability and scalability through automated
deployment and monitoring of pods and their replicas, across hosts
Division of Labor
• Kubernetes provides a container runtime• OpenShift provides the Application, DevOps,
and team environment
OpenShift Concepts
• application: one or more pods linked together by services; distinct, interconnected components
• config: collection of objects describing combination of pods, services, replication controllers, environment variables, and other components
• template: parameterised version of config for generalised reuse
• build config: object defining source code URI, authentication for change notifications (webhooks), and build type (source-to-image or docker-builder)
• deployment: image and settings for it: replication controller, trigger policies, and deployment strategy
DEMO
Wins
• Efficiently manage thousands of applications, auto-scaling components independently and updating them en masse
• Responsive, change-aware platform supports fault-tolerant, automated, and repeatable builds and deployments
• All the tech packaged up and made easier to use
Conclusion• We covered A LOT• For us, it's the Linux story again – huge community
through best upstreams - come build with us!• Your world as a sys admin or developer is looking bright • Use containers to have an agreed upon way to manage
server bits– We can automate some annoying things - i.e. dev env
creation or autoscaling– Template an entire application - infra and code – OpenShift packages all this technology into one nice package