16
software evolution & architecture lab Gerald Schermann, Jürgen Cito, Philipp Leitner University of Zurich, Switzerland All the Services Large and Micro Revisiting Industrial Practices in Services Computing @xLeitix

Industrial Practices in Services Computing

Embed Size (px)

Citation preview

Page 1: Industrial Practices in Services Computing

software evolution & architecture lab

Gerald Schermann, Jürgen Cito, Philipp Leitner

University of Zurich, Switzerland

All the Services Large and MicroRevisiting Industrial Practices in Services Computing

@xLeitix

Page 2: Industrial Practices in Services Computing

Service Computing

• “Services” have been around for a while now

• 13th ICSOC

• 11th WESOA

Page 3: Industrial Practices in Services Computing

Impact of 13+ Years of Research

Academia

Practice

Page 4: Industrial Practices in Services Computing

What Exactly is a “Service” anyways?

“SOA Triangle” ?

Michael N. Huhns and Munindar P. Singh. 2005. Service-Oriented Computing: Key Concepts and Principles. IEEE Internet Computing 9, 1 (January 2005), 75-81. DOI=http://dx.doi.org/10.1109/MIC.2005.21

Page 5: Industrial Practices in Services Computing

What Exactly is a “Service” anyways?

Service Bus?

P. Leitner, S. Schulte, S. Dustdar, I. Pill, M. Schulz, and F. Wotawa, “The Dark Side of SOA Testing: Towards Testing Contemporary SOAs Based on Criticality Metrics,” in Proceedings of the 5th International Workshop on Principles of Engineering Service-Oriented Systems (PESOS 2013), co-located with ICSE 2013, 2013.

Page 6: Industrial Practices in Services Computing

What Exactly is a “Service” anyways?

Microservices?Shop

Frontend Service

User Auth Service

Product Service

Product Rec.

Service

Shopping Basket Service

[External]Credit Card

Service

Currency Conversion

Service

Web Browser - X

Product Service

m3.large

Page 7: Industrial Practices in Services Computing

Foundations of Elastic SystemsGood moment to look at

what services look like in practice

Page 8: Industrial Practices in Services Computing

Method: Survey Study

Developer

Did Not Say

Team Lead

DevOps Eng.

Product Owner

Researcher

0% 10% 20% 30% 40% 50%Job Roles

>10 years

7−10 years

4−6 years

1−3 years

Did Not Say

0% 10% 20% 30% 40%Development Experience

>1000 empl.

101−1000 empl.

21−100 empl.

1−20 empl.

Did Not Say

0% 10% 20% 30%Company Size

Web-based survey:

• 42 participants from 42 companies

• 25 questions

Page 9: Industrial Practices in Services Computing

Some Fundamentals

Fundamental observations:• Services vary in size, but we found few that actually deploy micro

services

• Most services are internal (not “Web” services)

• SOAs are usually not all that large (median 30 services, but high variance)

• Implementation language:

67 %

26 %

38 %

45 %

31 %

12 %

29 %

14 %

14 %

43 %Other

Java

JavaScript

C#

Python

Ruby

C++

Scala

Go

VisualBasic

0 20 40 60Service Implementation Languages Used [%]

Page 10: Industrial Practices in Services Computing

Service Communication

Service communication:• 95% of participants were using REST

• 40% of participants were using SOAP

90 %

57 %

17 %

40 %

5 %

17 %

7 %Other

JSON

XML

SOAP

Custom Binary

Protobuf

BSON

0 25 50 75 100Data Exchange Formats Used [%]

Page 11: Industrial Practices in Services Computing

Monitoring

Service monitoring and QoS is a big deal …

76 %

33 %

64 %

48 %

67 %

31 %

45 %

5 %

43 %

64 %62 %

43 %

60 %

36 %

31 %

2 %

CPU Utilization

Network Traffic

Memory Consumption

Resp. Times on Public API Methods

Number of Calls

Failure Rate

IOPS, I/O Latency and I/O Usage

Network Connectivity

Method Level Response Times

Throughput

Exec. Times of DB Statements

Virtualization Metrics

Custom / Business Metrics

Network Quality

Other Infrastructure

Other App. Metrics

0 20 40 60 80Metrics Monitored [%]

Page 12: Industrial Practices in Services Computing

Discovery

… but not for service discovery / dynamic binding:• Services are typically not available in multiple functionally-equivalent

versions or implementations

• (low need to “select” services)

• Many participants don’t actually use a registry:

• 25% “just know” which services there are

• 28% maintain a list (e.g., WIKI) of services

• 18% have a contact person to ask

Page 13: Industrial Practices in Services Computing

Some Do’s and Don’ts for us Researchers (1)

(aka my wishlist for ICSOC’16 reviewing)

Page 14: Industrial Practices in Services Computing

Some Do’s and Don’ts for us Researchers (1)

• Do not assume that service ecosystems are generally huge—> only an issue for selected entities

• Do not assume that practitioners need to select from a large number of alternatives —> often 1, max. 2, versions of a service, even in large entities

• Do not assume that ‘service == SOAP/WSDL’—> if you need to assume something, assume REST

Page 15: Industrial Practices in Services Computing

Some Do’s and Don’ts for us Researchers (2)

• Do research on choreography (rather than orchestration)

• Do not imply that ‘composition == WS-BPEL’

• Do research on QoS

• (for health monitoring and governance)

Page 16: Industrial Practices in Services Computing

Some Do’s and Don’ts for us Researchers (3)

And most importantly:

• Do not assume that any statement about the popularity or prevalence of a technology / approach / standard from a ~2005 paper is still true!