Software Development for the Cloud - Trends, Opportunities, and Challenges
1. software evolution & architecture lab
Dr. Philipp Leitner
University of Zurich, Switzerland
Software Development for the Cloud
Trends, Opportunities and Challenges
3. Cloud-Based SE @
UZH
Christian Inzinger,
Postdoc and Dev Lead
Juergen Cito
PhD Student,
Performance Engineering
Gerald Schermann
PhD Student,
Continuous Delivery
Joel Scheuner
Master Student,
Cloud Benchmarking
Genc Mazlami
Master Student,
EU Project CloudWave
Philipp Leitner
Research Team Lead
4. Research Areas
• Systems …
• Services Computing
• Event-based computing
• … & Software
• Software engineering for cloud systems
• Software performance engineering
• Release engineering
5. Overview
• Part I: What’s this all about?
• Part II: There be dragons!
• Part III: A bright future?
8. What is Cloud
Computing? (1)
• From a user perspective:
• Software and data is access over the Internet
9. What is Cloud
Computing? (2)
• From a user perspective:
• Software and data is access over the Internet
• From a software developer perspective:
• Developer “rents” computing resources
• Application is running on the cloud provider’s
machines
12. Why is CC so popular?
• Let’s assume you are a small(ish) company
• You probably have a Web-based product
• You probably don’t have too much money
13. As AWS puts it
In the past, if you got famous and your
systems or your infrastructure did not
scale you became a victim of your own
success. Conversely, if you invested
heavily and did not get famous, you
became a victim of your failure.
Jinesh Varia: http://jineshvaria.s3.amazonaws.com/public/-cloudarchitectures-varia.pdf
14. Opportunities / Benefits
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.
Percentages
0 5 10 15 20 25 30
Focus on Product,
Productivity
Faster Delivery,
Time-to-market
Lower Costs/TCO
(Total Cost of Ownership)
Automation, Deployment Pipelines
Easier Infrastructure Setup and Maintenance
Scalability / Elasiticity 31%
30%
22%
11%
10%
9%
(survey responses of 294 cloud developers)
Cost- and Product-Related
15. Business Opportunities
• Lower TCO (presumably)
• CapEx —> OpEx
• Pay little as long as you don’t have users
• DevOps / NoOps
• Less administration, more building features
• Business Agility
• Faster feedback, continuous delivery
16. Opportunities / Benefits
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.
Percentages
0 5 10 15 20 25 30
Focus on Product,
Productivity
Faster Delivery,
Time-to-market
Lower Costs/TCO
(Total Cost of Ownership)
Automation, Deployment Pipelines
Easier Infrastructure Setup and Maintenance
Scalability / Elasiticity 31%
30%
22%
11%
10%
9%
(survey responses of 294 cloud developers)
Technology Related
19. Cloud instance performance
is unpredictable
P. Leitner and J. Cito. Patterns in the Chaos - a Study of Performance Variation and Predictability in Public IaaS
Clouds. ArXiv e-prints, 2014. Under revision.
Relative standard deviations of various benchmark results over ~500
identical repetitions.
20. Cloud instance performance
is unstable
P. Leitner and J. Cito. Patterns in the Chaos - a Study of Performance Variation and Predictability in Public IaaS
Clouds. ArXiv e-prints, 2014. Under revision.
20
30
40
0 20 40 60
Measurement Runtime [h]
IOBandwidth[Mb/s]
Instance 9097 Instance 14704
21. Cloud instances are volatile
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.
22. How to slay this dragon?
• Hedge the risk
• Prefer clusters of small instances over single large instances
• See: Microservices
• Anticipate runtime problems.
• Define and store operational metrics off-instance
• E.g., Logstash
• Use best-practices
• 12-Factor-App
• Reactive Manifesto
“C
loud-N
ative”
26. So - are developers using
dashboards?
DeveloperMe
Interview with 25 software developers that deploy in the cloud
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.
27. So - are developers using
dashboards?
Topic: Solving problems that have been detected in production
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.
Adapted from https://xkcd.com/1423/!
Nah, I rather go
by intuition?
Do you look at
any metrics?
28. How to slay this dragon?
• Developer-targeted analytics
• Put metrics where developers see them (—> IDEs)
• Establish link between runtime metrics and dev-time artefacts
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.
29. SAP HANA
Performance Spotter
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.
30. PerformanceHat
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.
34. Outlook
Cloud computing is just one (integral) part of a longer-running and
much grander development
• Everything is now a service
• Including computing infrastructure (cloud computing) and development
environments (Web IDEs)
• Releasing fast is getting ever more crucial
• Continuous delivery, live testing, partial rollouts
• Software development gets more data-driven
• (and not only because of the current Big Data hype)
35. Outlook
• Everything is now a service
• —> privacy? loss of control? reliability?
• Releasing fast is getting ever more crucial
• —> but how can we assure software quality?
• Software development gets more data-driven
• —> but good developer != analyst
These developments are not without challenges:
36. Recommended
Additional Reading
Introduction to Cloud Computing in general:
T. Erl, R. Puttini, Z. Mahmood. Cloud Computing: Concepts, Technology & Architecture. Prentice Hall
Service Technology Series. 2013
Challenges and Opportunities in Cloud-Based SE:
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.
Cloud Performance
P. Leitner and J. Cito. Patterns in the Chaos - a Study of Performance Variation and Predictability in
Public IaaS Clouds. ArXiv e-prints, 2014.
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
Cloud Development and Deployment in Practice