ABSTRACT
Cloud computing is gaining more and more traction as a deployment and provisioning model for software. While a large body of research already covers how to optimally operate a cloud system, we still lack insights into how professional software engineers actually use clouds, and how the cloud impacts development practices. This paper reports on the first systematic study on how software developers build applications for the cloud. We conducted a mixed-method study, consisting of qualitative interviews of 25 professional developers and a quantitative survey with 294 responses. Our results show that adopting the cloud has a profound impact throughout the software development process, as well as on how developers utilize tools and data in their daily work. Among other things, we found that (1) developers need better means to anticipate runtime problems and rigorously define metrics for improved fault localization and (2) the cloud offers an abundance of operational data, however, developers still often rely on their experience and intuition rather than utilizing metrics. From our findings, we extracted a set of guidelines for cloud development and identified challenges for researchers and tool vendors.
- R. Buyya, C. S. Yeo, S. Venugopal, J. Broberg, and I. Brandic, “Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing As the 5th Utility,” Future Generation Computer Systems, 2009. Google ScholarDigital Library
- M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica et al., “A View of Cloud Computing,” Communications of the ACM, 2010. Google ScholarDigital Library
- M. Hüttermann, DevOps for Developers. Apress, 2012. Google ScholarCross Ref
- A. Beloglazov, J. Abawajy, and R. Buyya, “Energy-Aware Resource Allocation Heuristics for Efficient Management of Data Centers for Cloud Computing,” Future Generation Computer Systems, May 2012. Google ScholarDigital Library
- P. Marshall, K. Keahey, and T. Freeman, “Improving Utilization of Infrastructure Clouds,” in Proceedings of the 2011 11th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID ’11). Washington, DC, USA: IEEE Computer Society, 2011. Google ScholarDigital Library
- A. Iosup, S. Ostermann, N. Yigitbasi, R. Prodan, T. Fahringer, and D. Epema, “Performance Analysis of Cloud Computing Services for Many-Tasks Scientific Computing,” IEEE Transactions on Parallel and Distributed Systems, vol. 22, no. 6, Jun. 2011. Google ScholarDigital Library
- A. Barker, B. Varghese, J. S. Ward, and I. Sommerville, “Academic Cloud Computing Research: Five Pitfalls and Five Opportunities,” in Proceedings of the 6th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud 14), Jun. 2014. Google ScholarDigital Library
- P. Mell and T. Grance, “The NIST Definition of Cloud Computing,” National Institute of Standards and Technology (NIST), Gaithersburg, MD, Tech. Rep. 800-145, September 2011. Google Scholar
- G. Lawton, “Developing Software Online With Platform-as-a-Service Technology,” Computer, vol. 41, no. 6, Jun. 2008. Google ScholarDigital Library
- L. Singer, F. Figueira Filho, and M.-A. Storey, “Software Engineering at the Speed of Light: How Developers Stay Current Using Twitter,” in Proceedings of the 36th International Conference on Software Engineering (ICSE 2014). New York, NY, USA: ACM, 2014. Google ScholarDigital Library
- E. Murphy-Hill, T. Zimmermann, C. Bird, and N. Nagappan, “The Design of Bug Fixes,” in Proceedings of the 2013 International Conference on Software Engineering (ICSE’13), 2013. Google ScholarDigital Library
- A. Khajeh-Hosseini, I. Sommerville, and I. Sriram, “Research Challenges for Enterprise Cloud Computing,” CoRR, vol. abs/1001.3257, 2010.Google Scholar
- L. Mei, W. K. Chan, and T. H. Tse, “A Tale of Clouds: Paradigm Comparisons and Some Thoughts on Research Issues,” in Proceedings of the 2008 IEEE Asia-Pacific Services Computing Conference (APSCC ’08). Washington, DC, USA: IEEE Computer Society, 2008. Google ScholarDigital Library
- L. Mei, Z. Zhang, and W. K. Chan, “More Tales of Clouds: Software Engineering Research Issues from the Cloud Application Perspective,” Proceedings of the 2013 IEEE 37th Annual Computer Software and Applications Conference (COMPSAC), vol. 1, 2009. Google ScholarDigital Library
- C. P. Bezemer and A. Zaidman, “Performance optimization of deployed software-as-a-service applications,” Journal of Systems and Software, vol. 87, 2014. Google ScholarDigital Library
- B. Palanisamy, A. Singh, L. Liu, and B. Jain, “Purlieus: Locality-Aware Resource Allocation for MapReduce in a Cloud,” in Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC’11). New York, NY, USA: ACM, 2011. Google ScholarDigital Library
- R. Zabolotnyi, P. Leitner, W. Hummer, and S. Dustdar, “JCloudScale: Closing the Gap Between IaaS and PaaS,” ACM Transactions on Internet Technology (TOIT), 2015, to appear. Google ScholarDigital Library
- P. Leitner, B. Satzger, W. Hummer, C. Inzinger, and S. Dustdar, “CloudScale: A Novel Middleware for Building Transparently Scaling Cloud Applications,” in Proceedings of the 27th Annual ACM Symposium on Applied Computing (SAC’12), 2012. Google ScholarDigital Library
- K. Jayaram, “Elastic remote methods,” in Middleware 2013, ser. Lecture Notes in Computer Science, D. Eyers and K. Schwan, Eds. Springer Berlin Heidelberg, 2013.Google ScholarCross Ref
- B. Narasimhan and R. Nichols, “State of Cloud Applications and Platforms: The Cloud Adopters’ View,” Computer, vol. 44, no. 3, 2011. Google ScholarDigital Library
- P. Gupta, A. Seetharaman, and J. R. Raj, “The Usage and Adoption of Cloud Computing by Small and Medium Businesses,” International Journal of Information Management, vol. 33, no. 5, 2013.Google ScholarCross Ref
- “2014 State of DevOps Report,” Puppet Labs, IT Revolution Press, and ThoughtWorks, Tech. Rep., 2014. {Online}. Available: http://puppetlabs.com/ 2014-devops-reportGoogle Scholar
- R. Shiver, “Survey: Enterprise Development in the Cloud,” Gigaom Research, Tech. Rep., 2014.Google Scholar
- R. Hoda, J. Noble, and S. Marshall, “Developing a Grounded Theory to Explain the Practices of Self-Organizing Agile Teams,” Empirical Software Engineering, 2012. Google ScholarDigital Library
- L. Bratthall and M. Jorgensen, “Can you Trust a Single Data Source Exploratory Software Engineering Case Study?” Empirical Software Engineering, 2002. Google ScholarDigital Library
- R. P. Buse and T. Zimmermann, “Information needs for software development analytics,” in Proceedings of the 34th International Conference on Software Engineering. Google ScholarDigital Library
- X. Tang, Z. Zhang, M. Wang, Y. Wang, Q. Feng, and J. Han, “Performance Evaluation of Light-Weighted Virtualization for PaaS in Clouds,” in Algorithms and Architectures for Parallel Processing. Springer, 2014.Google ScholarCross Ref
- S. Newman, Building Microservices. O’Reilly, 2015.Google ScholarDigital Library
- J. Cito, D. Suljoti, P. Leitner, and S. Dustdar, “Identifying Root-Causes of Web Performance Degradation using Changepoint Analysis,” in Proceedings of the 14th International Conference on Web Engineering (ICWE). Springer Berlin Heidelberg, 2014.Google ScholarCross Ref
- J. Cito, D. Gotowka, P. Leitner, R. Pelette, D. Suljoti, and S. Dustdar, “Identifying Web Performance Degradations through Synthetic and Real-User Monitoring,” J. Web Eng., vol. 14, no. 5-6, Jul. 2015.Google Scholar
- P. Leitner and J. Cito, “Patterns in the Chaos - a Study of Performance Variation and Predictability in Public IaaS Clouds,” ArXiv e-prints, 2014.Google Scholar
- J. Cito, P. Leitner, H. C. Gall, A. Dadashi, A. Keller, and A. Roth, “Runtime Metric meets Developer - Building better Cloud Applications using Feedback,” in Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2015), 2015.Google ScholarDigital Library
Index Terms
- The making of cloud applications: an empirical study on software development for the cloud
Recommendations
Cloud service engineering
ICSE '10: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2Building on compute and storage virtualization, Cloud Computing provides scalable, network-centric, abstracted IT infrastructure, platforms, and applications as on-demand services that are billed by consumption. Cloud Service Engineering is the ...
A Study on the Cloud Computing Service Model and Its Development Direction
IHIP 2018: Proceedings of the 2018 International Conference on Information Hiding and Image ProcessingNOTICE OF RETRACTION: While investigating potential publication-related misconduct in connection with the IHIP 2018 Conference Proceedings, serious concerns were raised that cast doubt on the integrity of the peer-review process and all papers published ...
Cloud-Based Business Applications Development Methodology
WETICE '14: Proceedings of the 2014 IEEE 23rd International WETICE ConferenceNowadays, cloud applications are developed in Platforms as a Service and Infrastructures as a Service. Before the advent of Cloud computing, software engineering knew several approaches and methodologies for application development like: agiles methods ...
Comments