Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Pat Eyler on Nov 15, 2006
The Nitro/Og team recently released version 0.40.0 of their web development framework and ORM. Nitro and Og are a less well known alternative to Ruby on Rails (and its ORM, Active Record) that bear looking into.
I asked George Moschovitis what he thought Nitro and Ogs biggest strengths are and he said, "Totally transparent web/db development. Creating a web or db application is like creating a standard ruby application."
George also provided a couple of quick examples. For Nitro:
class HelloWorld
def index
print "hi"
end
def hello
"hello world"
end
def math(val1, val2)
print "The sum is #{val1} + #{val2}"
end
end
Nitro.start(HelloWorld)
And for Og:
class Article
is Timestamped
is Taggable
attr_accessor :title, String
attr_accessor :body, String
attr_accessor :hits, Fixnum
belongs_to :category
end
class Category
has_many :articles
end
Og.start
Og represents a pretty big departure from the ActiveRecord model that a lot of developers are used to. It maps Ruby objects to sql tables (non-sql too, if you'd rather go that way) instead of the other way round. In fact, Og will even create your DB tables for you transparently, if they don't already exist.
Nitro and Og have been around for about as long as Ruby on Rails, but they'e still not hit a 1.0 release. When I asked him about this, George explained:Please note that 0.40.0 is not 0.4.0. There were 40 revisions, after 0.9.0 we got to 0.10.0, not 1.0.0. Kind of like there is gnome 2.16.0 instead of 3.0.0
But, it is true that the community is much slower, and the fact that I as the main developer had to finish with my army service (Just finished 1 week ago, that is why you see this new release ;-))
But the community is getting stronger and I hope we will tackle Nitro's biggest problem, lack of documentation.
Nitro and Og represent a different way of doing web development with Ruby. Do yourself a favor and go check them out. Even if you don't become a convert it will help you think about how you use Ruby and Ruby on Rails.
RDBMS to NoSQL: Managing the Transition
Introduction to WebSphere Liberty Profile
Tools to unit test your JavaScript
The WebSphere Liberty Profile for Developers: An Introduction
With the current exposure of RoR, I am wondering what chances Nitro/Og has. I have heard really good things about it, but it may be missing the "guerilla marketting" around RoR.
./alex
--
:Architect of InfoQ.com:
.w( the_mindstorm )p.
Co-founder of InfoQ.com
If only the templates weren't custom. I've never understood why Nitro didn't just use erb.
Still, there's a lot of things about Nitro/Og I like a lot.
Sam, it would be great to let us know what are at least the top 5 things you like about Nitro/Og, so that others will understand its benefits.
TIA,
./alex
--
:Architect of InfoQ.com:
.w( the_mindstorm )p.
Co-founder of InfoQ.com
erb is not XML compatible, that was the main reason for George. The custom templates can be a validated with xml tools, which is a plus.
The custom templates also nicely precompile to pure ruby code, which makes them fast.
Downside... well, one has to learn another type of syntax, which is like a hybrid between IOWA, PHP and pure Ruby.
Well, at least it's flexible, which is why Nitro is so cool.
I'm not Sam, but ...
Things I like about Og/Nitro:
* I can focus on Ruby objects, not database tables
* My apps can seamlessly evolve from a single static HTML page to fully-dynmaic, databased-backed Web apps
That's it. 2, not 5, things. But it can make all the difference; you need to pick the right tool for the job, and know how to make the best use of the various Ruby Web toolkits.
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
5 comments
Watch Thread Reply