1. software evolution & architecture lab
Dr. Philipp Leitner
@xLeitix
University of Zurich, Switzerland
Software Development for the Cloud
Challenges and Opportunities
2. Outline
Part 1:
Context & Introduction
Part 2:
Challenges & Opportunities
Part 3:
The Quest for Runtime Data
Part 4:
Concluding Remarks
6. Context:
Continuous Delivery
Dror G. Feitelson, Eitan Frachtenberg, Kent L. Beck, "Development and Deployment at Facebook," IEEE Internet
Computing, vol. 17, no. 4, pp. 8-17, July-Aug., 2013
7. Should software engineering research care about these
developments?
Ripple effects through many aspects of SE:
— Requirements engineering (A/B testing)
— Design and architecture (microservices)
— Quality assurance (canaries, “move fast” mentality)
— Processes, reams and roles (DevOps)
— …
8. ESEC/FSE 2015
J. Cito, P. Leitner, T. Fritz, and H. C. Gall, “The Making of Cloud Applications – An Empirical Study on Software
Development for the Cloud,” in Proceedings of the 10th Joint Meeting of the European Software Engineering Conference
and the ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE), 2015.
12. Infrastructure Traceability
Infrastructure-as-Code:
• Define virtualized hard- and
software as code
• Allows you to evolve
program code and operating
environment together
Yuyuan Jiang and Bram Adams. (2015). Co-evolution of Infrastructure and Source Code - An Empirical Study, in
Proceedings of the 12th Working Conference on Mining Software Repositories, MSR (Florence, Italy).
16. How are developers using
dashboards and metrics?
Topic: Solving problems that have been detected in production
Adapted from https://xkcd.com/1423/!
Nah, I rather go
by intuition?
Do you look at
any metrics?
17. Onward! 2015
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), New York, NY, USA, 2015.
20. Should software engineering research care?
• YES
• … changes to software architectures
• … changes to processes and roles
• … changes to how developers use data
• MAYBE?
• … changes to requirements engineering?
• … changes to quality assurance?
• … changes to software delivery?
21. Final Note
B. Maurer: “Fail at Scale - Reliability in the Face of Change,”
in ACM Queue 13/8, pp. 30 - 47. 2015.