Microservices - an integration perspective

16
Who am I? Coert van den Thillart Solution Architect at rubiX [email protected] http://rubix.nl/coert-van-den-thillart

Transcript of Microservices - an integration perspective

Page 1: Microservices - an integration perspective

Who am I?• Coert van den Thillart• Solution Architect at rubiX• [email protected]• http://rubix.nl/coert-van-den-thillart

Page 2: Microservices - an integration perspective

Microservicesfrom an integration perspective

Page 3: Microservices - an integration perspective

Assumptions

About you:• You have at least heard/read/done/seen something about

Microservices• You are active in or at least familiar with the system

integration space

Page 4: Microservices - an integration perspective

The "what are microservices?" slide

"In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies."

- Martin Fowlerhttp://martinfowler.com/articles/microservices.html

Page 5: Microservices - an integration perspective

Sound familiar?

Composability

Loose coupling

Autonomy

Abstraction

Page 6: Microservices - an integration perspective

The Microservice difference?

Autonomy

Independent life cycleRuntime independence

Dedicated development team Autonomous deployment

Page 7: Microservices - an integration perspective

Nothing else?Other benefits and concepts associated with microservices aren’t exclusive to microservices. They are good practices applicable to any service oriented architecture. • Bounded context• High cohesion, low coupling• Focus on business functionality

But they are very valuable in achieving autonomy.

Page 8: Microservices - an integration perspective

The classic SOA

Page 9: Microservices - an integration perspective

Now, with Microservices

Page 10: Microservices - an integration perspective

What changes?Just another

service

No more"integration"

effort

Choreography >

Orchestration

Page 11: Microservices - an integration perspective

That’s it?• Using REST doesn't make something a microservice

anymore than using SOAP meant you were doing SOA. • The emphasis on autonomy does drive integration patterns

in a certain direction:• Asynchronous > Synchronous• Choreography > Orchestration

• These decisions shouldn’t be exclusive to Microservices

Page 12: Microservices - an integration perspective

Reasons to adopt microservices

• Scalability• Independent LCM• Runtime independence & Autonomous deployment

Page 13: Microservices - an integration perspective

Only good things? Not quite…

• Distributed systems are still hard• What about those pesky "enterprise features"?• Resilience doesn’t come included in the box

• Applications and services still need to be built for failure

• On top of "existing" service challenges like contract versioning

• Eventual consistency

Page 14: Microservices - an integration perspective

Sign of the times?

Microservices

Agile

Continuous Delivery

Develop something in a couple of weeks

Deploy it wheneverand properly

Run it autonomously

Page 15: Microservices - an integration perspective

?Any questions

Page 16: Microservices - an integration perspective

Other concepts of interest• Domain Driven Design (Eric J. Evans)• Vertically Aligned Synergistically Partitioned or 'Snowman'

Architecture (Roger Sessions)• Simple Iterative Partitions• Autonomous Business Capabilities

• Self-Contained Systems (http://scs-architecture.org/)