donabe - basic models/technology

18
Donabe http://etherpad.openstack.org/Dona Debo~ Dutta (dedutta), Rick Clark (rickclar) @cisco

Upload: debojyoti-dutta

Post on 27-Jan-2015

103 views

Category:

Technology


0 download

DESCRIPTION

Donabe is a multi-tier Application Container Service and a top level orchestrator that will provision/deploy complex apps. These slides were presented at the Openstack Essex Design Summit in Boston.

TRANSCRIPT

Page 1: Donabe - Basic Models/Technology

Donabe

http://etherpad.openstack.org/Donabe

Debo~ Dutta (dedutta), Rick Clark (rickclar) @cisco

Page 2: Donabe - Basic Models/Technology

Conjecture: Applications are all that really matter to the end user!

Page 3: Donabe - Basic Models/Technology

Anecdotal evidence: A CIO never sits around lamenting about infrastructure

"I wish I had more servers so we could manage our customer relationships better“

"SugarCRM's social media features would help our sales force be more responsive to the needs of our

customers. How can I have that tomorrow?"

Page 4: Donabe - Basic Models/Technology

Donabe is a multi-tier Application Container Service and a top level orchestrator that will

provision/deploy complex apps.

Use case: e.g. ruby/rails guy: cares for 1) a scalable ruby tier and 2) scalable mysql tier network segments.

ScalableRuby/Rails Container

scalableMySQL

container

Page 5: Donabe - Basic Models/Technology

ScalableRuby/Rails Container

scalableMySQL

container

LB

Apachepassenger

Mysql master

Stdby master

Mysql slaves

Whats new?

Page 6: Donabe - Basic Models/Technology

LB

Apachepassenger

Mysql master

Stdby master

Mysql slaves

LB

Apachepassenger

Mysql master

Stdby master

Mysql slaves

Rails container

Mysql container

Page 7: Donabe - Basic Models/Technology

LB

Apachepassenger

Mysql master

Stdby master

Mysql slaves

Rails container

Mysql container

What is Donabe (again!)?

• A collection of widgets?– interconnected …

• Bunch of configs?– Bundled in a profile …

• N-tier apps?• Flexible app profiles?• …….. And more?

Page 8: Donabe - Basic Models/Technology

What should we focus on first?

Page 9: Donabe - Basic Models/Technology

Applications have requirements

Compute Logical Network (including topology!) Security Availability Data Storage Spending boundries and triggers(Cloud specific) Service assurance

Page 10: Donabe - Basic Models/Technology

A simple thought

• Donabe –abstract container model – (mimics a network of widgets)– Abstraction of resources

• Infrastructure• Apps (bundles)

– Nested containers/widgets– Each container has ports (widget level ports?)

• for connecting to other containers• Ways to connect nested containers

• Wont delve into policies here!– Container definition will point to policy object

Page 11: Donabe - Basic Models/Technology

API

• Resources– Container

• Name• Type• (contains) List of containers• Relationships of lower level containers (aka sub-widget graph)

– Policy • Policy

– Opaque, known only to the SPs who implement containers• Separate template from instance

– Templates need a specification language – Our choice: Declarative Languages– Thus API will have a manifest property

Page 12: Donabe - Basic Models/Technology

Declarative Domain-Specific-Language

• We need a DSL to declare the relationships between the containers and declare requirements that are not specifically owned by a container.

In prelim talks with puppet folks to extend the puppet manifest language for this purpose

Page 13: Donabe - Basic Models/Technology

• The language needs to be declarative, because we want to be done, but not how to do it. – I should be able to say I need a 2Gb/s connection

between this point in container 1 and this point in container 2,

– without knowing anything about the networking devices or the commands and values that need to be supplied to accomplish my request.

Page 14: Donabe - Basic Models/Technology

Container Types

• Compute – VMs, clusters, processes

• Network – Virtual Network Segments– L2 container (like Quantum)

• Storage– Objects, files, blocks, blobs

• App – higher layer – Abstracts workloads

Page 15: Donabe - Basic Models/Technology

Compute Containers

• Generic VMs or lightweight VM containers. – Encompasses current VM semantics– Can be used for openVZ or LXC– Connected via virtual or real switches

• A server connected to an access– Blade server/chassis (cisco, hp, ibm etc)– Connects to the same access switch

• Simple example: – apache container has a nested compute container

• This container specifies a VM or a LXC container to run

Page 16: Donabe - Basic Models/Technology

Network containers

• Forms the pipes/segments used by other containers to talk to each other. – Refine attachment points/ports semantics

• VMs vNIC• Quantum/L2 network ports• Apps socket/ports • Widgets in/out ports

– Can support point-point or multipoint communication– Services containers can be injected using a filter

path/graph model e.g. a bump-in-the-wire chain • E.g. Quantum is a good L2 network container ….

Page 17: Donabe - Basic Models/Technology

Key work areas for Essex

• Model/APIs – Agreement of models needed for 1st phase.

• Declarative languages – Puppet network additions– Integration with OVF 2.0 profiles

• Widget library/container template design• Orchestration (stretch)– Scheduling

Page 18: Donabe - Basic Models/Technology

Who is doing something similar?

• In openstack - ? … • Heroku?• Cloudscaling?• Opscode?