Você está na página 1de 48

Beehive

Impressive application deployment

Wednesday, February 24, 2010


Wednesday, February 24, 2010
Wednesday, February 24, 2010
What is it?
• Highly available, distributed router and
application management framework
• Designed to handle highly volatile
environments (i.e. the cloud)
• RESTful interface
• Aims to host mutliple protocols
simultaneously
• Designed to scale from the ground-up
• Open-source (of course)
Wednesday, February 24, 2010
Dynamic routing mesh

Wednesday, February 24, 2010


beehive create

Wednesday, February 24, 2010


Java
Python Java Ruby
Python Java Ruby
Python Ruby

Bee layer
Wednesday, February 24, 2010
Java
Python Java Ruby
Ruby

Ruby Python

Bee layer
Python Java

Wednesday, February 24, 2010


Routing layer
App

Bee layer
Wednesday, February 24, 2010
Routing layer
App

Bee layer
Wednesday, February 24, 2010
Routing layer
App

Bee layer
Wednesday, February 24, 2010
Routing layer
App

Bee layer
Wednesday, February 24, 2010
Routing layer
App

Bee layer
Wednesday, February 24, 2010
Routing layer
App App

Bee layer
Wednesday, February 24, 2010
Routing layer
App App

Bee layer
Wednesday, February 24, 2010
Wednesday, February 24, 2010
App

App

Bee layer
Wednesday, February 24, 2010
App

Bee layer
App

Wednesday, February 24, 2010


App

Bee layer
Wednesday, February 24, 2010
Storage layer
Interface to storage backends, such
as filesystems, s3, etc. that is
responsible for returning squashed
versions of applications

Storage layer
Wednesday, February 24, 2010
Storage layer
Interface to storage backends, such
as filesystems, s3, etc. that is
responsible for returning squashed
versions of applications

Storage layer
App

Wednesday, February 24, 2010


Storage layer
Interface to storage backends, such
as filesystems, s3, etc. that is
responsible for returning squashed
versions of applications

Storage layer
App

Wednesday, February 24, 2010


Where is a compressed
version of “myapp?”

Storage layer
Wednesday, February 24, 2010
Bees
BackEnd Endpoints

Wednesday, February 24, 2010


Image based applications

Templated application environment


Bee Only the libs and binaries needed

Customizable through hooks

Wednesday, February 24, 2010


Image based applications

The application
environment mounted as
Bee
a .img filesystem as a
loopback filesystem

Wednesday, February 24, 2010


Templated application environment
• By looking at the application type,
the bee can be created to match
Bee the application structure
• Application types often need
different environments to run, so
bees are created and distributable
based on their applications

Wednesday, February 24, 2010


Templated application environment
• By looking at the application type,
the bee can be created to match
Java
Ruby
Bee
Python
Whatever
PHP
Erlang
C/C++ the application structure
• Application types often need
different environments to run, so
bees are created and distributable
based on their applications

Wednesday, February 24, 2010


Only the libs and binaries needed
Including only the necessary
libraries and binaries, the
Bee application image is kept small
and easily shipable container

Wednesday, February 24, 2010


Customizable through hooks

Customize the entire process


through hooks and overrides, i.e.:
Bee
start.before: /bin/prepare_start.sh
start: thin -R config.ru start
start.after: notify_started

Wednesday, February 24, 2010


Image based applications

Templated application environment


Bee Only the libs and binaries needed

Customizable through hooks

Wednesday, February 24, 2010


Bee layer
Routing layer
Storage layer

Wednesday, February 24, 2010


Routing layer
Process manager
“watches” processes
on the bee-nodes

Process Manager
for failure, launches
apps and is
responsible to report

Bee layer
back to Beehive.
Storage layer
Written in C/C++

Wednesday, February 24, 2010


Routing layer
Process Manager Git server hosts the
applications, handles

Git server
pre-receive and other

Bee layer
hooks
Storage layer

Wednesday, February 24, 2010


Routing layer
Process Manager
Distributed database
handles distributing
the shared state and

Git server
shared knowledge of

Bee layer
the system across the
system
Distributed Database

Storage layer

Wednesday, February 24, 2010


Routing layer
Process Manager
Client gem gives a
restful cli for the

Git server
developer to interact

Bee layer
with Beehive
Written in Ruby
Distributed Database

Client gem
Storage layer

Wednesday, February 24, 2010


Git server
Client gem
Process Manager
Distributed Database
Bee layer
Routing layer
Storage layer

Wednesday, February 24, 2010


Workflow
How to use the damn thing

Wednesday, February 24, 2010


git push
deploy (create/update)

Wednesday, February 24, 2010


Continuous deployment

Wednesday, February 24, 2010


Wanna play?
Wanna help?
Wanna help play?

Wednesday, February 24, 2010


Wanna play?
Wanna help?
Wanna help play?

Wednesday, February 24, 2010


You can
It’s OPEN-SOURCE!

Wednesday, February 24, 2010


Wednesday, February 24, 2010
http://github.com/auser/beehive

Wednesday, February 24, 2010


Questions?
Wednesday, February 24, 2010
Thank You
Ari Lerner
arilerner@mac.com

Wednesday, February 24, 2010


http://github.com/auser
irc://irc.freenode.net/#beehive
twitter: @auser
awesomeness

Wednesday, February 24, 2010

Você também pode gostar