software development for the cloud - trends, opportunities, and challenges
TRANSCRIPT
software evolution & architecture lab
Dr. Philipp Leitner
University of Zurich, Switzerland
Software Development for the CloudTrends, Opportunities and Challenges
Cloud-Based SE @ UZH
Christian Inzinger,Postdoc and Dev Lead
Juergen CitoPhD Student,
Performance Engineering
Gerald SchermannPhD Student,
Continuous Delivery
Joel ScheunerMaster Student,
Cloud Benchmarking
Genc MazlamiMaster Student,
EU Project CloudWave
Philipp LeitnerResearch Team Lead
Research Areas
• Systems …
• Services Computing
• Event-based computing
• … & Software
• Software engineering for cloud systems
• Software performance engineering
• Release engineering
Context:Software-as-a-Service
Locally Installed On-Premise
Install
Use
Install Use
SaaS
VENDORVENDORVENDOR
What is Cloud Computing? (1)
• From a user perspective:
• Software and data is access over the Internet
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
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
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
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,ProductivityFaster 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
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
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,ProductivityFaster 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
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.
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 60Measurement Runtime [h]
IO B
andw
idth
[Mb/
s]
Instance 9097 Instance 14704
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.
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 “Clou
d-Nat
ive”
So - are developers using dashboards?
Developer Me
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.
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 lo
ok at
any metrics?
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.
SAP HANAPerformance 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.
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.
How to slay this dragon?
Likely there is no “solution” to privacy issues in the cloud
(maybe we don’t even need one)
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)
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:
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 PerformanceP. 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