cloud-native' ecosystem - aug 2015

7
The ‘Cloud-Native’ Ecosystem August 2015 : @lennypruss

Upload: lenny-pruss

Post on 13-Jan-2017

14.274 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Cloud-Native' Ecosystem - Aug 2015

The ‘Cloud-Native’ Ecosystem

August 2015

: @lennypruss

Page 2: Cloud-Native' Ecosystem - Aug 2015

• Characteristics of the “cloud-native” stack: Containers as the modular compute building block with… Composable, microservices-oriented application architectures and… Dynamic, self-healing scheduling

• Today Docker, CoreOS, Kubernetes (Google) and Mesosphere are leaders but there are no winners yeto We still don’t know what the components of the container stack will look like…

Distributed service discovery is still broken (etcd is not highly available) Autonomic scheduling is promise not yet reality: Kubernetes is right abstraction, Mesos

is right scheduling algos, but neither has it nailed There are major unresolved issues around persistence, storage and security But the biggest issue facing the ecosystem? Lack of best practices and know-how

• Most of market is competing at management layer, but as we saw with virtualization and cloud: you win from the bottom up – in this paradigm that’s the orchestration/cluster management layer

• Containers are still missing a “killer app” and a business case (virtualization :: consolidate IT)

• With standards now emerging (Open Container Initiative, Cloud Native Foundation) we expect to see the emergence of a hardened toolchain which should unleash a second wave of innovation

Key Findings and Summary

Page 3: Cloud-Native' Ecosystem - Aug 2015

The “Cloud-Native” Stack – Taxonomy

Physical Infrastructure

Virtual Infrastructure

Minimal OS

Container Engine

Service Discovery

Orchestration: Scheduling & Cluster Management

Workflow / Management

Code

Tools

Infrastructure

Programming languages, frameworks and libraries that comprise applications

Code deployment pipelines, automation and configuration management frameworks, container and infrastructure management

Tools which automatically run and manage jobs, containers and hosts in a cluster; often modeled after Google Borg/Omega

Tools enabling an application or service to discover information about its environment and other components needed to form a larger systemSpecification and execution engine for operating-system-level virtualization environment for running multiple isolated Linux systems

Lightweight operating system to manage compute resources necessary to deploy applications in containers

Emulated physical compute, network and storage resources that are the basis for cloud-based architectures

Physical servers, switches, routers and storage arrays that occupy the datacenter

Page 4: Cloud-Native' Ecosystem - Aug 2015

The “Cloud-Native” Stack – Select Products / Vendors

(Machine, Swarm, Compose)

(Serf, Terraform)

Physical Infrastructure

Virtual Infrastructure

Minimal OS

Container Engine

Service Discovery

Orchestration: Scheduling & Cluster Management

Workflow / Management

Code

Tools (Fleet)

Infrastructure

Page 5: Cloud-Native' Ecosystem - Aug 2015

The “Cloud-Native” Ecosystem

• Consul (Hashicorp)• etcd (CoreOS)• Eureka (Netflix)• Zookeeper (Apache)• SmartStack (AirBnB)

• Mesos-DNS (Mesosphere)

Minimal OS

Container Engine

Service Discovery

Orchestration: Scheduling & Cluster Management

Tooling & Management • Cloud Foundry (Pivotal)

• ActiveState (HP)• HP Helion• IBM Bluemix

• Open Shift / Project Atomic (Red Hat)

• Elastic Container Service (AWS)

• Google Container Service• Triton (Joyent)• Rancher• Flynn• Tutum• Terminal.com

• CoreOS (CoreOS)• Project Atomic (Red Hat)• Photon (VMware)• RancherOS (Rancher)• Snappy Ubuntu Core (Canonical)• Windows Nano Server (Microsoft)

• libcontainer (Docker)• runC (Open Container Foundation)• appC (CoreOS)• Ubuntu LXD (Canonical)• Drawbridge? (Microsoft)• LXC/libvirt (Red Hat)

• Kubernetes (Google/CoreOS)

• Mesos, Marathon (Mesosphere)

• Swarm, Machine, Compose (Docker)

• Fleet (CoreOS)• Serf, Terraform, Atlas

(Hashicorp)• Helios (Spotify)• Project Titan (Netflix)• Chronos (AirBnB)

• Auroroa (Apache)• Cloudify (Gigaspaces)• Magnum+Heat

(OpenStack)

• Chef• Puppet• Ansible• SaltStack• Deis

(EngineYard)

• Glider Labs• CircleCI• TravisCI• Bouyant.io• WeaveWorks• SysDig

• Panamax (CenturyLink)

• CloudNative• Wercker• Shippable• Brooklyn

(Apache)• Giant Swarm• DCHQ.io• Nirmata• Cloud66• StackEngine

• Convox.io• Magnetic.io• Dozens more…

Platform

Page 6: Cloud-Native' Ecosystem - Aug 2015

Appendix: What are Linux Containers?

Virtual machines include the application, the necessary binaries and libraries and an entire guest operating system - all of which may be tens of GBs in size

Containers include the application and all of its dependencies, but share the kernel with other containers, runing as an isolated process in userspace on the host OS. Containers run on any compute substrate (laptop, bare metal, cloud)

• Containers are an operating-system-level virtualization environment for running multiple isolated Linux systems on a single Linux host

• Containers package a software application in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries

• Benefits:• Small: hold only the application logic and dependencies needed to run so disk footprint is

tiny• Fast: no CPU or I/O penalty because there is no virtualized hardware to pass through or boot• Portable: because containers are packaging format that holds an application with all of it’s

dependencies and configurations it will run the same in any environment

Page 7: Cloud-Native' Ecosystem - Aug 2015

Appendix: Why Do They Matter? As every organization becomes a software organization, faster release cycles are a

source of competitive advantage “DevOps” defined by convergence of IT ops and software development to streamline

deployment cycles Continuous deployment – practice of continually shipping code to production – could be

containers’ “killer app” Microservices architecture, a development practice of writing applications as a series of

modular, discrete services, has been increasingly adopted by organizations in an effort to improve speed-to-market and agility

All this is to say: containers enable organizations to write better software faster