Cloud Computing: Opportunities and Challenges
Cloud computing is one of today’s most-discussed technical topics. Despite the relative decline of grid computing and unfulfilled promises of utility computing, cloud computing appears to be catching on in both industry and academia. Compared to its predecessors, cloud computing seems to be better positioned in terms of economic viability, cost-effective approaches to scale and reliability, early adoption of interfaces, and open source implementations. For the September 2009 Computing Now theme, I selected a few articles that address some of these topics.
Using clouds, IT departments have more options to fully understand the costs associated with owning versus renting CPUs, storage, and networking. The costs usually revolve around managing equipment (operational) and not just buying it (capital). Amazon and other providers are relying on consolidating resources with automated management to make it cheaper for customers to rent resources than buy them. “The Real Cost of a CPU Hour” (login required for full text) from Computer magazine addresses this topic in more detail.
Developers understand how to write applications for locally accessible servers, as well Web services accessible over the Internet. What does it mean to write applications for cloud computing? How are they different from traditional models? Presumably, they should be elastic (scale from a few users/nodes to a large number of them), delivered on demand without significant dependencies, composable, and so on. For more details, read “Navigating the Next-Generation Application Architecture” (login required for full text) from IT Professional.
Security concerns gain new dimensions in cloud computing. In the past, security meant not letting anyone access computing infrastructure and data, but now the data resides somewhere in the cloud. While there are reasonable guarantees and technical means to isolate users inside a shared infrastructure, higher-level concerns arise around business continuity: Can I really trust that the cloud provider will be always there? How can I gain access to my data? Read “Data Security in the World of Cloud Computing” (login required for full text) from IEEE Security and Privacy for more on this topic.
Despite the availability of commodity and open-source databases, databases at the enterprise scale remain extremely costly. It takes a lot of effort, expertise, and money to tune high-end servers to run DB2 or Oracle. Cloud computing, along with Hadoop and Pig, offers a tremendous opportunity to accomplish similar scale and reliability at a fraction of the cost. For more on these topics, read “SQL in the Clouds” (login required for full text) from Computing in Science and Engineering.
Standards and Open Source
Many companies are exploring public and private clouds, and a key factor for success will be interoperability. In much the same way that early networks needed standard protocols that eventually resulted in the ubiquitous Internet, cloud computing providers will have to come up with similar standards that will enable access to any cloud. Eucalyptus is an open source implementation of Amazon Web Services, which seems to be the approach other software infrastructure packages are using. To learn more about Eucalyptus, read “The Eucalyptus Open-Source Cloud-Computing System” (login required for full text) from Proc. 9th IEEE/ACM Int’l Symp. Cluster Computing and the Grid.
Dejan Milojicic is the founding editor of Computing Now. He has served on the editorial boards of IEEE Parallel & Distributed Technologies, IEEE Concurrency, IEEE Distributed Systems Online, and IEEE Internet Computing magazines. He chaired the IEEE Technical Committee on Operating Systems and has been involved with several other technical committees and Computer Society-sponsored conferences.
Dejan is a senior research manager at HP Labs. He has worked in the areas of operating systems and distributed systems for more than 20 years. He has been engaged in standardization bodies, such as OMG and GGF. He is a member of the IEEE, ACM, and USENIX. He received his BSc and MSc from University of Belgrade and PhD from University of Kaiserslautern.