Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture -...

30
CADEC 2019.01.24 & 2019.01.30 | CALLISTAENTERPRISE.SE ARCHITECTURAL STYLES IN SERVICE-BASED ARCHITECTURE JOHAN ZETTERSTRÖM

Transcript of Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture -...

Page 1: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

CADEC 2019.01.24 & 2019.01.30 | CALLISTAENTERPRISE.SE

ARCHITECTURAL STYLES IN SERVICE-BASED ARCHITECTURE

JOHAN ZETTERSTRÖM

Page 2: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

THE ARCHITECTS

Neal FordMark Richards

Page 3: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

AGENDA

• The three service-based architectural styles: - Service-oriented architecture - Microservices - Miniservices

• Background, drivers and negatives • Miniservices & migration • Comparing SOA to Microservices • Summary

Page 4: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

SERVICE-ORIENTED ARCHITECTURE

Page 5: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

SOA - DRIVERS

Background • Decomposition of monolithic systems • Reuse of information and functionality • Services, but point-to-point integration • Heterogenous integration capabilities

Page 6: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

DRIVERS

SOA • Reuse (of services) • Loose coupling • Centralised integration

capabilities

Microservices Miniservices

Page 7: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

SOA

• Integration capabilities on a central integration platform (ESB)

• Integration Competence Center (ICC) - Conway’s law in reverse…

(https://en.wikipedia.org/wiki/Conway%27s_law)

Page 8: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

SOA - NEGATIVES

• The integration platform becomes a bottleneck • The organisation (ICC) becomes a bottleneck

Page 9: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MICROSERVICES

Page 10: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MICROSERVICES - DRIVERS

Background • ”Web scale” - potentially huge numbers of users • Cloud - enables • DevOps

Page 11: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

DRIVERS

SOA • Reuse (of services) • Loose coupling • Centralised integration

capabilities

Microservices

• Scalability • Changeability

Miniservices

Page 12: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MICROSERVICES

• Small independently deployable service components

• Service owns its data • Lightweight API layer

focused on non-functional aspects (service exposure, routing, security, throttling)

Page 13: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MICROSERVICES - NEGATIVES

It’s complicated…

Page 14: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES

Page 15: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES - DRIVERS

Background • Microservices…

Page 16: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

DRIVERS

SOA • Reuse (of services) • Loose coupling • Centralised integration

capabilities

Microservices

• Scalability • Changeability

Miniservices

• Complex business logic • Less decomposition of

data

Page 17: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES

• A bit larger independently deployable service components

• To the consumer, indistinguishable from a microservice

• Slower to change, less stress on DevOps

Page 18: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES - NEGATIVES

• Changeability • Scalability • Modules within service become entangled over time

Page 19: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES & MIGRATION

Page 20: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES & MIGRATION

• Monolith

Page 21: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES & MIGRATION

• Monolith -> Miniservices

Page 22: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES & MIGRATION

• Monolith -> Miniservices -> Microservices

Page 23: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

MINISERVICES & MIGRATION

• A caveat: Providing a stable API requires analysis of how the miniservice will be decomposed into microservices.

• Implementing a hybrid architecture - Minimize the differences… » Use common infrastructure » Use common routines (when possible)

- …but don’t ignore them! » Create a service taxonomy » Different testing routines? » Build & deploy

Page 24: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

COMPARING SOA TO MICROSERVICES

Page 25: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

COMPARASION - GRANULARITY

System System System

SystemSystemSystemSOA

Page 26: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

COMPARASION - GRANULARITY

System

Application Application ApplicationMICROSERVICES

Page 27: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

COMPARASION - GRANULARITY

Page 28: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

LOOKING BACK TO CADEC 2015…

Page 29: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

DIRECT COMPARISONS BECOME MISLEADING

”Microservices are SOA done right” ”Miniservices are SOA done right”

• Different problem areas - Integration in a heterogenous world - Scalable, changeable systems

Page 30: Arkitekturstilar Cadec 2019 - Callista Enterprise · - Service-oriented architecture - Microservices - Miniservices • Background, drivers and negatives ... ”Microservices are

SUMMARY

• Recognize your miniservices! • Neither microservices nor miniservices are SOA done right