SlideShare una empresa de Scribd logo
1 de 46
NWRUG
                            February 2009
                             Sponsored by Engine Yard




Friday, February 20, 2009
Vertebra Nanite
                            (and an introduction to cloud computing)

                                            Will Jessop




Friday, February 20, 2009
Friday, February 20, 2009
Vertebra?

                     • Wasn’t working in time to write this…
                     • …seen in use on Engine Yard nodes
                     • Actively developed, improving


Friday, February 20, 2009
(an introduction to cloud computing)




                                What is it?
                                        (Discuss)




Friday, February 20, 2009
My definition




Friday, February 20, 2009
My definition

                            Cloud computing means taking the
                            resources you need for a
                            computing task at the time you
                            need it from a pool of available
                            processing capacity.




Friday, February 20, 2009
What does that really
                              mean?

                     • Provision the minimum amount of
                            processing capacity you need
                     • Add more processing capacity as needed


Friday, February 20, 2009
Friday, February 20, 2009
Why compute in the
                                 cloud?
                     • Servers cost money to run, even when idle
                     • Demand for capacity can peak




Friday, February 20, 2009
Why compute in the
                                 cloud?
                     • Servers cost money to run, even when idle
                     • Demand for capacity can peak
                                   Oh yes, it can:




Friday, February 20, 2009
Uh-oh:




Friday, February 20, 2009
Yikes!




Friday, February 20, 2009
Doing it right

                     • Monitoring
                     • Provisioning
                     • Discovery



Friday, February 20, 2009
Doing it right

                     • Monitoring
                     • Provisioning
                     • Discovery



Friday, February 20, 2009
Friday, February 20, 2009
Botnets of infected windows
                            machines running eggdrop (or
                            similar), an IRC server and a
                                      1337 h4x0r




Friday, February 20, 2009
(an introduction to cloud computing)




Friday, February 20, 2009
(an introduction to cloud computing)



                     • Computing on demand




Friday, February 20, 2009
(an introduction to cloud computing)



                     • Computing on demand
                     • Only pay for what you use




Friday, February 20, 2009
(an introduction to cloud computing)



                     • Computing on demand
                     • Only pay for what you use
                     • Monitoring



Friday, February 20, 2009
(an introduction to cloud computing)



                     • Computing on demand
                     • Only pay for what you use
                     • Monitoring
                     • Provisioning


Friday, February 20, 2009
(an introduction to cloud computing)



                     • Computing on demand
                     • Only pay for what you use
                     • Monitoring
                     • Provisioning
                     • Discovery

Friday, February 20, 2009
(an introduction to cloud computing)



                     • Computing on demand
                     • Only pay for what you use
                     • Monitoring
                     • Provisioning
                     • Discovery
                     • Questions?
Friday, February 20, 2009
The Future is in the
                               Background

                     • Web serving processes need a fast
                            turnaround, users won’t wait
                     • Don’t want to tie-up processes with slow
                            stuff




Friday, February 20, 2009
Friday, February 20, 2009
Nanite



Friday, February 20, 2009
Nanite

                            Ezra Zygmuntowicz



Friday, February 20, 2009
Nanite is:
                    “Nanite is a new way of thinking about building cloud
                      ready web applications. Having a scalable message
                    queueing back-end with all the discovery and dynamic
                    load based dispatch that Nanite has is a very scalable
                        way to construct web application back-ends.”




Friday, February 20, 2009
The interesting bits

                     • Scaleable back-end
                     • Message queueing
                     • Discovery
                     • Load based dispatch (by default)

Friday, February 20, 2009
Technical stuff

                     • RabbitMQ + AMQP
                     • Ruby
                     • Can send data JSON, Marshalled or YAML


Friday, February 20, 2009
Architecture




Friday, February 20, 2009
AMQP


                            We could talk AMQP directly but…




Friday, February 20, 2009
AMQP




Friday, February 20, 2009
Installation
                     • RabbitMQ
                      • Erlang
                      • RabbitMQ
                     • Nanite
                      • Ruby (Duh)
                      • AMQP & ezmobius-nanite
Friday, February 20, 2009
Setup

                     • git clone git://github.com/ezmobius/
                            nanite.git
                     • cd nanite
                     • sudo ./examples/rabbitconf.rb


Friday, February 20, 2009
Agent structure




Friday, February 20, 2009
Actors
                            simple.rb




Friday, February 20, 2009
Agent + Actors




