Giant Swarm PaaS for Simple Service Orchestration Based in
Cologne Hiring Devs and DevOps http://giantswarm.io
The Beginning
Containers are not that new But Docker solved packaging and
distribution very well Standardization: libcontainer Open Source
ecosystem is growing Why Containers?
SOA / Microservice Architectures Polyglot Persistence Fault
tolerance / High Availability Scalability Utilization Why
Orchestration?
Many Choices CoreOS Kubernetes (Google) Apache Mesos (Twitter,
Airbnb) Consul (Hashicorp) Project Atomic (Redhat)
Docker libswarm Primitives of container orchestration With
adaptors to actual implementations Docker Remote API abstraction
Will be probably rewritten a view times before it will be
released
Schedulers (High level) Google Borg (Monolithic) Apache Mesos
(Two Level) Hadoop on Demand (Two Level) Google Omega (Shared
State) Read: Omega: exible, scalable schedulers for large compute
clusters http://research.google.com/pubs/pub41684.html
Mesos Primitives for distributed scheduling Meta Scheduler
Writing your own scheduler is easy Mesosphere announced Kubernetes
on Mesos
Consistent Cluster State Etcd (Raft) Consul (Raft) Doozer
(Paxos) Zookeeper (Paxos) Spanner (Paxos)
http://raftconsensus.github.io/
Service Discovery Ambassador Pattern Consul Etcd Haproxy /
confd
Ambassador Pattern
Plan 9
Docker libchan Link containers from everywhere Unix Socket
HTTP2 / TLS Messaging / Raw TCP Like Go Channels over the
network
Keep it outside of your containers Run it in separate but
privileged containers Marathon /metrics cAdvisor Monitoring /
Logging
Mesos - Marathon Framework for long running processes Like init
for a cluster Constraints Health Checks Service Discovery / Load
balancing REST API
Demo
Kubernetes Design
Kubernetes Concepts Pods A group of containers on the same host
They share the same network namespace Eg. presence, ambassador,
logging, monitoring, caching, configuring sidekicks Labels Service
Replication Controller