"NEBULA is a Cloud Computing environment developed at NASA Ames Research Center, integrating a set of open-source components into a seamless, self-service platform. It provides high-capacity computing, storage and network connectivity, and uses a virtualized, scalable approach to achieve cost and energy efficiencies."
The Services page has some nice architectural diagrams. I wasn't surprised to see that their VM enviroment is managed via Eucalyptus. I also shouldn't have been surprised by the large number of Python modules and applications they're using, especially on the client side. Pretty much all the frontend applications are Python bindings for the various backend technologies they're using (such as LUSTRE, RabbitMQ, Subversion). Of course Trac is there too.
But the most interesting thing for Python fans will be undoubtedly their selection for the Web application framework. Maybe again unsurprisingly, they chose...Django:
"After an extensive trade study, the NEBULA team selected Django, a python-based web application framework, as the first and primary application environment for the Cloud. NEBULA users have access to an extensive collection of open-source django "apps", providing features ranging from simple blogs, wikis, and discussion forums, to more advanced collaboration suites, image processing, and more."
Other interesting tidbits from those diagrams:
- deployments are automated with Fabric
- distributed automated testing is done with Selenium Grid
- continuous integration is done with CruiseControl
- for the database backend, they use a MySQL cluster with DRBD
- for the file system they use LUSTRE
- queuing is done with RabbitMQ (which is written in Erlang)
- search and indexing is done with SOLR
Thanks for the write-up! I should update that architectural model a bit; for instance, we're currently testing Bitten (a CI framework sitting on top of Trac) as an alternatively to CruiseControl.
They also use DRBD for Lustre, to eliminate all single points of failure. A very cool project.
Post a Comment