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 Jenni Konrad on Jun 23, 2011
In a recent Microsoft webinar, Brian Prince, Senior Architect Evangelist, and Nathan Totten, Technical Evangelist, presented several options for scaling ASP.NET applications hosted on Windows Azure.
The presenters noted that these options can be used in any combination to scale applications either up or down. They fall under a few broad categories: caching, traffic distribution, asynchronous work processing, and storage. Prince and Totten recommend using some combination of the following for scaling up an ASP.NET application:
Increase the number of Azure instances
Like adding virtual servers, this is the simplest way to distribute load.
Add Table or Blob Storage
Table Storage is schema-less and non-relational, but more scalable than SQL Azure. According to Totten, Table Storage can handle about 500 requests per second per partition. Blob Storage is a non-structured option, and can be useful for larger files.
Add AppFabric Caching
AppFabric is used for in-memory caching of frequently-accessed data, and can also serve as a session state provider.
Use an asynchronous work process
The Azure Queue sends messages to background processes known as 'worker roles'. This would be an appropriate setup for handling shopping carts or file uploads; the business logic is processed in the background to improve performance on the front-end. Queues are limited in size, but can be combined with Table and Blob Storage.
Offload static or semi-static content to the Azure Content Delivery Network
According to the presenters, Windows Azure Content Delivery Network (CDN) currently has 26 nodes worldwide, and more are being added regularly. Distributing static data (or data that’s refreshed less often) to the CDN could improve performance for the user, since it will be delivered from the nearest datacenter.
Take advantage of Traffic Manager
The Windows Azure Traffic Manager is similar to the CDN, but rather than storing content, it hosts the entire application in multiple locations for better availability worldwide. The Traffic Manager can also be used in a failover system in case the primary instance isn’t available.
Prince and Totten note that solid initial application design will always be the key to good performance, but that Windows Azure's aim is to make it possible to scale applications up and down easily as an organization’s needs dictate.
Visual Studio vNext: ALM features for Agile Planning, Team Collaboration
Troubleshoot Java/.NET performance while getting full visibility in production
RDBMS to NoSQL: Managing the Transition
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