Skip to main content

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 74))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Patterson, D.A.: Technical perspective: the data center is the computer. Communications of the ACM 51(1) (January 2008)

    Google Scholar 

  2. Hamilton, J.: An Architecture for Modular Data Centers. In: Third Conference on Innovative Data Systems Research (CIDR 2007) (January 2007)

    Google Scholar 

  3. Sun Modular Datacenter, http://www.sun.com/service/sunmd/

  4. 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 Scholar 

  5. Google Gears, http://gears.google.com/

  6. Microsoft Sync framework, http://msdn.microsoft.com/sync/

  7. Tanenbaum, A.S., van Steen, M.: Distributed Systems: Principles and Paradigms. Prentice Hall, Englewood Cliffs (January 2002) ISBN: 978-0130888938

    MATH  Google Scholar 

  8. Dai, J.: Design Patterns for Internet-Scale Services. In: Proceedings of the 25th International Conference on Data Engineering (ICDE 2009) (March 2009)

    Google Scholar 

  9. Vogels, W.: Ahead in the Cloud - The power of Infrastructure as a Service. In: 2008 MySQL Conference & Expo (April 2008)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Shoup, R., Pritchett, D.: The eBay Architecture. In: SD Forum 2006 (November 2006)

    Google Scholar 

  14. Whitcomb, A., Benedetto, J.: Running a Megasite on Microsoft Technologies. In: Microsoft Mix 2006 Conference (March 2006)

    Google Scholar 

  15. Pattishall, D.: Federation at Flickr: Doing Billions of Queries per Day. In: 2007 MySQL Conference & Expo (April 2007)

    Google Scholar 

  16. Kakivaya, G.: SQL Data Services Under the Hood. In: PDC 2008 (October 2008)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Ghemawat, S., Gobioff, H., Leung, S.-T.: The Google File System. In: 19th ACM Symposium on Operating Systems Principles (October 2003)

    Google Scholar 

  19. Hamilton, J.: On Designing and Deploying Internet-Scale Services. In: 21st Large Installation System Administration Conference (LISA 2007) (November 2007)

    Google Scholar 

  20. Shoup, R.: eBay Marketplace Architecture: Architectural Strategies, Patterns, and Forces. In: QCon 2007, San Francisco (September 2007)

    Google Scholar 

  21. Amazon SimpleDB, http://aws.amazon.com/sdb/

  22. Helland, P.: Life beyond Distributed Transactions: an Apostate’s Opinion. In: Third Conference on Innovative Data Systems Research (CIDR 2007) (January 2007)

    Google Scholar 

  23. Barrett, R.: Under the Covers of Google App Engine Datastore. In: Google I/O Conference 2008 (May 2008)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. Nilakantan, N., Castro, P.: Windows Azure Table - Programming Cloud Table Storage. In: PDC 2008 (October 2008)

    Google Scholar 

  26. Hamilton, J.: Scaling LinkedIn, http://perspectives.mvdirona.com/2008/06/08/ScalingLinkedIn.aspx

  27. FriendFeed, http://www.friendfeed.com/

  28. Taylor, B.: How FriendFeed uses MySQL to store schema-lessdata, http://bret.appspot.com/entry/how-friendfeed-uses-mysql

  29. 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)

    Google Scholar 

  30. HBase project, http://hadoop.apache.org/hbase/

  31. Hyptertable project, http://www.hypertable.org/

  32. Cassandra project, http://incubator.apache.org/cassandra/

  33. Voldemort project, http://project-voldemort.com/

  34. Dean, J., Ghemawat, S.: MapReduce: Simplified Data Processing on Large Clusters. In: Sixth Symposium on Operating Systems Design and Implementation (OSDI 2004) (December 2004)

    Google Scholar 

  35. O’Hanlon, C.: A Conversation with Werner Vogels. ACM Queue 4(4) (May 2006)

    Google Scholar 

  36. Helland, P.: Data on the Outside versus Data on the Inside. In: Second Conference on Innovative Data Systems Research (CIDR 2005) (January 2005)

    Google Scholar 

  37. Pritchett, D.: Architecting for Latency. In: QCon 2007, San Francisco (September 2007)

    Google Scholar 

  38. Helland, P.: The Irresistible Forces Meet the Moveable Objects. TechEd EMEA (2007)

    Google Scholar 

  39. Finkelstein, S., Brendle, R., Jacobs, D.: Principles for Inconsistency. In: Fourth Conference on Innovative Data Systems Research (CIDR 2009) (January 2009)

    Google Scholar 

  40. 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)

    Google Scholar 

  41. O’Neil, P.E.: The Escrow transactional method. ACM Transactions on Database Systems (TODS) 11(4) (December 1986)

    Google Scholar 

  42. Brewer, E.: Towards robust distributed systems. In: Principles of Distributed Computing (PODC 2000) (July 2000)

    Google Scholar 

  43. Gilbert, S., Lynch, N.: Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services. ACM SIGACT News 33(2) (June 2002)

    Google Scholar 

  44. Pritchett, D.: BASE: An ACID Alternative. ACM Queue 6(3) (May/June 2008)

    Google Scholar 

  45. Vogels, W.: Eventually Consistent. ACM Queue 6(6) (October 2008)

    Google Scholar 

  46. Helland, P., Campbell, D.: Building on Quicksand. In: Fourth Conference on Innovative Data Systems Research (CIDR 2009) (January 2009)

    Google Scholar 

  47. MySQL Replication, http://dev.mysql.com/doc/refman/5.1/en/replication.html

  48. Engineering @ Facebook’s Notes, Scaling Out, http://www.facebook.com/note.php?note_id=23844338919

  49. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics