Nanite (And An Introduction To Cloud Computing)
by will_j on Feb 20, 2009
- 4,899 views
Accessibility
Categories
Upload Details
Uploaded via SlideShare as Apple Keynote
Usage Rights
© All Rights Reserved
Statistics
- Likes
- 10
- Downloads
- 140
- Comments
- 0
- Embed Views
- Views on SlideShare
- 4,880
- Total Views
- 4,899
- 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.
- If this looks familiar it’s because I had the same problems George Palmer had when doing his talk at RubyManor
- transition
- 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
- Ask for volunteer descriptions of cloud-computing.
- 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
- during slack periods unused capacity wastes money, idle servers
- cloud-computing for me means only dipping into my beer-fund when necessary
- go through points
-- transition
- At EY we see both expected (time-of-day) and unexpected bumps
- mongrel queue hit ~1000
- Fixed by adding 2xCPUs per VM and more memory. Client added some cacheing.
- Can’t remember the exact circumstances, but it’s pretty :)
- 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.
- wait for answers then transition
- Good discovery, easy provisioning (thanks Microsoft!)
- 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
- project started by Ezra, Open source, on github, under active development
- project started by Ezra, Open source, on github, under active development
- 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
- 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
- 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.
- so we use nanite
- so we use nanite
- just follow the instructions on the nanite github page
- Only needs to be done once.
- To process any jobs you then need an agent (transition)
discuss
- by default all methods exposed, can explicitly expose with ‘expose’ method
- I am starting these using a bask wrapper from monit, works well.
- Just code