Container Platforms and PaaS
Overview
• Ann Wallace @randombug
Matt Johnson @mattdashj
• February, 2016
• Cisco Cloud Innovation Team
Context
Containers
• 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
• 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.
• 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
• 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
• 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
• 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
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)
Context
PaaS
Aka. Containers != Microservices
• 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
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.
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.
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.
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
• 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?
Questions?
More info?
See us at the cloud booth in
DevNet
More Presentation?
Brian Hicks talking Mantl;
tomorrow at 9am.

Choosing PaaS: Cisco and Open Source Options: an overview

  • 1.
    Container Platforms andPaaS Overview • Ann Wallace @randombug Matt Johnson @mattdashj • February, 2016 • Cisco Cloud Innovation Team
  • 2.
  • 3.
    • A wonderfulpackaging & 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 Alternativesto 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 beyondsingle 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 apool 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 toproduction • 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 implementedtools.. 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)
  • 10.
  • 11.
    • PaaS consumedcontainers; 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
  • 13.
    PaaS vs Containers Allcustom 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 Nota 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 toneeding 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
  • 18.
    • At itscore, 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?
  • 20.
  • 21.
    More info? See usat the cloud booth in DevNet More Presentation? Brian Hicks talking Mantl; tomorrow at 9am.