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 Johan Strandler on Sep 19, 2007
A software architects work is much about reducing complexity. But at some level complexity is unavoidable due to the simple fact that the real world actually is complex. What to do then? Sean McGrath shared some of his thoughts on how to manage unavoidable complexity in the problem domain through what he calls a "Combinatorical Enterprise Architecture", which basically means to identify the key patterns of behavior within the problem domain chaos, and combine them into a more simplistic "pseudo-chaos". Based on his practical experience with EAI projects, McGrath describes his way to define an Enterprise Architecture in a series of steps:
This ends up in what Sean McGrath calls a "Combinatorical Architecture":
The essence of it is boiling down problem domain chaos into the pseudo-chaos exhibiting by a combinatorical explosion of key patterns joined together in different ways. When it works, the chaos of the real world will only appear truly complex if you cannot see the pattern combinations underneath. Once you see the pattern combinations, the complexity melts away and the underlying simplicity is revealed...
It is those delicious moments - when the simplicity of pattern combinatorics replaces unruly complexity - that make enterprise architecture such a rewarding activity.
What do you think about this approach?
Requirements, quality and test management e-Kit
Architectures You've Always Wondered About @QCon New York
The WebSphere Liberty Profile for Developers: An Introduction
Introduction to WebSphere Liberty Profile
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
Is this approach saying that the key to simplifying enterprise architecture is to model the real world's patterns?
If so, I find this a bit simplistic - since we are talking about an entire enterprise with possibly hundreds, if not thousands of projects....
What you are describing is exactly how complexity is weaved in nature. In nature, few simple entities colloborate and interact in complex ways to create entities with interesting and complex behaviour. Not surprisingly, elegant and well designed software architecture has similar characteristic.
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