3. Microservice Characteristics
Componentization as a Service
● One main reason for using services as components (rather
than libraries) is that services are independently
deployable
Organized Around Business Capabilities
● Segregating capabilities for specific business areas like
user interface and external integrations
Smart Endpoints and Dumb Pipes
● Each microservice is as decoupled as possible with its own
domain logic
5. Microservice Characteristics
● Not influencing any
programing languages,
data types etc
● Use whatever works for
you
● But in practice, using a
cloud native programing
language is more
productive
6. Microservice Characteristics
“Micro” in microservice isn’t
about the no. of lines of code
● The problem should be
small enough to be handled
by a team
● Team should be fitting into
two pizzas
● No tool can help find the
right scope
7. Lessons learnt from SOA
● Don’t do it because
everyone else is doing
● Look for a real use case
Use the correct strategies to
move monolithic to
microservice
Mindful
8. Mindful
Need to have a proper balance
● Don’t over complicate
● Agility and repeatability is
the key
● Choose the correct tools
and framework whenever
possible
9. Microservice Challengers
We are building a distributed system
● Complex service discovery
● Network resiliency
● Failover and load balancing
● Global testing
● Global monitoring
○ Global tracing
○ Global logging
● Governance and policy enforcement
● Patching, updates and new versions rolling out
11. Containers (Docker)
Provide isolation, but more
controllability and repeatability
Universal packaging model with
dependencies and configurations
Containers:
● Lightweight
● Fast Boot Up
● Immutable
Single process in single container
14. Small group of containers and
volume
Tightly coupled
● The atom of replication
and placement
Logical host for containers
● Echo pod get an IP address
● Share data: localhost,
volume, IPC, etc.
K8S POD
15. Group of pods that work
together
DNS name
Load balanced: name map to
a stable virtual IP
Decoupled from Pods and
Replication controllers
K8S Service
20. Service Mesh
Image source : http://philcalcado.com/2017/08/03/pattern_service_mesh.html
Is mesh a Distributed ESB?
Trying to solve
● Governance and Policy
enforcement
● Network resiliency
● Service discovery
● Version control
● Deployment and update
orchestration
21. Sidecar Proxy
Run adjacent to the main
service
● Running in the same Pod
● But as separate container
Capable of handling
● Ingress
● Egress
● Service discovery
● Circuit breaker
● Failover, load balancing
26. Serverless
There are still servers
(containers)
● But, they are not running
always
● You don’t manage them
anymore
Because of that
● No need to optimize them
● No need to worry about HA
and scaling
27. Serverless vendors and technologies
● Amazon Lamba
● Azure Function
● Google Function
● IMB Functions
● Serverles.com
● Openwiks
● Kubeless
● Knative