52
RubyWorld 2011 Cloud Foundry Why Ruby, and will it last? Derek Collison Sept 5, 2011

RubyWorld 2011

Embed Size (px)

DESCRIPTION

My keynote presentation at RubyWorld 2011 in Matsue, Japan.

Citation preview

Page 1: RubyWorld 2011

RubyWorld 2011

Cloud FoundryWhy Ruby, and will it last?

Derek CollisonSept 5, 2011

Page 2: RubyWorld 2011

Agenda

‣ What is Cloud Foundry?

‣ Why Ruby?

‣ The Business of Cloud Foundry

‣ Challenges and Ruby’s future

Page 3: RubyWorld 2011

What isCloud Foundry?

Page 4: RubyWorld 2011

The OpenPlatform as a Service

Page 5: RubyWorld 2011

What is PaaS?

Page 6: RubyWorld 2011

Or more specifically, aPaaS?

Page 7: RubyWorld 2011

aPaaS

‣ Application Platform as a Service

‣ Applications and Services

‣ Not VMs, Memory, Storage, Networks, CPU

Page 8: RubyWorld 2011

What isOpenPaaS?

Page 9: RubyWorld 2011

OpenPaaS

‣ Multi-Language

‣ Multi-Framework

‣ Multi-Services

‣ Multi-Cloud, Multi-IaaS

‣ Hybrid - Public or Private or Both

‣ OpenSource

Page 10: RubyWorld 2011

OpenPaaS‣ Multi-Language

‣ Ruby, Java, Scala, Node.js, Erlang, Python, PHP..

‣ Multi-Framework

‣ Rails, Sinatra, Spring, Grails, Express, Lift, MochiWeb

‣ Multi-Services

‣ MySQL, Postgres, MongoDB, Redis, RabbitMQ

‣ Multi-Cloud, Multi-IaaS

‣ vSphere, MicroCloud, OpenStack, AWS, Eucalyptus

Page 11: RubyWorld 2011

The Open PaaS

Clou

d Pr

ovid

er In

terfa

ceApplication Service Interface

Private Clouds

PublicClouds

MicroClouds

Data Services

Other Services

Messaging Services

.js

Page 12: RubyWorld 2011

What was our Goal?

‣ Raise the unit of currency to be the application and its associated services, not the infrastructure

‣ Best of breed delivery platform for all modern applications and frameworks

‣ Favor Choice and Openness

‣ Simplicity and Speed

Page 13: RubyWorld 2011

How was it Built?

‣ Kernel (CloudFoundry OSS)

‣ Core PaaS System

‣ Kernel and Orchestrator Shells

‣ Layered on top of IaaS

‣ Orchestrator

‣ Creation, management and orchestration of IaaS

Page 14: RubyWorld 2011

High Level

Orchestrator / IaaS

CF Kernel

Hardware - CPU/Memory/Disk/Network

Clients (VMC, STS, Browser)

Page 15: RubyWorld 2011

Basic Premises

‣ Fail Fast

‣ Self Healing

‣ Horizontally Scalable Components

‣ Distributed State, No Single Point of Failure

‣ Should be as simple as possible

Page 16: RubyWorld 2011

Basic Patterns

‣ Event-Driven

‣ Asynchronous

‣ Non-blocking

‣ Independent, Idempotent

‣ Message Passing

‣ Eventually Consistent

Page 17: RubyWorld 2011

Logical View

VMC client STS plugin Browser(user app access)

Routers

CloudControllers App

Services DEA Pool

App

HealthManager

Messaging

Page 18: RubyWorld 2011

All built with Ruby 1.9!

Page 19: RubyWorld 2011

But whyRuby?

Page 20: RubyWorld 2011

Why Ruby?

‣ Amazingly Expressive Language

‣ Allows great productivity and rapid iteration

‣ Utilized EventMachine for Async Patterns

‣ Ruby 1.9 Fibers

‣ Language performance is not always key

‣ All components are independent

Page 21: RubyWorld 2011

Kernel and Orchestrator

‣ Both built using Ruby 1.9

‣ Kernel does have some performance issues

‣ Orchestrator, Chef, Puppet

‣ Ruby is a great language for cloud management

‣ CF Orchestrator built with Ruby as well

Page 22: RubyWorld 2011

How do we makeMoney?

Page 23: RubyWorld 2011

The Business

‣ Charge for CloudFoundry.com and Services

‣ Enable the private enterprise PaaS Cloud

‣ Hybrid clouds, combining service + software

Page 24: RubyWorld 2011

The key is theprivate cloud..

Page 25: RubyWorld 2011

OpenSource is mandatory..

Page 26: RubyWorld 2011

Many customers don’t want to be thrown into

the deep end of the pool!

Page 27: RubyWorld 2011

Same Patterns Everytime

‣ Customers get a CF.com account and try it

‣ Download source code and try to build

‣ Try to setup a multi-node installation

‣ Request information on hybrid capabilities

Page 28: RubyWorld 2011

Same Patterns Everytime

‣ Customers get a CF.com account and try it

‣ Download source code and try to build

‣ Try to setup a multi-node installation

‣ Request information on hybrid capabilities

Page 29: RubyWorld 2011

This can be hard..

Page 30: RubyWorld 2011

Answer:MicroCloud

Full single instance CF as a downloadable VMAvailable now

Page 31: RubyWorld 2011

Micro Cloud FoundryCloud Foundry on a USB

Available at RubyWorld

Page 32: RubyWorld 2011

Same Patterns Everytime

‣ Customers get a CF.com account and try it

‣ Download source code and try to build

‣ Try to setup a multi-node installation

‣ Request information on hybrid capabilities

Page 33: RubyWorld 2011

This can be even harder..

Page 34: RubyWorld 2011

Answer: Project Bento

Fully supported private cloud version of CFAvailable 2012

Page 35: RubyWorld 2011

VMwareproprietary

code

VMwareOSS code

3rd partyOSS code

CloudFoundry.org

CloudFoundry.com

3rd partyproprietary

code

Bento Micro Cloud Foundry

Cloud Foundry EcoSystem

Page 36: RubyWorld 2011

Demo

Page 37: RubyWorld 2011

Challenges we faced..

Page 38: RubyWorld 2011

Ruby VM, Gil, GC issues

Page 39: RubyWorld 2011

EventMachine Problems(1.9, IO skew)

Page 40: RubyWorld 2011

Evented IO

‣ Event-driven programming

‣ Fundamental shift in thinking, e.g. Node.js

‣ Does this require deeper language integration for Ruby?

‣ Does Ruby need a formal Reactor Pattern?

Page 41: RubyWorld 2011

Packaging(Bundler, Gems)

Page 42: RubyWorld 2011

Gem vs VM Choice compatibility

(MRI/Yarv, JRuby, RBX)

Page 43: RubyWorld 2011

Did we make the right decision?

Page 44: RubyWorld 2011

Did we make the right decision?

YES!

Page 45: RubyWorld 2011

But...

Page 46: RubyWorld 2011

What does Ruby want to be when it grows

up?

Page 47: RubyWorld 2011

What is Ruby?

‣ Great scripting language!

‣ Cloud Management and Tools

‣ Modern Application Language!

‣ Mobile, Data-Centric, Web

‣ Distributed/Cloud Systems Language?

Page 48: RubyWorld 2011

What would need to Change?

Page 49: RubyWorld 2011

Summary

Page 50: RubyWorld 2011

Summary

‣ Ruby can power large distributed systems

‣ Ruby can power your business

‣ What does Ruby want to be?

‣ What needs to evolve and improve?

Page 51: RubyWorld 2011

Questions?