osv: probably the best os for cloud workloads you've never heard of (cloud foundry summit 2014)

37
© 2014

Upload: pivotal

Post on 27-Jan-2015

108 views

Category:

Technology


1 download

DESCRIPTION

Technical Track presented by Roman Shaposhnik, Sr. Manager, Hadoop at Pivotal. OSv is the revolutionary new open source technology that combines the power of virtualization and micro-services architecture. This combination allows unmodified applications deployed in a virtualized environment to outperform bare-metal deployments. Yes. You've heard it right: for the first time ever we can stop asking the question of how much performance would I lose if I virtualize. OSv lets you ask a different question: how much would my application gain in performance if I virtualize it. This talk will start by looking into the architecture of OSv and the kind of optimizations it makes possible for native, unmodified applications. We will then focus on JVM-specific optimizations and specifically on speedups available to big data management distributed applications. Finally, we will look into the relationship between OSv and Docker and how that layering can help make OSv a secret sauce for turbo-charging Cloud Foundry application deployments.

TRANSCRIPT

Page 1: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

© 2014

Page 2: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

OSv: PROBABLY THE BEST OS FOR CLOUD WORKLOADS YOU'VE NEVER HEARD OF

Roman Shaposhnik @rhatr, Pivotal Inc.

Page 3: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Why do we dig PaaS?

Page 4: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

‘cuz its awesome!

Page 5: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

No, but seriously?

myApp $ cf push …

service #N

service #1

service #Z

service #M

Page 6: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

What about stateful?

HDFS

Zookeeper

HBaseregionserver

…I am aliveWho Am I?What do I do?

HBaseregionserver

Page 7: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

And when it fails?

HDFS

Zookeeper

HBaseregionserver

…Node diedYou, pitch in!Aye, aye captain

Page 8: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

μservice-based deployment

HDFS

Zookeeper

HBaseregionserver

…I am aliveWho Am I?What do I do?

HBaseregionserver

Page 9: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Lets zoom in

service #N

service #1

Page 10: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Anatomy of a μservice

Hardware

“Stuff”

[Java] Virtual Machine

μservice code

Page 11: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

How are we doing it today?

Hardware

pkg1

[Java] Virtual Machine

μservice code

pkgN………….“OS”Linux kernel

Puppet, Chef

Huge VM image

Page 12: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Is there a better way?

vHardware

Hardware

[Java] Virtual MachinelibFS, libC, libJVM

μservice code

Application-specificstatic linking

Tiny VM image AKA unikernel

Hardware-assisted virtualization

Page 13: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

What the heck is a FOOkernel?• What OS design courses have taught us?

– microkernels vs. monolithic kernels• What did they left behind?

– exokernels, nano• What they should’ve taught us instead:

– unikernels, anykernels

Page 14: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Unikernels• “Unikernels: library operating systems for the

cloud” came out in 2013• A “library” operating system• A kernel that can only support one process

Page 15: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Anykernels• Programming discipline for kernel code reuse• “The Design and Implementation of the

Anykernel and Rump Kernels” by A. Kantee• Capabilities

– NetBSD filesystems as Linux processes– User-space TCP/IP stack

Page 16: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

OSv from Cloudius Systems• A unikernel for “POSIX” and memory managed

platforms (JVM, Go, Lua)• Anykernel’ish

– E.g. ZFS• Runs on top of KVM, Xen, VirtualBox, VMWare• Looks like an app to the host OS• Small, fast and easy to manage at scale

Page 17: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

OSv manifesto• Run existing Linux applications• Run existing Linux applications faster• Make boot time ~= exec time• Explore APIs beyond POSIX• Leverage memory managed platforms (JVM, Go)• Stay open

Page 18: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

What’s inside?

single address space in “kernel mode”

“kernel threads”“user threads”

diskZFS virtioC++ kernel code

dynamic linker

libjvm.soifconfig.so

TCP/IP

iface

Page 19: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Anything it can’t do?• A 100% replacement for a Linux kernel

– No fork()ing• No process isolation• The least amount of device drivers ever

Page 20: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Virtualization vs. performance• Network-intensive apps:

– unmodified: 25% gain in throughput 47% decrease in latency

– non-POSIX APIs use for Memcached: 290% increase in performance

• Compute-intensive apps:– YMMV

Page 21: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Van Jacabson’s net channels

socket

TCP

IP

iface

socket

TCP

IP

iface

lock

lock

lock

Traditional TCP/IP stack

app thread kernel (IRQ)

send/recv

socket

TCP

IP

iface

channel

classifier

iface

lock

OSv TCP/IP stack

app thread kernel (IRQ)

send/recv

Page 22: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Memory management in UNIX

OS Memory

Process Memory

JVM Heap

Process Memory

JVM Heap

Page 23: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Memory management in OSv

OS Memory

Process Memory

JVM Heap

Page 24: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

JVM balooning (no more -Xmx)

JVM Heap

OS object

Page 25: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Turbo charging JVM GC

object 1 object 2

Page 26: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Turbo charging JVM GC

object 1 object 2

Page 27: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Turbo charging JVM GC

object 1 object 2

CPU MMU assisted tracking table

Page 28: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

But what about Docker?

Jailed FS, net, etc.

Hardware

[Java] Virtual MachinelibFS, libC, libJVM

μservice code

Application-specificstatic linking

Docker image

Common, shared kernel

Page 29: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Docker != LXC• $ docker run roman/PetClinic• Socially-driven image sharing

Ubuntu 14.04

Canonical

Tomcat

Pivotal

Go

Google

PetClinic

Roman

PetClinic

service #N

service #1$ docker run

Page 30: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Why should it work this time?• Unikernels/exokernels back in ’90• JVM-on-bare-metal (Azul, BEA, etc.) back in ‘00• Things they didn’t have back then

– HW-assisted virtualization (KVM, XEN, etc.)– Elastic infrastructure oriented architectures– CloudFoundry

Page 31: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Elastic, next generation datacenter• Commodity, rack-provisioned Hardware• Commodity, JeOS to get to Docker++

– CoreOS, SmartOS• Docker++ as a common backed• OSv (really KVM, XEN)• “GitHub” for μservies images

Page 32: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Finally killing DevOps• Ops (IT) maintains the bare OS• Devs maintain the images

Page 33: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Finally killing DevOps• Ops (IT) maintains the bare OS• Devs maintain the images

Page 34: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Guinea pigs so far• Cloudius

– Memcached– Apache Cassandra– Redis

• Pivotal– Hadoop ecosystem

Page 35: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Where do we need your help?• All of the above ;-)• CloudFoundry integration

– $ cf push roman/petclinic ?– Docker registry as a backend for BuildPacks ?– Two-level scheduling for Hadoop ecosystem

Page 36: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)

Questions?

By @cloud_opinion

Imagine no platformsI wonder if you canNo need for PAAS or IAASA brotherhood of bare metal

Imagine there is no VMIt's easy if you tryNo host below usAbove us only apps

Page 37: Osv: Probably the Best OS for Cloud Workloads You've Never Heard Of (Cloud Foundry Summit 2014)