29
STAMPEDE.IO CoreOS + Digitial Ocean Meetup 9/8/14 Darren Shepherd

Stampede.io CoreOS + Digital Ocean Meetup

Embed Size (px)

DESCRIPTION

Overview of Stampede.io

Citation preview

Page 1: Stampede.io CoreOS + Digital Ocean Meetup

STAMPEDE.IO

CoreOS + Digitial Ocean Meetup 9/8/14

Darren Shepherd

Page 2: Stampede.io CoreOS + Digital Ocean Meetup

About Me – Darren Shepherd @ibuildthecloud, darren0 Fancy Title Engineer @ Citrix

Previously Cloud Architect @ GoDaddy 3 yrs Building IaaS systems for past 5 yrs

Apache CloudStack – CommitterOpenStack2 from scratch proprietary clouds

Stampede.io is the 4th orchestration platform I’ve built

Page 3: Stampede.io CoreOS + Digital Ocean Meetup

What is Stampede.io Hybrid IaaS/Docker orchestration platform

Can run both VMs and Containers in a consistent fashion

Share approaches where makes sense, but still respects that Containers != VMs

Easy to install/upgrade and use Tailored installation for CoreOS

Cattle.io is the more raw framework under the hood

Page 4: Stampede.io CoreOS + Digital Ocean Meetup

Demo

Page 5: Stampede.io CoreOS + Digital Ocean Meetup

Why you’d build this?

Page 6: Stampede.io CoreOS + Digital Ocean Meetup

Boring Reason Personal R&D project @ Citrix

Just me, my opinions, and a MacBook Pro (running Linux) Loose upfront goals

Make IaaS somehow better○ Apply 5 years of lessons learned

Include Docker/Containers○ Shiny new tech is fun

Spent 6 months locked in a closet Hacking – ~50k lines of code Staring at wall – “How do I think containers can be useful?”

Page 7: Stampede.io CoreOS + Digital Ocean Meetup

Quite Literally… My home office is a

closet

Page 8: Stampede.io CoreOS + Digital Ocean Meetup

UI Developed by Vincent Fiduccia

(vincent99 on Github) Node.js and Ember Event driven using WebSockets

Page 9: Stampede.io CoreOS + Digital Ocean Meetup

Grandiose Reason

Either changing the world or world domination are expected outcomes

Page 10: Stampede.io CoreOS + Digital Ocean Meetup

Container Playbook Containers are portable Containers can run on a laptop, in a VM, or on

Bare metal Bare metal becomes more attractive

Faster and cheaper Bare metal + Container == world domination Hypervisors, Virtualization, VMware, AWS, etc

are doomed

Page 11: Stampede.io CoreOS + Digital Ocean Meetup

But there’s a problem Containers are portable Containers are a compute technology Storage and Networking are not portable

EBS – Reliable storage w/ snapshotsVPC – IP addressing, firewall, L2

Page 12: Stampede.io CoreOS + Digital Ocean Meetup

Nothing we can’t Architect around

Ephemeral apps Distributed storage

NoSQL - Cassandra Architect for the cloud!

Page 13: Stampede.io CoreOS + Digital Ocean Meetup

Darren’s brief history of EC2 2006 – Ephemeral only VMs 2008 – EBS 2009 – VPC 2010-2014 – Crazy exponential growth

Page 14: Stampede.io CoreOS + Digital Ocean Meetup

EBS and VPC are essential You can architect for the cloud But many won’t Amazon didn’t convince everyone to re-architect for

the cloud Amazon supported legacy architectures Containers are currently EC2 2006 Most people will continue to run on the infrastructure

they already haveNot a game changer

Page 15: Stampede.io CoreOS + Digital Ocean Meetup

Containers won’t change the infrastructure world unless we tackle storage and networking

Page 16: Stampede.io CoreOS + Digital Ocean Meetup

The theory Container are portable because Linux is

ubiquitousGreat idea, why didn’t I think of that

We can build a portable EBS and VPC with just Linux

Linux has the majority of the technology needed, we just need to piece it together.

Page 17: Stampede.io CoreOS + Digital Ocean Meetup

Stampede is about building a portable cloud – compute, storage, and networking

Page 18: Stampede.io CoreOS + Digital Ocean Meetup

What does this mean? Infrastructure providers only need to provide Linux

Simple block storageL3 connectivity If VT-x/SVM is available, VMs can be launched

Stampede provides everything elseStampede can be provided “as a Service”

Normalize the infrastructure marketMassive scale infrastructure provider is not needed

Page 19: Stampede.io CoreOS + Digital Ocean Meetup

Fun Launching Containers on Digital Ocean

Page 20: Stampede.io CoreOS + Digital Ocean Meetup

Default Stampede Deployment

CoreOS Node 1

Controller

Agent

Libvirt

CoreOS Node 2

Agent

Libvirt

CoreOS Node 3

Agent

Libvirt

One node becomes controller

Page 21: Stampede.io CoreOS + Digital Ocean Meetup

Logical Components in Controller

Deployed in single process for simplicity

Should scale for clouds <50 servers

ControllerDatabase

Lock Manager

Event Bus

API Server

Process Server

Agent Server

Page 22: Stampede.io CoreOS + Digital Ocean Meetup

Fully Distributed Controller

Page 23: Stampede.io CoreOS + Digital Ocean Meetup

Stampede on Stampede

Page 24: Stampede.io CoreOS + Digital Ocean Meetup

Digital Ocean Deployment 3 Etcd clusters w/ Fleet

Management Stack – 3 x 12GBSFO1 Nodes – 100 x 2GBNYC3 Nodes – 100 x 2GB

Page 25: Stampede.io CoreOS + Digital Ocean Meetup

Tests Sustained rate 6-7 containers per second

Not tuned for raw throughput (naively stupid scheduler)

Gigantic batches10000 containers in one API call (count=10000)

Restart everything during deploymentsAgents, Servers, Database, ZooKeeper, etc

Just tried to break things

Page 26: Stampede.io CoreOS + Digital Ocean Meetup

How Many Containers?

Page 27: Stampede.io CoreOS + Digital Ocean Meetup
Page 28: Stampede.io CoreOS + Digital Ocean Meetup

A lot – 127,884 127,884 Running Containers

~600 per VM17 failures (0.01%)

~6 hoursWas not testing for throughputFocus on reliability

Note: This was done with unmanaged networking

Page 29: Stampede.io CoreOS + Digital Ocean Meetup

Questions?