To Microservice or Not to
Microservice?
Alon Fliess:
number of modules
Module
Integration
cost (complexity)
Amount
module
development
Cost (complexity)
Size
Cost
small in size messaging enabled bounded by contexts
autonomously developed independently deployable decentralized
automated processes
enhances the cohesion decreases
the coupling
MSA Evolution
Some principles
Consistency
PartitioningAvailability
CAP Theorem
Eventual consistency
The sunlight that you see indicates that the sun was still
there eight minutes ago!
Remote
Service
Client
CDN
Service
Service
Service
Service
Service
Discovery
Management
API
Gateway
Static
Content
Identity
Provider
DB
Service A Service B
https://www.maxpixel.net/Megaphone-Speakers-Announcement-Information-Barker-1019756
IIS Apache NGINX
Virtual Machine
Amazon Lambda Azure Functions
Docker Service Fabric Windows Containers
Container
Containers
OCI
Container Hub
Server
Host OS
Hypervisor
Server
Host OS
Docker Engine
Guest
OS
Guest
OS
Guest
OS
Bins/Libs Bins/Libs Bins/Libs
App A App A’ App B
Bins/Libs Bins/Libs
AppA
AppA’
AppB
AppB’
AppB
AppB’
AppB
AppB’
Containers are isolated,
but share OS and, where
appropriate,
bins/libraries
Bins/Libs
23
24
 No more legacy code!!!
25https://en.wikipedia.org/wiki/File:FortranCardPROJ039.agr.jpg
Orchestration vs Choreography
26
Shipping
Service
S
h
i
p
Invoice
Service
Pub/Sub
Client
UI
S
h
i
p
e
d
S
h
i
p
e
d
Client
UI
Shipping
Manager
Shipping
Engine
Invoice
Engine
Trackin
g
Service
Tracking
Engine
Source: https://istio.io/docs/concepts/what-is-istio/overview.html
Service
package
service 1
Service
package
service 3
Service
package
service 2
Routing Rule resource
Network
Envoy
proxy
Envoy
proxy
Envoy
proxy
Envoy
proxy
Azure
Service Fabric Mesh
https://commons.wikimedia.org/wiki/File:Uniquely_stuffed_pasta.jpg
https://www.flickr.com/photos/23126594@N00/455482299/in/photostream/
29http://cdaworldhistory.wikidot.com/europe-faces-revolutions
30https://commons.wikimedia.org/wiki/File:Human_evolution.svg
https://commons.wikimedia.org/wiki/File:Super_heavy-lift_launch_vehicles.png
32
33
So Should I Do Microservices?
To microservice or not to microservice - ignite version

To microservice or not to microservice - ignite version

Editor's Notes

  • #10 Cohesion - The degree to which a module performs one and only one function Coupling - The degree to which each program module relies on each of the other modules Low coupling often correlates with high cohesion, and vice versa Tightly coupled systems tend to: Ripple (cascading) effect of changes Can’t reuse a single module Testing becomes a nightmare!!! The DevOps process becomes a nightmare!!!
  • #31 Look at the source control to find the volatile areas Consult developers, customers and sales persons
  • #34 https://pixabay.com/en/balls-of-wool-colors-storage-locker-2689442/ https://pixabay.com/en/flecked-heathered-wool-wool-knit-1228706/
  • #35 Free image source: https://pixabay.com/en/approval-female-gesture-hand-happy-15914/