rubyworld 2011

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

Upload: derek-collison

Post on 06-May-2015

11.288 views

Category:

Technology


0 download

DESCRIPTION

My keynote presentation at RubyWorld 2011 in Matsue, Japan.

TRANSCRIPT

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?