APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
1. 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
9. 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
11. 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
12. Wins
• Efficient resource usage
• BYOB - bring your own bits
• A standard way for people to make container
images
• Huge ecosystem
14. Kubernetes
• "a system for managing containerised
applications across multiple hosts"
• declarative model – make the world match the
truth
• open source project by Google
16. Concepts
pod: colocated group of Docker
containers that share an IP and
storage volumes
service: provides a single, stable
name for set of pods and acts as
basic load balancer
replication controller: manages
the lifecycle of pods and
ensures specified number are
running
label: used to organise and
select groups of objects
17. 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
19. Division of Labor
• Kubernetes provides a container runtime
• OpenShift provides the Application, DevOps,
and team environment
20. 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
23. 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
24. 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