Seminar VU Amsterdam 2015

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

Transcript of Seminar VU Amsterdam 2015

software evolution & architecture lab

Dr. Philipp Leitner

@xLeitixUniversity of Zurich, Switzerland

Software Development for the CloudChallenges and Opportunities

OutlinePart 1:

Context & Introduction

Part 2:

Challenges & Opportunities

Part 3:

The Quest for Runtime Data

Part 4:

Concluding Remarks

Why Cloud-Based SE?

Context:Software-as-a-Service

Locally Installed On-Premise

Install

Use

Install Use

SaaS

VENDORVENDORVENDOR

Context:Cloud Computing

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

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)

— …

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.

Research Method

Initial Interview Study(16 participants)

Survey(294 responses)

Deep-Dive Interviews(9 participants)

Opportunities / Benefits

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

Technology Related

Infrastructure Traceability

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).

Scale-Up Architecture

Traditional 3-Tier Web Application

Microservices and Autoscaling

Instance volatility

Also problematic for debugging

—> requires sophisticated logging (dashboards)

Dashboards

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 lo

ok at

any metrics?

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.

SAP HANAPerformance Spotter

PerformanceHat

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?

Final NoteB. Maurer: “Fail at Scale - Reliability in the Face of Change,” in ACM Queue 13/8, pp. 30 - 47. 2015.