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 Abel Avram on Feb 04, 2011
ThoughtWorks has issued the January 2011 edition (PDF) of their Technology Radar, a document meant to indicate current software technology trends in a concise form.
This edition of the Technology Radar (PDF) periodically issued by ThoughtWorks does not show the movement of items from where they appeared in the last edition of the radar, the document focusing more on new technologies. The radar contains 4 quadrants, one for each of the following categories: Techniques, Tools, Platforms and Languages. Each quadrant is further divided in 4 zones, Adopt, Trial, Assess, and Hold, each suggesting what to do with the respective technology.
Techniques
Several new techniques are recommended to be tried, several being Agile practices. Categorization & prioritization of technical debt, defined as “assigning value and prioritizing debt payback in an analogous way to user stories”. Acceptance test of journeys refers to testing journeys not user stories. Journeys are groups of user stories interacting with each other. Automate database deployment is meant to make sure that the process of deploying a database and/or application changes is fully automated. Progressive Enhancement is a “web design strategy that uses layers of web technologies to build a compelling user experience”. Concurrency abstractions and patterns are meant to deal with concurrency issues in today’s computing, the authors recommending the models found in Clojure, Erlang, Retlang and Event Patterns. Also on the list of to-be-tried techniques is DevOps, a movement intended to bring harmony between the development and operations teams.
An addition to the assess group is Smart Systems which are smartphones or similar devices.
Scrum Certification and Database-based Integration have been put on hold.
Tools
An new appearance in the tools quadrant is Infrastructure as code defined as “an approach whereby infrastructure configuration is scripted or described by files that are stored in version control, and changes are pushed out to the datacenter in a controlled manner.” This technique is recommended to be adopted using the following two open source textual DSLs: Chef and Puppet.
Another new appearance in this quadrant, but in the Trial zone, is Splunk, a log file analyzer useful to system administrators.
In the Assess zone have appeared three tools not mentioned before. Deltacloud is a REST-based API for managing multiple IaaS clouds such as Amazon EC2, GoGrid, Rackspace, and others. Vagrant is a tool for building and distributing virtualized development environments based on Oracle’s VirtualBox and Chef or Puppet. WCF HTTP, an API for building HTTP services, gets an early inclusion in this zone due to “the ability for the community to steer the development of this part of the .NET platform”.
ESB is on hold in this category.
Languages
The languages recommended for adoption are the same as in the previous radar published in August 2010, namely Ruby, JRuby, C# 4.0, and JavaScript.
There are four new appearances in the trial zone: HTML5, Scala, HAML, and “SASS, SCSS, and LESS”. While the first two languages are generally known, the last two come as a surprise. HAML is “a language that allows you to use indentation to lay out the structure of HTML”, being useful when establishing the tag hierarchy. SASS, SCSS, and LESS are extensions of CSS promising an easier job of styling web pages.
Platforms
There are many new additions to the platforms quadrant. KVM, a virtualization solution, and Atom, a publishing standard and protocol, are suggested for adoption. Heroku, a “beautifully simple” PaaS, iPad and other tablets, and Mobile Web are recommended to be tried. GPGPU – general-purpose processing on GPU, Node.js – event driven IO framework, vFabric – VMware’s PaaS, and OpenStack – an open source “operating system” for the cloud - are recommended for assessment.
WS-*, GWT and RIA have been put on hold.
Introducing SQLFire: a memory-optimized, high performance SQL database
Deliver quality code quicker with "Go" Agile release management
RDBMS to NoSQL: Managing the Transition
VMware vFabric SQLFire - Test drive the data management system with memory speed, horizontal scalability and a familiar SQL interface
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.
2 comments
Watch Thread Reply