Dr. Dobb's Journal - February 2009 - (Page 16) d02moore_p3cp 12/11/08 2:00 PM Page 16 Strategic Vision by Dana Moore and John Hebeler Computing In the Clouds The Cloud concept in a nutshell Normally, clouds on the horizon are harbingers of bad weather. Not this time, however. Developers are likely to welcome the advent of cloud computing with open monitors, because cloud computing quite simply is a way for an application creator to abstract away some of the more challenging aspects of building rich, scalable Internet applications (RIAs). This includes business functionality such as purchase management, services such as databases and security, and critical nonfunctional requirements such as scalability and predictable performance. Cloud computing offers virtually unlimited, on-demand computing resources. Your applications now live in a new platform—a computing cloud. In the cloud, your applications take advantage of the seemingly limitless processor cycles, memory storage, and network bandwidth along with extensive software capabilities. Your applications only pay for what they use. Beyond basic computing resources, cloud computing offers a range of application services that form a new platform—an Internet operating system—suitable for costeffective, dynamic, and Internet-scale solutions. An Internet operating system offers the scale and services required to meet the requirements of a dynamic, global, software application. The basic idea behind cloud computing is similar to how we currently pay for electricity—you plug it in, it uses electricity, you pay for the electricity it uses. However, electricity is a straightforward commodity, and an Internet operating system is not. Vendors may choose to offer different grades of electricity, different levels of service, and the like. Currently there are no cloud standards that would let you take your application and plug it into a competing cloud offering. Additionally, the nascent nature of cloud computing encourages a level of experimentation by the various vendors to find the right balance of services, performance, and cost. This produces various implementations that offer different types of resources and services and significant changes. But don’t let these challenges stop you—there can be much to gain, even at this early entry point. When was the last time you could instantly grab dozens of computers, play with them, and then discard them for less than one dollar (or even for free)? Elasticity is the cloud’s true virtue. When a cloud-deployed application becomes busy, it merely acquires more resources. Correspondingly, when demand wanes, it drops the extra resources. This is a dramatic difference from the traditional approach. Traditionally, applications acquired the resources necessary to handle the peak. When demand was less than the peak, valuable resources sat idle. When demand exceeded the peak, the application 16 Dr. Dobb’s Journal l www.ddj.com l February 2009 failed, sometimes in ugly ways. We have all experienced the fun of receiving a timeout on a busy site, or programming to handle such situations. The elasticity offers a new, low-cost way to scale your application both up and down while paying for only what the application uses. This is especially beneficial to bursty-types of applications, such as sport sites or fledgling startups. The elasticity also enables new testing and demonstration scenarios. Imagine your demonstration, coolly employing the cloud to simulate millions of users. Imagine test scenarios that stretch the most determined tester. Franz used the cloud to test AllegroGraph (agraph.franz.com/ec2.lhtml ), its triple store product. This was done in two days at a cost of less than $200. The promise of cloud computing is all that and more. In addition to elasticity, cloud computing offers direct connections to valuable software. Clouds can hold more than just your software. They can hold other software including services such as databases but also third-party software. The direct connection overcomes the performance and latency issues that trouble distributed web services. This takes Web 2.0 mashup to a new, lower level where you can interact directly with underlying support abstractions, not simply exposed application layer APIs. Getting Into the Cloud Currently, you can create cloud applications through two major implementations: • Amazon Web Services (AWS). • Google Application Engine (GAE). Let's look at an example in each paradigm. In both cases, we’ll note the types of resources your application can acquire, how your application interfaces with the resources, and related resource services your application can use. We also note the costs and risks. First and foremost, the number one caveat you must consider at the current level of maturity of both approaches is that cloud implementations offer some great benefits, but also risks. Your application http://agraph.franz.com/ec2.lhtml http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - February 2009 Dr. Dobb's Journal - February 2009 Contents Friday Night Fish Fry Alia Vox Developer Diaries Conversations Computing in the Clouds Software Development in the Cloud Videos and Oracle Forms 10g Parallel LINQ Decoupling C Header Files Effective Concurrency Disciplined Agility Swaine’s Flames Dr. Dobb's Journal - February 2009 Dr. Dobb's Journal - February 2009 - (Page BB1) Dr. Dobb's Journal - February 2009 - (Page BB2) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page Cover1) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page Cover2) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page 1) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page 2) Dr. Dobb's Journal - February 2009 - Dr. Dobb's Journal - February 2009 (Page 3) Dr. Dobb's Journal - February 2009 - Contents (Page 4) Dr. Dobb's Journal - February 2009 - Contents (Page 5) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - February 2009 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - February 2009 - Alia Vox (Page 10) Dr. Dobb's Journal - February 2009 - Alia Vox (Page 11) Dr. Dobb's Journal - February 2009 - Developer Diaries (Page 12) Dr. Dobb's Journal - February 2009 - Developer Diaries (Page 13) Dr. Dobb's Journal - February 2009 - Conversations (Page 14) Dr. Dobb's Journal - February 2009 - Conversations (Page 15) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 16) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 17) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 18) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 19) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 20) Dr. Dobb's Journal - February 2009 - Computing in the Clouds (Page 21) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 22) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 23) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 24) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 25) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 26) Dr. Dobb's Journal - February 2009 - Software Development in the Cloud (Page 27) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 28) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 29) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 30) Dr. Dobb's Journal - February 2009 - Videos and Oracle Forms 10g (Page 31) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 32) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 33) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 34) Dr. Dobb's Journal - February 2009 - Parallel LINQ (Page 35) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 36) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 37) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 38) Dr. Dobb's Journal - February 2009 - Decoupling C Header Files (Page 39) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 40) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 41) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 42) Dr. Dobb's Journal - February 2009 - Effective Concurrency (Page 43) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 44) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 45) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 46) Dr. Dobb's Journal - February 2009 - Disciplined Agility (Page 47) Dr. Dobb's Journal - February 2009 - Swaine’s Flames (Page 48) Dr. Dobb's Journal - February 2009 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - February 2009 - Swaine’s Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.