Microservices Roundtable Puneet Sachdev 21 Apr 2018
Microservices Roundtable Puneet Sachdev 21 Apr 2018
Microservices Roundtable Puneet Sachdev 21 Apr 2018
Microservices is about
splitting a single application
into smaller pieces which are
independent and have their
own lifecycle
4
© 2018 NIIT Tech | www.niit-tech.com | Confidential
Microservices vs. SOA vs. APIs
5
© 2018 NIIT Tech | www.niit-tech.com | Confidential
Microservices vs. SOA vs. APIs
SOA Microservices
• Integration between different applications • Splitting an application into smaller pieces
• Dominated by proprietary stacks • Dominated by Open Source components from
organizations like Netflix
• Smart Pipes, Dumb Endpoints • Dumb pipes, Smart Endpoints
• Typically Hub-n-Spoke. Technology • Completely Distributed
Monoliths
APIS
• APIs are interfaces which are exposed either internally and/or externally and have governance
and management around it
6
© 2018 NIIT Tech | www.niit-tech.com | Confidential
Microservices Reference Architecture
Microservices Technology
Stack
• Open Source
• Lightweight
• Based on
• Spring
• Netflix
• Docker, k8s
7
© 2018 NIIT Tech | www.niit-tech.com | Confidential
Concepts to be explored
8
© 2018 NIIT Tech | www.niit-tech.com | Confidential
Codebases
1. Pure Netflix & Spring (Eureka, Hystrix, Ribbon, Zuul, Spring Config, Spring Boot)
https://github.com/psachdev6375/microservices-bootcamp.git
9
© 2018 NIIT Tech | www.niit-tech.com | Confidential
Scenario
Sentence
Service
Code: https://github.com/psachdev6375/microservices-bootcamp.git
10
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Pure Netflix, Spring Boot implementation
Code: https://github.com/psachdev6375/microservices-bootcamp.git
11
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Subject Verb Article Adjective Noun
Service Service Service Service Service
Eureka
Code: https://github.com/psachdev6375/microservices-bootcamp.git
12
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Subject Verb Article Adjective Noun
Service Service Service Service Service
Eureka
1. Start Eureka Server
Zuul 2. Check Eureka console
3. Start Sentence Service
4. See Circuit Breaker in action
Sentence 5. See Hystrix Dashboard
Service 6. All services running
Code: https://github.com/psachdev6375/microservices-bootcamp.git
13
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Subject Verb Article Adjective Noun
Service Service Service Service Service
Eureka
1. Start Eureka Server
2. Check Eureka console
Zuul 3. Start Sentence Service
4. See Circuit Breaker in action
Sentence 5. See Hystrix Dashboard
Service 6. All services running
7. Zuul Proxy
Code: https://github.com/psachdev6375/microservices-bootcamp.git
14
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Subject Verb Article Adjective Noun
Service Service Service Service Service
Noun
Service
Code: https://github.com/psachdev6375/microservices-bootcamp.git
15
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Docker, Docker-Compose, Netflix, Spring Boot,
Prometheus, Grafana implementation
https://github.com/psachdev6375/docker-microservices-bootcamp.git
16
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Adjective Article Noun Subject Verb
https://github.com/psachdev6375/docker-microservices-bootcamp.git
17
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Docker, Kubernetes, Hystrix, Spring Boot,
Prometheus, Grafana implementation
https://github.com/psachdev6375/k8s-microservices-bootcamp.git
18
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Kubernetes Cluster
Concepts
• Discovery (k8s)
• Circuit Breakers (Hystrix)
• Load Balancing (k8s Adjective Article
Noun Service
Subject
Verb Service
Service Service Service
services)
• Proxy (k8s services)
• Containers
• Container Orchestration Grifana Prometheus Sentence
(k8s) Pods Pods Pods
• Monitoring & Alerts
(Prometheus)
• Dashboard (Grafana)
Grifana Prometheus Sentence
Service Service Service
https://github.com/psachdev6375/k8s-microservices-bootcamp.git
19
© 2018 NIIT Tech | www.niit-tech.com | Confidential © 2018 NIIT Tech | www.niit-tech.com | Confidential
Thank You
Puneet Sachdev
Chief Architect, NIIT Technologies
[email protected]
https://www.linkedin.com/in/puneetsachdev/
20
© 2018 NIIT Tech | www.niit-tech.com | Confidential