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 Lee Ackerman on Jul 14, 2011
Private clouds, a cloud computing approach taken and applied within the boundaries of an enterprise, continue to grow in popularity. Private clouds offer a number of appealing benefits to an organization including higher utilization of existing server resources, improved manageability, pay as you go, and self-service.
This roundup provides a high-level view of some of the key ingredients for creating a private cloud solution.
As typical within any IT solution, there continues to be hype and promotion around private cloud tooling and runtimes. Can we trust an approach where “hype” is part of the runtime name?
Separating fact from fiction can be difficult when determining which approach to take, which runtime to select and what tools to use. One resource to watch is the Cloud Standards Customer Councilʼs Case Study Competition. The Cloud Standards Customer Council is managed by the Object Management Group in partnership with BPtrends. The council was initiated by a host of companies including CA, IBM, Rackspace, Software AG and others.
The scope of the competition covers public, private and hybrid solutions – providing insights into business impact of cloud implementations. This input can be used to help decide on the right approach for your organization - perhaps a pure private cloud? A hybrid approach? Public only? Or avoid cloud altogether?
In creating a private cloud, it is important to have a strong foundation to build upon. A hypervisor, provides the runtime for virtual images and is a key component of this foundation. There are many choices available for hypervisors from both commercial and open source providers. Some of the commercial choices include: Microsoft HyperV, VMWare vSphere, Oracle VM, and IBM PowerVM.
The open source community provides a number of hypervisors as well, including Xen and KVM. (A much larger list of hypervisors and platform differences is available at Wikipedia). In addition to open source offerings at the hypervisor level, Eucalyptus, OpenStack and OpenNebula provide additional support for building and managing private clouds. An interesting aspect of Eucalyptus is that it supports creation of an Infrastructure as a Service private cloud that is accessible through an Amazon EC2 and Amazon S3 compatible API.
When deciding on a hypervisor, market share is a poor metric to use as a deciding factor. Many hypervisors are included as part of operating systems leading to inflated measurements. Some useful evaluation criteria include:
One more piece to consider is how will virtual machine images be built? How sophisticated does the resulting image need to be? Simple backbox reuse with limited customization? Or is a more sophisticated approach needed, one that recognizes the components within the image and provides opportunities for customization? A good starting point is to consider reusing an image that has been prebuilt. VMWareʼs Virtual Appliance Marketplace provides a range of virtual images. If thereʼs a need to build an image, tools such as Oracle Virtual Assembly Builder and IBM Workload Deployer provide an advanced approach to creating virtual images. These tools have an understanding of key middleware components (web servers, application servers, caching components, databases, etc) and help to encourage the development of customized virtual machine images.
And last but not least, how do we determine the overall architecture of the solution? Are there best practices to be followed when designing a cloud solution? Cloud patterns - proven best practice solutions to known and recurring problems - are being identified, documented and shared. Some vendor specific resources include VMWare, Microsoft, and IBM Workload Deployer Patterns.
Reuse will play a big role in the success of private cloud. As it is still early days, it is too early to issue a verdict on the reuse approaches to date. Whether it is wholesale reuse of prebuilt images, specialized image creation tooling, or patterns - asset quality, quantity and accessibility will be key success factors.
Are you pursuing a cloud-based approach? Have you decided on a private cloud? What has been your experience in delivering a private cloud?
Identity and Access Management for Cloud Apps: A Buyer's Guide
Modeling Your Cloud Services Brokerage
Want to know how software releases can be stress-free and happen with one click? Try Go free!
Improving Software Delivery Cycles: Pre-requisites and Inhibitors
Go: Agile Release Management Solutions. Go enables predictable, defect-free and timely software releases.
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.
No comments
Watch Thread Reply