Date post: | 15-Feb-2017 |
Category: |
Technology |
Upload: | cisco-devnet |
View: | 844 times |
Download: | 0 times |
Container Platforms and PaaS Overview
• Ann Wallace @randombugMatt 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 StackELK: 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
PaaSAka. Containers != Microservices
• PaaS consumed containers; before Containers were a ‘thing’*
PaaS
Container StackThrowing 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 IntegrationProviding 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.