SlideShare a Scribd company logo
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: rasheed@aurorasolutions.io
www.aurorasolutions.io
3
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
10
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
12
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
14
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
16
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
18
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
20
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
2424
www.aurorasolutions.io
2525
www.aurorasolutions.io
26
www.aurorasolutions.io
27
www.aurorasolutions.io
● http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
● http://martinfowler.com/articles/microservices.html
References
28
www.aurorasolutions.io
Thank you!
2929
Q&A

More Related Content

Microservices with Spring Boot