Abstract
The transition to cloud computing is a disruptive trend that poses huge challenges to the software and service architecture. There are dramatic differences between delivering software as services in the cloud for millions to use through their occasionally disconnected clients, versus distributing software as bits for millions to run on their PCs. In particular, cloud services need new design patterns and programming models for their partitioned data set with many copies that are independently changed. This is a huge software challenge and a major barrier to the adoption of cloud computing. For instance, big websites spend 70% of their efforts on the undifferentiated heavy lifting (e.g., partitioning, replication and scaling) versus 30% on the differentiated value (feature) creation. This chapter will review the challenges for cloud services and some of the emerging solutions to address those challenges, based on our experience in building cloud service platforms as well as the industry best practices.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Patterson, D.A.: Technical perspective: the data center is the computer. Communications of the ACMÂ 51(1) (January 2008)
Hamilton, J.: An Architecture for Modular Data Centers. In: Third Conference on Innovative Data Systems Research (CIDR 2007) (January 2007)
Sun Modular Datacenter, http://www.sun.com/service/sunmd/
Church, K., Greenberg, A., Hamilton, J.: On Delivering Embarrassingly Distributed Cloud Services. In: Seventh ACM Workshop on Hot Topics in Networks (HotNets-VII) (October 2008)
Google Gears, http://gears.google.com/
Microsoft Sync framework, http://msdn.microsoft.com/sync/
Tanenbaum, A.S., van Steen, M.: Distributed Systems: Principles and Paradigms. Prentice Hall, Englewood Cliffs (January 2002) ISBN: 978-0130888938
Dai, J.: Design Patterns for Internet-Scale Services. In: Proceedings of the 25th International Conference on Data Engineering (ICDE 2009) (March 2009)
Vogels, W.: Ahead in the Cloud - The power of Infrastructure as a Service. In: 2008 MySQL Conference & Expo (April 2008)
DeCandia, G., Hastorun, D., Jampani, M., Kakulapati, G., Lakshman, A., Pilchin, A., Sivasubramanian, S., Vosshall, P., Vogels, W.: Dynamo: Amazon’s Highly Available Key-value Store. In: ACM Symposium on Operating Systems Principles (SOSP 2007) (October 2007)
Chang, F., Dean, J., Ghemawat, S., Hsieh, W.C., Wallach, D.A., Burrows, M., Chandra, T., Fikes, A., Gruber, R.E.: Bigtable: A Distributed Storage System for Structured Data. In: Seventh Symposium on Operating Systems Design and Implementation (OSDI 2006) (November 2006)
Cooper, B.F., Ramakrishnan, R., Srivastava, U., Silberstein, A., Bohannon, P., Jacobsen, H., Puz, N., Weaver, D., Yerneni, R.: PNUTS: Yahoo!’s hosted data serving platform. In: Proceedings of the VLDB Endowment, vol. 1(2) (August 2008)
Shoup, R., Pritchett, D.: The eBay Architecture. In: SD Forum 2006 (November 2006)
Whitcomb, A., Benedetto, J.: Running a Megasite on Microsoft Technologies. In: Microsoft Mix 2006 Conference (March 2006)
Pattishall, D.: Federation at Flickr: Doing Billions of Queries per Day. In: 2007 MySQL Conference & Expo (April 2007)
Kakivaya, G.: SQL Data Services Under the Hood. In: PDC 2008 (October 2008)
Dean, J.: Large-Scale Distributed Systems at Google: Current Systems and Future Directions. In: The 3rd ACM SIGOPS International Workshop on Large Scale Distributed Systems and Middleware (LADIS 2008) (October 2009)
Ghemawat, S., Gobioff, H., Leung, S.-T.: The Google File System. In: 19th ACM Symposium on Operating Systems Principles (October 2003)
Hamilton, J.: On Designing and Deploying Internet-Scale Services. In: 21st Large Installation System Administration Conference (LISA 2007) (November 2007)
Shoup, R.: eBay Marketplace Architecture: Architectural Strategies, Patterns, and Forces. In: QCon 2007, San Francisco (September 2007)
Amazon SimpleDB, http://aws.amazon.com/sdb/
Helland, P.: Life beyond Distributed Transactions: an Apostate’s Opinion. In: Third Conference on Innovative Data Systems Research (CIDR 2007) (January 2007)
Barrett, R.: Under the Covers of Google App Engine Datastore. In: Google I/O Conference 2008 (May 2008)
Furman, J.J., Karlsson, J.S., Leon, J.-M., Lloyd, A., Newman, S., Zeyliger, P.: Megastore: A Scalable Data System for User Facing Applications. In: SIGMOD 2008 (June 2008)
Nilakantan, N., Castro, P.: Windows Azure Table - Programming Cloud Table Storage. In: PDC 2008 (October 2008)
Hamilton, J.: Scaling LinkedIn, http://perspectives.mvdirona.com/2008/06/08/ScalingLinkedIn.aspx
FriendFeed, http://www.friendfeed.com/
Taylor, B.: How FriendFeed uses MySQL to store schema-lessdata, http://bret.appspot.com/entry/how-friendfeed-uses-mysql
Karger, D., Lehman, E., Leighton, T., Panigrahy, R., Levine, M., Lewin, D.: Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web. In: Proceedings of the Twenty-Ninth Annual ACM Symposium on Theory of Computing (May 1997)
HBase project, http://hadoop.apache.org/hbase/
Hyptertable project, http://www.hypertable.org/
Cassandra project, http://incubator.apache.org/cassandra/
Voldemort project, http://project-voldemort.com/
Dean, J., Ghemawat, S.: MapReduce: Simplified Data Processing on Large Clusters. In: Sixth Symposium on Operating Systems Design and Implementation (OSDI 2004) (December 2004)
O’Hanlon, C.: A Conversation with Werner Vogels. ACM Queue 4(4) (May 2006)
Helland, P.: Data on the Outside versus Data on the Inside. In: Second Conference on Innovative Data Systems Research (CIDR 2005) (January 2005)
Pritchett, D.: Architecting for Latency. In: QCon 2007, San Francisco (September 2007)
Helland, P.: The Irresistible Forces Meet the Moveable Objects. TechEd EMEA (2007)
Finkelstein, S., Brendle, R., Jacobs, D.: Principles for Inconsistency. In: Fourth Conference on Innovative Data Systems Research (CIDR 2009) (January 2009)
Greenfield, P., Fekete, A., Jang, J.: Isolation Support for Service-based Applications: A Position Paper. In: Third Conference on Innovative Data Systems Research (CIDR 2007) (January 2007)
O’Neil, P.E.: The Escrow transactional method. ACM Transactions on Database Systems (TODS) 11(4) (December 1986)
Brewer, E.: Towards robust distributed systems. In: Principles of Distributed Computing (PODC 2000) (July 2000)
Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News 33(2) (June 2002)
Pritchett, D.: BASE: An ACID Alternative. ACM Queue 6(3) (May/June 2008)
Vogels, W.: Eventually Consistent. ACM Queue 6(6) (October 2008)
Helland, P., Campbell, D.: Building on Quicksand. In: Fourth Conference on Innovative Data Systems Research (CIDR 2009) (January 2009)
MySQL Replication, http://dev.mysql.com/doc/refman/5.1/en/replication.html
Engineering @ Facebook’s Notes, Scaling Out, http://www.facebook.com/note.php?note_id=23844338919
Armbrust, M., Fox, A., Patterson, D.A., Lanham, N., Trushkowsky, B., Trutna, J., Oh, H.: SCADS: Scale-Independent Storage for Social Computing Applications. In: Fourth Conference on Innovative Data Systems Research (CIDR 2009) (January 2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dai, J., Huang, B. (2011). Design Patterns for Cloud Services. In: Agrawal, D., Candan, K.S., Li, WS. (eds) New Frontiers in Information and Software as Services. Lecture Notes in Business Information Processing, vol 74. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-19294-4_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-19294-4_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-19293-7
Online ISBN: 978-3-642-19294-4
eBook Packages: Computer ScienceComputer Science (R0)