software development for the cloud - trends, opportunities, and challenges

36
software evolution & architecture lab Dr. Philipp Leitner University of Zurich, Switzerland Software Development for the Cloud Trends, Opportunities and Challenges

Upload: philipp-leitner

Post on 17-Jan-2017

481 views

Category:

Software


3 download

TRANSCRIPT

software evolution & architecture lab

Dr. Philipp Leitner

University of Zurich, Switzerland

Software Development for the CloudTrends, Opportunities and Challenges

About UZH

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

Overview

• Part I: What’s this all about?

• Part II: There be dragons!

• Part III: A bright future?

Foundations of Elastic Systems

Part 1:What’s this all about?

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

Example 1:AWS EC2

Example 2:Heroku

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

Foundations of Elastic Systems

Part II:There be dragons

The Reliability Dragon

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”

The Log Diarrhea Dragon

Log Diarrhea

x 1000

Dashboard-ities

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.

The Security and Privacy Dragon

How to slay this dragon?

Likely there is no “solution” to privacy issues in the cloud

(maybe we don’t even need one)

Foundations of Elastic Systems

Part III:A bright future?

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