SlideShare a Scribd company logo
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
Microservices


With Spring Boot and Spring Cloud
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
2
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
3
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
4
Microservices
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
5
Start with Problems
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
6
Evolution of


components and services
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
7
Times
V1
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
8
Times
V1
V2
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
9
Times
V1
V2
V3
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
10
Centralization Dilemma
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
11
Big ball of mud
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
12
Big ball of mud
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
13
Separation of Concern
Coupling and Cohesion
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
14
Times
No structure
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
15
Times
No structure
Package/namespace
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
16
Times
No structure
Package/namespace
Application + libraries
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
17
Times
Application + libraries
Application + libraries + services
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
18
Times
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
19
Times
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
20
Times
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
21
Times
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
22
Times
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
23
Customers
Business Tech
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
24
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
25
New Architecture ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
26
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
27
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
28
Microservices
Maintainable and testable
Loosely couple
Small, Do one thing (Single Responsibility)
Independently deploy and scale
Organized around business values
Owned by small team
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
29
Characteristics
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
30
1. Responsible for a single
capability
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
31
Types of capabilities
Business capability
Technical capability
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
32
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
33
2. Individually deployable
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
34
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
35
3. Consists of one or more
processes ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
36
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
37
4. Own data store
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
38
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
39
5. Small team can maintain
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
40
Enabled system …
Flexible
Scalable
Resilient
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
41
Failure !!
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
42
Cascading Failure !!
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
43
Enable continuous delivery
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
44
Challenges …
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
45
Infrastructure
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
46
Distributed system !!
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
47
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
48
Distributed system
Harder to testing
Communication across process/network
Easy to failure
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
49
Many services, Many deploy =>
Complexity !!
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
50
Questions ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
51
1. How to define the boundaries
of each microservices ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
52
Legacy
Database
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
53
Legacy
Database
New
ยั
ด
มั
นเ
ข้
าไป !!!
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
54
Legacy
Database
New
Modular
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
55
Legacy
Database
New


Library
New Library
Reference
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
56
Legacy
Database
New


Service
New component/service
Call
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
57
Legacy
Database
New


Service
Service-to-service communication
Call
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
58
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
59
Drawbacks of Microservice
Deploy feature that required multiple
service ?
S1 S2 S3
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
60
Circuit Breaker pattern
Track the number of success and failure
If error rate exceed some threshold


then enable circuits breaker
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
61
Legacy
New


Service
How to use a new service ?
Call
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
62
Legacy
New


Service
How to use a new service ?
Call
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
63
Legacy
New


Service
Gateway/Proxy/BFF
Call
Gateway
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
64
Legacy
Database
New


Service
Database per service ?
Call
Database


For new
service
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
65
Legacy
Database
New


Service
Data consistency and Query ?
Call
Database


For new
service
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
66
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
67
Popular solutions
Composition service
CORS with query/read tables
Cold data in centralize database
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
68
Security by design
Authentication, Authorization, Secret management,


Secure communication .. etc.
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
69
Observability patterns ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
70
Observability
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
71
Observability
Centralize log
Application metric
Distributed tracing
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
72
Observability
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
73
Observability for system
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
74
Centralize log
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
75
Centralize log
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
76
Application metric
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
77
Distributed tracing
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
78
Distributed tracing
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
79
Microservices patterns
https://microservices.io/
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
80
https://microservices.io/
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
81
Develop and Testing ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
82
Why What How
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
83
Properties of Microservices
Microservice
API Discovery
Invocation
Elasticity
Resilience
Pipeline
Authentication
Logging
Metric
Tracing
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
84
Spring Boot and Spring Cloud
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
85
Microservices with Spring
Spring Boot
Spring Cloud
https://spring.io/microservices
Spring Native
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
86
Spring Boot
Standalone spring application
Starter dependencies
Automatic configuration
Production-ready environment
Distributed tracing
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
87
Spring Boot supports
REST and WebFlux
SQL and NoSQL
Messaging
New technologies …
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
88
Microservices with Spring
https://spring.io/microservices
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
89
Create new project !!
https://start.spring.io/
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
90
Properties of Microservices
Microservice
API Discovery
Invocation
Elasticity
Resilience
Pipeline
Authentication
Logging
Metric
Tracing
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
91
Microservices with Spring
Microservice
API Discovery
Invocation
Elasticity
Resilience
Pipeline
Authentication
Logging
Metric
Tracing
Spring
cloud
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
92
Spring Configuration
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
93
Service Discovery with Eureka
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
94
Dynamic routing
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka
Routing Routing
Netflix Zuul
Server/


Spring cloud
gateway
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
95
Fault Tolerance
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka
Routing Routing
Netflix Zuul
Server/