Friday, February 20, 2009
Starting up an agent

               $ cd /path/to/agent_directory
               $ /var/lib/gems/1.8/bin/nanite-agent -t fred -f json -ldebugquot;




Friday, February 20, 2009
Mappers




Friday, February 20, 2009
Mappers




Friday, February 20, 2009
Let’s try it out




Friday, February 20, 2009
FIN



Friday, February 20, 2009
Resources


                     • http://willj.net/…



Friday, February 20, 2009
Next Month


                     • Social meetup, want to talk?
                     • Thursday16th April: Ashley Moran - From
                            Specification to Success, a talk on BDD




Friday, February 20, 2009

Más contenido relacionado

Similar a Nanite (And An Introduction To Cloud Computing)

CouchDB to the Edge ApacheCon EU
CouchDB to the  Edge ApacheCon EUCouchDB to the  Edge ApacheCon EU
CouchDB to the Edge ApacheCon EU
Chris Anderson
 
Icon Homepage 2009
Icon Homepage 2009Icon Homepage 2009
Icon Homepage 2009
jackp
 
Ed Byrne Ucd Presentation 27 Jan 2009
Ed Byrne   Ucd Presentation   27 Jan 2009Ed Byrne   Ucd Presentation   27 Jan 2009
Ed Byrne Ucd Presentation 27 Jan 2009
Ed Byrne
 
Kellogg HTC Platforms
Kellogg HTC PlatformsKellogg HTC Platforms
Kellogg HTC Platforms
Kari Wilson
 
Portlets
PortletsPortlets
Portlets
ssetem
 

Similar a Nanite (And An Introduction To Cloud Computing) (20)

Webhooks - glue for the web
Webhooks - glue for the webWebhooks - glue for the web
Webhooks - glue for the web
 
Investing in open source hw
Investing in open source hwInvesting in open source hw
Investing in open source hw
 
Howdah
HowdahHowdah
Howdah
 
Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Howdah - An Application using Pylons, PostgreSQL, Simpycity and ExceptableHowdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
Howdah - An Application using Pylons, PostgreSQL, Simpycity and Exceptable
 
CouchDB to the Edge ApacheCon EU
CouchDB to the  Edge ApacheCon EUCouchDB to the  Edge ApacheCon EU
CouchDB to the Edge ApacheCon EU
 
Why Architecture Matters
Why Architecture MattersWhy Architecture Matters
Why Architecture Matters
 
Icon Homepage 2009
Icon Homepage 2009Icon Homepage 2009
Icon Homepage 2009
 
IT Depends: Custom vs Packaged Software
IT Depends: Custom vs Packaged SoftwareIT Depends: Custom vs Packaged Software
IT Depends: Custom vs Packaged Software
 
PHP vs. Ruby on Rails
PHP vs. Ruby on RailsPHP vs. Ruby on Rails
PHP vs. Ruby on Rails
 
Ed Byrne Ucd Presentation 27 Jan 2009
Ed Byrne   Ucd Presentation   27 Jan 2009Ed Byrne   Ucd Presentation   27 Jan 2009
Ed Byrne Ucd Presentation 27 Jan 2009
 
eIFL General Assembly
eIFL General AssemblyeIFL General Assembly
eIFL General Assembly
 
Monitor Your Business V2
Monitor Your Business V2Monitor Your Business V2
Monitor Your Business V2
 
Kellogg HTC Platforms
Kellogg HTC PlatformsKellogg HTC Platforms
Kellogg HTC Platforms
 
GTD - Timemanagement and an intro to Getting Things Done
GTD - Timemanagement and an intro to Getting Things DoneGTD - Timemanagement and an intro to Getting Things Done
GTD - Timemanagement and an intro to Getting Things Done
 
Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1Best Practices in Migrating to MySQL - Part 1
Best Practices in Migrating to MySQL - Part 1
 
Mac vs PC
Mac vs PCMac vs PC
Mac vs PC
 
GWT Overview And Feature Preview - SV Web JUG - June 16 2009
GWT Overview And Feature Preview - SV Web JUG -  June 16 2009GWT Overview And Feature Preview - SV Web JUG -  June 16 2009
GWT Overview And Feature Preview - SV Web JUG - June 16 2009
 
No Really, It's All About You
No Really, It's All About YouNo Really, It's All About You
No Really, It's All About You
 
fingertips
fingertipsfingertips
fingertips
 
