29
www.aurorasolutions.io Microservices with Spring Rasheed Amir & Daniel Ling Stockholm Spring Framework & Grails Enthusiast! 1 Meetup # 2: 29 Jan 2015

Microservices with Spring Boot

Embed Size (px)

Citation preview

www.aurorasolutions.io

Microservices with Spring

Rasheed Amir & Daniel Ling

Stockholm Spring Framework & Grails Enthusiast!

1

Meetup # 2: 29 Jan 2015

www.aurorasolutions.io

Software Architect & Agile Coach @ Aurora - IT Outsourcing & Consulting Company

About: Rasheed

LinkedIn: https://se.linkedin.com/in/rasheedwaraich

22

Consultant at Findwise - Elasticsearch & Solr (implementations with Spring)

About: Daniel Ling

LinkedIn: http://se.linkedin.com/in/dling

Email: [email protected]

www.aurorasolutions.io

Monolith Applications Ailments

❏ Big budgets❏ Big delays❏ Long release cycles❏ Gold plated with many unused features❏ Expensive to change❏ Difficult to scale❏ Slow payback on ROI❏ Drag on business model innovation❏ Source of conflict between IT & business❏ Difficult to understand monolithic executable! (BBOM)

4

www.aurorasolutions.io

❏ Better process:❏ requirements❏ development❏ testing❏ operations

❏ Better tools:❏ programming languages❏ development tools❏ testing tools❏ deployment tools

Monolith Applications Remedies

5

www.aurorasolutions.io

❏ Partition the application into features organized around business capability

❏ Deliver each feature as separate microservice executable.

The Most Effective Remedy

6

www.aurorasolutions.io

❏ Small Budget❏ Short Delays❏ Short Release Cycles❏ Minimum marketable features❏ Cheap to change / rewrite❏ Easier to scale ❏ Fast payback on ROI❏ Fast delivery enables business model innovation ❏ Quickly delivery builds trust between IT & business❏ Easy to understand small executable❏ Eliminates any long-term commitment to a technology stack❏ Improved fault isolation❏ Each application can be deployed independently of others (hopefully)

Small Applications Benefits

7

www.aurorasolutions.io

Microservices Characteristics (MF)

8

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Microservices Characteristics (MF)

9

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Microservices Characteristics (MF)

11

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Microservices Characteristics (MF)

13

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Microservices Characteristics (MF)

15

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Microservices Characteristics (MF)

17

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Microservices Characteristics (MF)

19

9 common characteristics for most of the microservices:

❏ Componentization via Services❏ Organized around business capabilities❏ Products not projects❏ Smart endpoint dumb pipes❏ Decentralized governance❏ Decentralized data management❏ Infrastructure automation❏ Design for failure❏ Evolutionary design

www.aurorasolutions.io

Loosely coupled service oriented architecture with bounded contexts

Microservice Definition!

21

If every service has to be updated at the same time it’s not loosely coupled

If you have to know too much about surrounding services you don’t have a “bounded context”. See the DDD book by Eric Evans

www.aurorasolutions.io

Microservice Definition!

My definition of Microservice:

★ A well defined small problem domain★ Built & deployed by itself★ Runs in its own process★ Integrates via well-known, well-designed & well-crafted interfaces★ Owns its own data storage

22

www.aurorasolutions.io

Tools for building Microservices

23

❏ Scriptable cloud infrastructure to automate continuous delivery release pipelines❏ Reliable messaging infrastructure to allow services chirography❏ Highly productive development framework❏ Containerless runtime to allow deployment of one executable per service

www.aurorasolutions.io

Thank you!

2929

Q&A