Spring cloud
gateway Circuit breaker Circuit breaker
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
96
Client-Load balancing with Ribbon
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka
Routing Routing
Netflix Zuul
Server/


Spring cloud
gateway Circuit breaker Circuit breaker
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
97
Tracing and Visibility
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka
Routing Routing
Netflix Zuul
Server
Circuit breaker Circuit breaker
Tracing Server Client Client
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
98
Tracing server
https://zipkin.io/
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
99
Tracing server
https://www.jaegertracing.io/
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
100
Metric with Actuator and Micrometer
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka


Netflix Ribbon
Routing Routing
Netflix Zuul
Server
Circuit breaker Circuit breaker
Tracing Server
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
101
Logging
Infrastructure
Spring Cloud


Config Server
Service 2
Config
Service 1
Config
Service discovery Service discovery
Netflix Eureka


Netflix Ribbon
Routing Routing
Netflix Zuul
Server
Circuit breaker Circuit breaker
Tracing Server
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
102
Service versioning ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
103
Deploy ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
104
More …
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
105
Microservices
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
106
Good for business site ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
107
Good for technical site ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
108
Good for customers site ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
109
Cost and Benefit ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
110
Problem of Microservices
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
111
Increase complexity for
developer
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
112
Increase complexity for
operation
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
113
Poor define boundary of
services
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
114
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
115
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
116
ปิ
ด
ท้
าย
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
117
What is your problem ?
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
118
Let’s solve, learn and repeat
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
119
Sharing :: Developer 101


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
120
Sharing :: Developer 101


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
121
Microservices


© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
122
Develop and Testing


with Microservices
© 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved.
123

More Related Content

PDF
Cisco Connect 2018 Philippines - delivering a secure, intelligent platform fo...
PDF
Cisco Connect 2018 Philippines - next-generation customer care and the connec...
PDF
Tineola: Taking A Bite Out of Enterprise Blockchain
PDF
Cisco Connect 2018 Singapore - Data center transformation a customer perspec...
PPTX
Think Small To Go Big - Introduction To Microservices
PDF
Building Microservices Software practics
PDF
Everything you want to know about microservices
PDF
#ATAGTR2020 Presentation - Microservices – Explored
Cisco Connect 2018 Philippines - delivering a secure, intelligent platform fo...
Cisco Connect 2018 Philippines - next-generation customer care and the connec...
Tineola: Taking A Bite Out of Enterprise Blockchain
Cisco Connect 2018 Singapore - Data center transformation a customer perspec...
Think Small To Go Big - Introduction To Microservices
Building Microservices Software practics
Everything you want to know about microservices
#ATAGTR2020 Presentation - Microservices – Explored

Similar to vTalk#1 Microservices with Spring Boot (20)

PDF
Microservices for Application Modernisation
ODP
Monolithic to Microservices Architecture - STM 6
PDF
The trial period is over - Microservices adoption gains momentum 
PPTX
Microservice intro
PDF
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
PPTX
Microservices + Oracle: A Bright Future
PPTX
Best Practices Building Cloud Scale Apps with Microservices
PDF
I Love APIs 2015: Microservices at Amazon
PPTX
Introduction to Microservices
PDF
Microservices - Hitchhiker's guide to cloud native applications
PDF
AWS STARTUP DAY 2018 I If, how and when to adopt microservices
PDF
Microservices Interview Questions and Answers PDF By ScholarHat
PDF
Production-Ready_Microservices_excerpt.pdf
PDF
Microservices Interview Questions and Answers pdf by ScholarHat
PPTX
Microservices-101
PDF
20141210 - Microservice Container
PDF
Dockercon State of the Art in Microservices
PPTX
Pros & Cons of Microservices Architecture
PDF
Microservice - Intro and Discussion
PPTX
Microservices (eDR PSD)
Microservices for Application Modernisation
Monolithic to Microservices Architecture - STM 6
The trial period is over - Microservices adoption gains momentum 
Microservice intro
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
Microservices + Oracle: A Bright Future
Best Practices Building Cloud Scale Apps with Microservices
I Love APIs 2015: Microservices at Amazon
Introduction to Microservices
Microservices - Hitchhiker's guide to cloud native applications
AWS STARTUP DAY 2018 I If, how and when to adopt microservices
Microservices Interview Questions and Answers PDF By ScholarHat
Production-Ready_Microservices_excerpt.pdf
Microservices Interview Questions and Answers pdf by ScholarHat
Microservices-101
20141210 - Microservice Container
Dockercon State of the Art in Microservices
Pros & Cons of Microservices Architecture
Microservice - Intro and Discussion
Microservices (eDR PSD)