Portlets
PortletsPortlets
Portlets
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Nanite (And An Introduction To Cloud Computing)

  • 1. NWRUG February 2009 Sponsored by Engine Yard Friday, February 20, 2009
  • 2. Vertebra Nanite (and an introduction to cloud computing) Will Jessop Friday, February 20, 2009
  • 4. Vertebra? • Wasn’t working in time to write this… • …seen in use on Engine Yard nodes • Actively developed, improving Friday, February 20, 2009
  • 5. (an introduction to cloud computing) What is it? (Discuss) Friday, February 20, 2009
  • 7. My definition Cloud computing means taking the resources you need for a computing task at the time you need it from a pool of available processing capacity. Friday, February 20, 2009
  • 8. What does that really mean? • Provision the minimum amount of processing capacity you need • Add more processing capacity as needed Friday, February 20, 2009
  • 10. Why compute in the cloud? • Servers cost money to run, even when idle • Demand for capacity can peak Friday, February 20, 2009
  • 11. Why compute in the cloud? • Servers cost money to run, even when idle • Demand for capacity can peak Oh yes, it can: Friday, February 20, 2009
  • 14. Doing it right • Monitoring • Provisioning • Discovery Friday, February 20, 2009
  • 15. Doing it right • Monitoring • Provisioning • Discovery Friday, February 20, 2009
  • 17. Botnets of infected windows machines running eggdrop (or similar), an IRC server and a 1337 h4x0r Friday, February 20, 2009
  • 18. (an introduction to cloud computing) Friday, February 20, 2009
  • 19. (an introduction to cloud computing) • Computing on demand Friday, February 20, 2009
  • 20. (an introduction to cloud computing) • Computing on demand • Only pay for what you use Friday, February 20, 2009
  • 21. (an introduction to cloud computing) • Computing on demand • Only pay for what you use • Monitoring Friday, February 20, 2009
  • 22. (an introduction to cloud computing) • Computing on demand • Only pay for what you use • Monitoring • Provisioning Friday, February 20, 2009
  • 23. (an introduction to cloud computing) • Computing on demand • Only pay for what you use • Monitoring • Provisioning • Discovery Friday, February 20, 2009
  • 24. (an introduction to cloud computing) • Computing on demand • Only pay for what you use • Monitoring • Provisioning • Discovery • Questions? Friday, February 20, 2009
  • 25. The Future is in the Background • Web serving processes need a fast turnaround, users won’t wait • Don’t want to tie-up processes with slow stuff Friday, February 20, 2009
  • 28. Nanite Ezra Zygmuntowicz Friday, February 20, 2009
  • 29. Nanite is: “Nanite is a new way of thinking about building cloud ready web applications. Having a scalable message queueing back-end with all the discovery and dynamic load based dispatch that Nanite has is a very scalable way to construct web application back-ends.” Friday, February 20, 2009
  • 30. The interesting bits • Scaleable back-end • Message queueing • Discovery • Load based dispatch (by default) Friday, February 20, 2009
  • 31. Technical stuff • RabbitMQ + AMQP • Ruby • Can send data JSON, Marshalled or YAML Friday, February 20, 2009
  • 33. AMQP We could talk AMQP directly but… Friday, February 20, 2009
  • 35. Installation • RabbitMQ • Erlang • RabbitMQ • Nanite • Ruby (Duh) • AMQP & ezmobius-nanite Friday, February 20, 2009
  • 36. Setup • git clone git://github.com/ezmobius/ nanite.git • cd nanite • sudo ./examples/rabbitconf.rb Friday, February 20, 2009
  • 38. Actors simple.rb Friday, February 20, 2009
  • 39. Agent + Actors Friday, February 20, 2009
  • 40. Starting up an agent $ cd /path/to/agent_directory $ /var/lib/gems/1.8/bin/nanite-agent -t fred -f json -ldebugquot; Friday, February 20, 2009
  • 43. Let’s try it out Friday, February 20, 2009
  • 45. Resources • http://willj.net/… Friday, February 20, 2009
  • 46. Next Month • Social meetup, want to talk? • Thursday16th April: Ashley Moran - From Specification to Success, a talk on BDD Friday, February 20, 2009

