Cloud software upgrades: Challenges and opportunities

The fast evolution pace for cloud computing software is on a collision course with our growing reliance on cloud computing. On one hand, cloud software must have the agility to evolve rapidly, in order to remain competitive; on the other hand, more and more critical services become dependent on the cloud and demand high availability through firm Service Level Agreements (SLAs) for cloud infrastructures. This race between the needs to increase both the cloud upgrade frequency and the service availability is unsustainable. In this paper we highlight challenges and opportunities for upgrades in the cloud. We survey the release histories of several cloud applications to analyze their evolution pace, and we discuss the shortcomings with current cloud upgrade mechanisms. We outline several solutions for sustaining this evolution while improving availability, by focusing on the novel characteristics of cloud computing. By discussing several promising directions for realizing this vision, we propose a research agenda for the future of software upgrades in the cloud.

[1]  Michael Hicks,et al.  State transfer for clear and efficient runtime updates , 2011, 2011 IEEE 27th International Conference on Data Engineering Workshops.

[2]  Carlo Curino,et al.  Graceful database schema evolution: the PRISM workbench , 2008, Proc. VLDB Endow..

[3]  Christos Gkantsidis,et al.  Planet scale software updates , 2006, SIGCOMM 2006.

[4]  Jim Waldo The end of protocols , 2001 .

[5]  Iulian Neamtiu,et al.  Dynamic updates for web and cloud applications , 2010, APLWACA '10.

[6]  Ricardo Bianchini,et al.  Staged deployment in mirage, an integrated software upgrade testing and distribution system , 2007, SOSP.

[7]  André Schiper,et al.  Structural and algorithmic issues of dynamic protocol update , 2006, Proceedings 20th IEEE International Parallel & Distributed Processing Symposium.

[8]  Frank B. Schmuck,et al.  GPFS: A Shared-Disk File System for Large Computing Clusters , 2002, FAST.

[9]  Ewan D. Tempero,et al.  From Java to UpgradeJ: an empirical study , 2008, HotSWUp '08.

[10]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[11]  Iulian Neamtiu,et al.  Collateral evolution of applications and databases , 2009, IWPSE-Evol '09.

[12]  Ralph E. Johnson,et al.  How do APIs evolve? A story of refactoring , 2006, J. Softw. Maintenance Res. Pract..

[13]  Tudor Dumitras,et al.  No Downtime for Data Conversions: Rethinking Hot Upgrades (CMU-PDL-09-106) , 2009 .

[14]  Iulian Neamtiu,et al.  Safe and timely updates to multi-threaded programs , 2009, PLDI '09.

[15]  E. Birney,et al.  Velvet: algorithms for de novo short read assembly using de Bruijn graphs. , 2008, Genome research.

[16]  Eric A. Brewer,et al.  Lessons from Giant-Scale Services , 2001, IEEE Internet Comput..

[17]  Iulian Neamtiu,et al.  Schema evolution analysis for embedded databases , 2011, 2011 IEEE 27th International Conference on Data Engineering Workshops.

[18]  Henry Li Introducing Windows Azure , 2009 .

[19]  Tudor Dumitras,et al.  Report on the second ACM workshop on hot topics in software upgrades (HotSWUp'09): http://www.hotswup.org/2009/ , 2010, OPSR.

[20]  Mark E. Segal Online software upgrading: new research directions and practical considerations , 2002, Proceedings 26th Annual International Computer Software and Applications.

[21]  Julian Rathke,et al.  Migrating protocols in multi-threaded message-passing systems , 2009, HotSWUp '09.

[22]  P. Saxena,et al.  The Emperor ’ s New APIs : On the ( In ) Secure Usage of New Client-side Primitives , 2010 .

[23]  Anees Shaikh,et al.  Splitter: a proxy-based approach for post-migration testing of web applications , 2010, EuroSys '10.

[24]  O. Frieder,et al.  Dynamically updating distributed software: supporting change in uncertain and mistrustful environments , 1989, Proceedings. Conference on Software Maintenance - 1989.

[25]  M. Merkow,et al.  2010 CWE/SANS Top 25 Most Dangerous Programming Errors , 2010 .

[26]  Gavin M. Bierman,et al.  UpgradeJ: Incremental Typechecking for Class Upgrades , 2008, ECOOP.

[27]  Tudor Dumitras,et al.  To upgrade or not to upgrade: impact of online upgrades across multiple administrative domains , 2010, OOPSLA.

[28]  Tudor Dumitras,et al.  Why Do Upgrades Fail and What Can We Do about It? , 2009, Middleware.

[29]  Philip Wadler,et al.  Links: Web Programming Without Tiers , 2006, FMCO.