More from Somkiat Puisungnoen (20)

PDF
Next of Java 2022
PDF
Sck spring-reactive
PDF
Part 2 :: Spring Boot testing
PDF
Lesson learned from React native and Flutter
PDF
Angular :: basic tuning performance
PDF
Shared code between projects
PDF
Distributed Tracing
PDF
Manage data of service
PDF
RobotFramework Meetup at Thailand #2
PDF
Visual testing
PDF
Cloud Native App
PDF
Wordpress for Newbie
PDF
Sck Agile in Real World
PDF
Clean you code
PDF
SCK Firestore at CNX
PDF
Unhappiness Developer
PDF
The Beauty of BAD code
PDF
React in the right way
PDF
Rise of Container (RoC)
Next of Java 2022
Sck spring-reactive
Part 2 :: Spring Boot testing
Lesson learned from React native and Flutter
Angular :: basic tuning performance
Shared code between projects
Distributed Tracing
Manage data of service
RobotFramework Meetup at Thailand #2
Visual testing
Cloud Native App
Wordpress for Newbie
Sck Agile in Real World
Clean you code
SCK Firestore at CNX
Unhappiness Developer
The Beauty of BAD code
React in the right way
Rise of Container (RoC)

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Modernizing your data center with Dell and AMD
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Cloud computing and distributed systems.
PDF
KodekX | Application Modernization Development
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Big Data Technologies - Introduction.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
Advanced methodologies resolving dimensionality complications for autism neur...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Modernizing your data center with Dell and AMD
The AUB Centre for AI in Media Proposal.docx
Cloud computing and distributed systems.
KodekX | Application Modernization Development
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Empathic Computing: Creating Shared Understanding
Big Data Technologies - Introduction.pptx
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation

vTalk#1 Microservices with Spring Boot

  • 1. © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. Microservices With Spring Boot and Spring Cloud
  • 2. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 2
  • 3. © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 3
  • 4. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 4 Microservices
  • 5. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 5 Start with Problems
  • 6. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 6 Evolution of components and services
  • 7. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 7 Times V1
  • 8. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 8 Times V1 V2
  • 9. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 9 Times V1 V2 V3
  • 10. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 10 Centralization Dilemma
  • 11. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 11 Big ball of mud
  • 12. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 12 Big ball of mud
  • 13. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 13 Separation of Concern Coupling and Cohesion
  • 14. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 14 Times No structure
  • 15. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 15 Times No structure Package/namespace
  • 16. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 16 Times No structure Package/namespace Application + libraries
  • 17. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 17 Times Application + libraries Application + libraries + services
  • 18. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 18 Times
  • 19. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 19 Times
  • 20. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 20 Times
  • 21. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 21 Times
  • 22. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 22 Times
  • 23. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 23 Customers Business Tech
  • 24. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 24
  • 25. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 25 New Architecture ?
  • 26. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 26
  • 27. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 27
  • 28. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 28 Microservices Maintainable and testable Loosely couple Small, Do one thing (Single Responsibility) Independently deploy and scale Organized around business values Owned by small team
  • 29. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 29 Characteristics
  • 30. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 30 1. Responsible for a single capability
  • 31. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 31 Types of capabilities Business capability Technical capability
  • 32. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 32
  • 33. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 33 2. Individually deployable
  • 34. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 34
  • 35. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 35 3. Consists of one or more processes ?
  • 36. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 36
  • 37. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 37 4. Own data store
  • 38. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 38
  • 39. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 39 5. Small team can maintain
  • 40. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 40 Enabled system … Flexible Scalable Resilient
  • 41. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 41 Failure !!
  • 42. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 42 Cascading Failure !!
  • 43. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 43 Enable continuous delivery
  • 44. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 44 Challenges …
  • 45. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 45 Infrastructure
  • 46. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 46 Distributed system !!
  • 47. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 47
  • 48. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 48 Distributed system Harder to testing Communication across process/network Easy to failure
  • 49. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 49 Many services, Many deploy => Complexity !!
  • 50. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 50 Questions ?
  • 51. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 51 1. How to define the boundaries of each microservices ?
  • 52. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 52 Legacy Database
  • 53. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 53 Legacy Database New ยั ด มั นเ ข้ าไป !!!
  • 54. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 54 Legacy Database New Modular
  • 55. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 55 Legacy Database New Library New Library Reference
  • 56. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 56 Legacy Database New Service New component/service Call
  • 57. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 57 Legacy Database New Service Service-to-service communication Call
  • 58. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 58
  • 59. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 59 Drawbacks of Microservice Deploy feature that required multiple service ? S1 S2 S3
  • 60. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 60 Circuit Breaker pattern Track the number of success and failure If error rate exceed some threshold then enable circuits breaker
  • 61. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 61 Legacy New Service How to use a new service ? Call
  • 62. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 62 Legacy New Service How to use a new service ? Call
  • 63. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 63 Legacy New Service Gateway/Proxy/BFF Call Gateway
  • 64. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 64 Legacy Database New Service Database per service ? Call Database For new service
  • 65. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 65 Legacy Database New Service Data consistency and Query ? Call Database For new service
  • 66. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 66
  • 67. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 67 Popular solutions Composition service CORS with query/read tables Cold data in centralize database
  • 68. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 68 Security by design Authentication, Authorization, Secret management, Secure communication .. etc.
  • 69. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 69 Observability patterns ?
  • 70. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 70 Observability
  • 71. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 71 Observability Centralize log Application metric Distributed tracing
  • 72. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 72 Observability
  • 73. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 73 Observability for system
  • 74. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 74 Centralize log
  • 75. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 75 Centralize log
  • 76. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 76 Application metric
  • 77. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 77 Distributed tracing
  • 78. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 78 Distributed tracing
  • 79. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 79 Microservices patterns https://microservices.io/
  • 80. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 80 https://microservices.io/
  • 81. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 81 Develop and Testing ?
  • 82. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 82 Why What How
  • 83. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 83 Properties of Microservices Microservice API Discovery Invocation Elasticity Resilience Pipeline Authentication Logging Metric Tracing
  • 84. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 84 Spring Boot and Spring Cloud
  • 85. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 85 Microservices with Spring Spring Boot Spring Cloud https://spring.io/microservices Spring Native
  • 86. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 86 Spring Boot Standalone spring application Starter dependencies Automatic configuration Production-ready environment Distributed tracing
  • 87. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 87 Spring Boot supports REST and WebFlux SQL and NoSQL Messaging New technologies …
  • 88. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 88 Microservices with Spring https://spring.io/microservices
  • 89. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 89 Create new project !! https://start.spring.io/
  • 90. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 90 Properties of Microservices Microservice API Discovery Invocation Elasticity Resilience Pipeline Authentication Logging Metric Tracing
  • 91. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 91 Microservices with Spring Microservice API Discovery Invocation Elasticity Resilience Pipeline Authentication Logging Metric Tracing Spring cloud
  • 92. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 92 Spring Configuration Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config
  • 93. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 93 Service Discovery with Eureka Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka
  • 94. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 94 Dynamic routing Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka Routing Routing Netflix Zuul Server/ Spring cloud gateway
  • 95. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 95 Fault Tolerance Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka Routing Routing Netflix Zuul Server/ Spring cloud gateway Circuit breaker Circuit breaker
  • 96. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 96 Client-Load balancing with Ribbon Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka Routing Routing Netflix Zuul Server/ Spring cloud gateway Circuit breaker Circuit breaker
  • 97. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 97 Tracing and Visibility Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka Routing Routing Netflix Zuul Server Circuit breaker Circuit breaker Tracing Server Client Client
  • 98. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 98 Tracing server https://zipkin.io/
  • 99. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 99 Tracing server https://www.jaegertracing.io/
  • 100. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 100 Metric with Actuator and Micrometer Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka Netflix Ribbon Routing Routing Netflix Zuul Server Circuit breaker Circuit breaker Tracing Server
  • 101. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 101 Logging Infrastructure Spring Cloud Config Server Service 2 Config Service 1 Config Service discovery Service discovery Netflix Eureka Netflix Ribbon Routing Routing Netflix Zuul Server Circuit breaker Circuit breaker Tracing Server
  • 102. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 102 Service versioning ?
  • 103. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 103 Deploy ?
  • 104. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 104 More …
  • 105. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 105 Microservices
  • 106. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 106 Good for business site ?
  • 107. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 107 Good for technical site ?
  • 108. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 108 Good for customers site ?
  • 109. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 109 Cost and Benefit ?
  • 110. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 110 Problem of Microservices
  • 111. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 111 Increase complexity for developer
  • 112. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 112 Increase complexity for operation
  • 113. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 113 Poor define boundary of services
  • 114. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 114
  • 115. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 115
  • 116. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 116 ปิ ด ท้ าย
  • 117. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 117 What is your problem ?
  • 118. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 118 Let’s solve, learn and repeat
  • 119. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 119
  • 120. Sharing :: Developer 101 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 120
  • 121. Sharing :: Developer 101 © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 121
  • 122. Microservices © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 122 Develop and Testing with Microservices
  • 123. © 2017 - 2018 Siam Chamnankit Company Limited. All rights reserved. 123