Just as we have shown that cloud computing is a natural extension of current trends and best practices, the same is true when viewing cloud computing from an architectural perspective. Again, cloud computing is nothing new, yet in its implementation, it changes everything that we do.



Changing approaches to architecture
In the 1990s, the conversation was on how to decompose an application into its various components and then how to deploy those components on separate servers in order to optimize non-functional requirements including scalability, availability, manageability, and security. Today, we are maintaining a decomposed application architecture while actually deploying onto a consolidated architecture that uses virtualization.

Cloud computing continues this trend by providing a way to programmatically deploy application architectures, finally delivering on the promise of a dynamic datacenter. With cloud computing, efficiency is highly valued; if it can’t be done quickly and programmatically, it probably isn’t an application that is suited to the model.



Changing application designs
In the past, applications were built to handle larger workloads through vertical scaling. Put more processors and memory on a mail server to handle a larger volume of traffic. Scale up a database server to increase throughput. Run high-performance computing jobs on a supercomputer.

The movement away from highly scalable symmetric multiprocessors and toward less expensive, but less scalable x86-architecture servers has influenced application design. Rather than expecting applications to run on highly scalable servers, developers have been refactoring their applications so that they can scale horizontally across a number of servers. This application refactoring is not always easy, as both applications and their data must be designed so that both processing and data can be factored into smaller chunks. This existing architectural trend has been a key factor propelling the adoption of cloud computing. Examples of this trend include:

High-performance computing
HPC workloads have been running on bare-metal compute grids for some time now, enabled by application refactoring. For example, scientists have found ways to chunk down data for applications such as 3D climate modeling so that it can be spread across a large number of servers. Grid computing is a predecessor to cloud computing in that it uses tools to provision and manage multiple racks of physical servers so that they all can work together to solve a problem. With its high compute, interprocess communication, and I/O demands, HPC workloads are good candidates for clouds that provide infrastructure as a service, specifically bare-metal servers or Type I virtual machines that provide more direct access to I/O devices.

Database management systems
Database management systems have adapted to run in cloud environments by horizontally scaling database servers and partitioning tables across them. This technique, known as sharding, allows multiple instances of database software — often MySQL software — to scale performance in a cloud environment. Rather than accessing a single, central database, applications now access one of many database instances depending on which shard contains the desired data.

CPU-intensive processing
Applications that perform activities such as frame rendering have been designed so that, rather than creating a new thread for each frame, they create a separate virtual machine to render each frame, increasing performance through horizontal scaling.

Data-intensive processing
Generalized tools are being developed by the open source community that assist in the processing of large amounts of data and then coalesce the results up to a coordinating process. Hadoop, for example, is an open source implementation of the MapReduce problem that integrates the deployment of ‘worker’ virtual machines with the data they need.

Source of Information : Introduction to Cloud Computing architecture White Paper 1st Edition, June 2009

0 comments


Subscribe to Developer Techno ?
Enter your email address:

Delivered by FeedBurner