Dr. Dobb's Journal - February 2009 - (Page 14) d02Conver_p2db 12/11/08 1:09 PM Page 14 Conversations by Jonathan Erickson Inside Cloud Computing Lori MacVittie is technical marketing manager for application services at F5 Networks. She can be contacted at l.macvittie@f5.com. DDJ: Lori, you can’t turn around these days without hearing “cloud computing” So what is . cloud computing? Is it the same old stuff with a new wrapper? LMV: Cloud computing is a deployment model leveraged by IT to reduce infrastructure costs and/or address capacity/scalability concerns. It is the infrastructure and model of deployment that defines whether something is or is not cloud computing. Cloud computing is about how an application or service is deployed and delivered. But that definition can be problematic because when we talk about how, we often tend to get prescriptive and start talking in absolute checklists. With a fluid concept like cloud computing, that doesn’t work. There’s just not one single model or architecture you can definitively point to and say, “We are doing that, ergo we are doing cloud computing.” In a nutshell, cloud computing is a deployment model leveraging on-demand computing to scale and serve applications through a shared resource model. Whether it uses virtualization or proprietary technology to achieve a shared, on-demand provisioning model is not important as the details are supposed to be abstracted for the user (the developer/administrator) in cloud computing. DDJ: Are there different types of clouds? LMV: There’s a fairly lengthy debate about this going on right now, but I’m inclined to say yes there are. There are public clouds like Amazon and Microsoft, and there are going to be private clouds as well. Because cloud computing is concerned with how applications and infrastructure resources are provisioned and delivered, location is really irrelevant in determining whether an architecture is or is not a cloud. There is also differentiation between cloud models; some are based heavily on virtualization and you deploy applications by pushing a virtual image of your application and its environment into the cloud using web services. Others provide platforms upon which you develop the application and which are then packaged up and provisioned on-demand through the provider’s custom environment. To add to the confusion, there are clouds focusing on application scalability and other clouds whose purpose is solely “infrastructure for hire” in which hardware resources are leased out to customers on an on-demand basis in what is more of a traditional outsourced hosting model than it is cloud computing. DDJ: Scalability is an issue in all kinds of software development and computing. Does this include cloud computing? LMV: Absolutely. There are basically two different kinds of scalability: horizontal and vertical. Horizontal scalability means the application can serve many concurrent users, which is easy and one of the benefits of cloud computing. That’s the job of load balancing and application delivery solutions and should be taken care of by the cloud. Then there’s vertical scalability, which means that the application continues to perform consistently as load increases, and that’s just not something the cloud provides. For example, a single database table or SQL query that is poorly constructed can destroy vertical scalability and actually increase the cost of deploying in the cloud. Because you generally pay on a resource basis, if the application isn’t scaling up well it will require more resources to maintain performance levels and thus cost a lot more. Cloud computing isn’t going to magically optimize code or database queries or design database tables with 14 Dr. Dobb’s Journal l www.ddj.com l February 2009 performance in mind, that’s still squarely in the hands of the developers regardless of whether or not cloud computing is used as the deployment model. In fact, it’s in the cloud computing provider’s financial interest to not worry about vertical scalability, which means it’s important to ensure applications are as optimized as possible before deploying them into the cloud. DDJ: What about security when it comes to cloud computing? LMV: That’s a good question, and one no one has a good answer to except that it better be very secure before people are willing to move critical applications into it. Digging in, it’s a very scary scenario when you consider that shared resources necessarily mean shared security risks. A single piece of hardware or a hypervisor that ends up infected with malware or keyloggers or is otherwise compromised can potentially affect every application that shares its resources. Cloud computing providers are likely to find themselves the target of a lot of attack vectors, both old and new, as the bad guys attempt to exploit one hole in the hopes of obtaining access to many applications, so this is a real concern. Secure coding is an absolute requirement for cloud computing (any computing model, really), as is a wide variety of application and network layer security in the cloud computing infrastructure. Secure coding practices are the best way to prevent exploits of application logic and unauthorized access while firewalls, web application firewalls, network (IP) and transport layer (TCP) security solutions are all necessary to prevent as many attacks as possible from penetrating the outer rim of the cloud. Secure remote access technologies further secure legitimate access to applications and services in the cloud, allowing for more sensitive applications to execute in the cloud and be accessed from anywhere while protecting the communication. DDJ 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.