This document discusses container platforms and PaaS. It provides context on containers and supporting technologies like Docker. It describes how containers are limited when confined to a single host, and how schedulers can distribute containers across multiple hosts. It outlines common production tools used with containers like configuration management, monitoring, and logging. It compares PaaS and containers, noting how PaaS consumed containers before they were widely known, and how the lines between the two are blurring as container platforms provide more services. It introduces Mantl as Cisco's container stack designed to run container workloads and big data applications across clouds.
3. • A wonderful packaging & portability
layer for applications.
Containers..
Container
Your code
Your startup scripts
Code Dependencies
Should deploy with
exactly the same
behavior on any
Host/VM that can run
containers.
NB: Containers != Microservices
4. • Supporting technologies.
Containers..
Container
Docker
Engine
Alternatives to docker engine here: Rkt (rocket)
Linux Kernel Technologies: LXC / CGroups / ‘Namespaces’
Single Host /
VM
LXC/CGroups existed before anyone cared.
Docker just made using these tools easier for the
masses and adoption followed.
UX important in this ecosystem.
They use CGroups (Linux kernel feature) to do this.
You’ll also hear ‘LXC’ used to refer to this tech.
Containers ‘WORK’ by hiding themselves
from other processes / containers on the
same VM/Host without the need for VM’s.
5. • Moving beyond single host.
• Containers aren't too great if they never leave the developer’s mac..
• Or if you have to manage them like this...
Containers ..
Container
Docker
Engine
Linux Kernel
Host / VM 1 Host / VM 2 Host / VM 3
Linux KernelLinux Kernel
Docker
Engine
Docker
Engine
ContainerContainer
$ssh host1
host1# docker run container
$ssh host2
host2# docker run container
$ssh host3
host3# docker run container
6. • Create a pool of resource for
throwing containers at
Containers + Schedulers ..
Container
Linux Kernel
Host / VM 1 Host / VM 2 Host / VM 3
Linux KernelLinux Kernel
Docker Engine
ContainerContainer
Scheduler API (HTTP POST):
Run three instances of my
container.
Docker Engine Docker Engine
Container Scheduler (Distributed, Clustered)
API for
Developers
Linux Kernel
Host / VM 4
Scheduler
State DB
Docker Engine
7. • Getting to production
• We need supporting players
Containers + Schedulers ..
Container
Linux Kernel
Host / VM 1 Host / VM 2 Host / VM 3
Linux KernelLinux Kernel
Docker Engine
ContainerContainer
Docker Engine Docker Engine
Container Scheduler (Distributed, Clustered) API
Linux Kernel
Host / VM 4
DB
Docker Engine
Deployment / Provisioning. IaaS/VM’s
Deployment / Provisioning. Install & configure components
Monitoring & Statistics Gathering
Log & Metrics
collection & Visibility - Automation
- Deployment
- Configuration
- Health
- Assurance
- Logs
- Audit
8. • Commonly implemented tools..
Containers + Schedulers + Production Tooling
Container
Linux Kernel
Host / VM 1 Host / VM 2 Host / VM 3
Linux KernelLinux Kernel
Docker Engine
ContainerContainer
Docker Engine Docker Engine
Container Scheduler (Distributed, Clustered) API
Linux Kernel
Host / VM 4
DB
Docker Engine
Terraform – Provision & Configure VM’s in IaaS
Ansible, puppet, chef, configuration management for you VM’s
Sensu, Nagios, collectd, syslog, cadvisor (collect container stats)
ELK Stack
ELK: Elasticsearch,
logstash and Kibana.
Three open source tools
that form a scalable
pipeline for taking,
processing, storing and
visualizing system / app
log data
9. Containers + Schedulers + Production Tooling +
Operators + Documentation = Container Stack
Container
Linux Kernel
Host / VM 1 Host / VM 2 Host / VM 3
Linux KernelLinux Kernel
Docker Engine
ContainerContainer
Docker Engine Docker Engine
Container Scheduler (Distributed, Clustered) API
Linux Kernel
Host / VM 4
DB
Docker Engine
Terraform – Provision & Configure VM’s in IaaS
Ansible, puppet, chef, configuration management for you VM’s
Sensu, Nagios, collectd, syslog, cadvisor (collect container stats)
ELK Stack
People (Ops) Documentation
A lot of the ‘DevOPS’
tooling/movement assumes
this stack is consumed ‘as a
Service’ from the cloud.
If you need containers on
prem and/or cross-cloud (with
zero lock in); you’ll likely need
an open container stack.
People (Ops)
Container Stack
DevOps (development teams)
11. • PaaS consumed containers; before
Containers were a ‘thing’*
PaaS
Container Stack
Throwing containers at a pool of
resource via an API.
Built-in Infrastrucure services.
Conversation lines blurring. Some “PaaS vs Container” conversations will get harder without context.
* Statement refers to “common understanding” and excludes veterans familiar with mainframe, Solaris
zones and other container tech 10+ years ago
Developer UI’s + ‘Templates’
CI/CD Integration - Pipelines
Service Integration
Providing a “developer experience”.
Saving time, building pipelines, providing
integrations.
Still ends up deploying the developers apps, in
containers, down onto a container stack.
Service Discovery Integration
12.
13. PaaS vs Containers
All custom components. uses
Warden/Garden containers instead of
docker containers for the container stack.
- ‘Microservices all the way’.
- Code changes for goodies!
- Service Integration API’s.
- ”Mature”
- HTTP / HTTPS Apps only.
‘PaaS’ becomes the ‘consumption’ interface on an
orchestrated pool of resource.
That interface may perfectly solve your problems, or may
prevent you carving your own path at the container layer
(opinionated Platform)
Container stack gives you access to
‘Warden/Garden’ if you want it.
Can do more, less opinionated.
Easier to shoot yourself in the foot without a
‘PaaS-Like’ frontend or process.
14. Ecosystems moving closer
PaaS
Not a magic
Bullet
Containers
Not a magic
Bullet
More use
cases.
Shared
Resources
Rapid consumption of the strengths and services from each ecosystem.
No ‘copy and paste’ re-work needed to support something in the other ecosystem.
15. Vision.
More use
cases.
Shared
Resources
An open, transparent ‘Container Stack’.
- Forms a foundation for a range of developer experience interfaces.
- Supports integration with new and legacy services.
- Doesn’t ignore Enterprise issues.
16. Cisco’s answer to needing a container stack.
An end to end, cloud agnostic, highly
extensible, integrated stack for running
container workloads and big data.
Including Deployment automation, security,
and monitoring.
Designed to grow into a platform for
application and data services.
Introducing Mantl
17.
18. • At its core, Mesos is a focused, scalable, two phased meta-scheduler that
provides primitives to express a wide variety of scheduling patterns and use
cases.
• Solutions are written atop of Mesos as frameworks.
• The technology allows you to utilize the same machines for both long running
(Docker) and batch (Hadoop) workloads
• Mature at Scale, successfully powering Twitter, Airbnb and Apple’s Siri voice
interpreter application among others
• Functioning Big Data Toolset including Logstash, Cassandra, Spark and
Hadoop frameworks available with one-click deployments
What is Mesos?