Notas del editor

  1. - Well welcome everybody to the first talk in a while for NWRUG! We’ve got more planned and I hope people will come along for the social meetups when there are no talks. - We have sponsorship this month from EngineYard, free pizzas and drinks, T-shirts. Full-disclosure, I work for engineyard. - No food or drinks in the auditorium, please leave the building in the same state you found it.
  2. - Talking about Nanite today, and cloud computing, it’s related (why) - If this looks familiar it’s because I had the same problems George Palmer had when doing his talk at RubyManor - transition
  3. - But that’s OK, Vertebra is getting there and Nanite is cool
  4. - So, Why not Vertebra? - wasn’t working in time - however, seen on EY nodes, actively developed - Might do a talk on it at some point - unless someone else gets there first (hint) - On to the first part of the talk, cloud-computing
  5. - so what is it? - Ask for volunteer descriptions of cloud-computing.
  6. - I came up with this description myself - Seems to be no solid definition - Some use the term to refer to the internet itself, but that already has a name - Could even apply to the use of APIs
  7. - smooth transition
  8. - old-school provisioning, had to provision for maximum resource requirement (users in the case of web-apps) - during slack periods unused capacity wastes money, idle servers - cloud-computing for me means only dipping into my beer-fund when necessary
  9. - OK, this should be fairly obvious by now - go through points -- transition - At EY we see both expected (time-of-day) and unexpected bumps
  10. - Best example I have seen - mongrel queue hit ~1000 - Fixed by adding 2xCPUs per VM and more memory. Client added some cacheing.
  11. - One more just for fun (can’t resist pretty graphs). - Can’t remember the exact circumstances, but it’s pretty :)
  12. - So we have an idea what it is, and why you would do it, but how? - Doing it right, there’s no hard-and-fast point at which you are ‘cloud-computing’ - At what point does computing in the cloud stop being cloud-computing when provisioning takes too long? - Could be dependent on the situation, ‘in time’ - Discovery. You don’t have to do this, you can configure everything yourself. Slows you down. - Talk about discovery.
  13. - Just for fun, what’s the earliest use of cloud-computing anyone can think of? - wait for answers then transition - Good discovery, easy provisioning (thanks Microsoft!)
  14. - conclusion, iterate over points
  15. - conclusion, iterate over points
  16. - conclusion, iterate over points
  17. - conclusion, iterate over points
  18. - conclusion, iterate over points
  19. - conclusion, iterate over points
  20. - So what does this have to do with Nanite? - Background processing is getting more important, web-apps are doing more, more processing power needed - Website users get bored easily, they go somewhere else. - Image transformations, Amazon S3 uploads, Email sending etc. all takes time. - We move the heavy lifting out of the front-end process, freeing it up. - Want to remain scalable
  21. - So, on to Nanite! - project started by Ezra, Open source, on github, under active development
  22. - So, on to Nanite! - project started by Ezra, Open source, on github, under active development
  23. So what is it? - As described in the README - A bit wordy, but a pretty good description It really is: - Nanite is a background processing system, like Dj, Bj or BackgroundRb but on crack (explain) - Allows you to shunt off work synchronously or asynchronously to back-end runners - Written in Ruby, basically an abstraction of AMQP
  24. - Scaleable, multiple rabbitMQ back-ends can be run - Jobs can be put on the queue for running now or later - Discovery. Agents advertise mappers, mappers can get a list of available agents and actions - load-based dispatch, discuss
  25. - Though any AMQP compliant queue should do
  26. - RabbitMQ is the queue, it talks AMQP - An Agent is a single process, it advertises multiple actors - mapper is just a fancy name for the client that sends work and maybe received results - Agents report there status by default every 15 seconds, mappers track the state of all nanites removing those that have not checked in within a timeout. - Mappers send data to agent chosen using a fitness function. Default is least loaded (using uptime), but others are available as i’ll show you.
  27. - Or at least we can get a lot of power by using an abstraction - so we use nanite
  28. - Or at least we can get a lot of power by using an abstraction - so we use nanite
  29. - Really easy on debian - just follow the instructions on the nanite github page
  30. - Sets up the queues and users in rabbitMQ - Only needs to be done once. - To process any jobs you then need an agent (transition)
  31. - We will run nanite-actor in this directory discuss
  32. - Simple, just stick in the actors directory - by default all methods exposed, can explicitly expose with ‘expose’ method
  33. - The agent + actors do the work
  34. - From the command line - I am starting these using a bask wrapper from monit, works well.
  35. - Mappers are the clients for agents/actors - Just code
  36. - this is where the mappers fit into the architecture
  37. - Let’s attempt to summon the god of FAIL by doing a live-action demo
  38. I am going to put up a blog post probably tomorrow with all the relevant links available.