Slide 1

Slide 1 text

@sendilkumarn Reactive Microservices with JHipster SENDIL KUMAR N

Slide 2

Slide 2 text

@sendilkumarn @sendilkumarn

Slide 3

Slide 3 text

@sendilkumarn Why Microservices?

Slide 4

Slide 4 text

@sendilkumarn Microservices

Slide 5

Slide 5 text

@sendilkumarn Microservices Microservices Microservices

Slide 6

Slide 6 text

@sendilkumarn Microservices Microservices Microservices

Slide 7

Slide 7 text

@sendilkumarn Microservices Microservices

Slide 8

Slide 8 text

@sendilkumarn Microservices Independent Deployability Microservices

Slide 9

Slide 9 text

@sendilkumarn Microservices contract contract contract contract Microservices

Slide 10

Slide 10 text

@sendilkumarn Microservices I own my data I own my data I own my data I own my data Microservices

Slide 11

Slide 11 text

@sendilkumarn Microservices Microservices Microservices Microservices

Slide 12

Slide 12 text

@sendilkumarn Do one thing & do it well Independent deployability No single point of failure

Slide 13

Slide 13 text

@sendilkumarn Why Reactive microservices?

Slide 14

Slide 14 text

@sendilkumarn Highly-interactive & ultra-fast experiences Things that scale dynamically Utilize the maximum benefit out of the systems Reactive µ-service

Slide 15

Slide 15 text

@sendilkumarn Service Service Over a network Reactive µ-service

Slide 16

Slide 16 text

@sendilkumarn Reactive µ-service Get me some data. Green → Yellow service - latency : 50ms Yellow → Orange service - latency : 100ms Yellow → Blue service - latency : 20ms 170 ms

Slide 17

Slide 17 text

@sendilkumarn Reactive µ-service Get me some data. Green → Yellow service - latency : 50ms Green → Orange service - latency : 100ms Green → Blue service - latency : 20ms 100 ms Reactive µ-service

Slide 18

Slide 18 text

@sendilkumarn Non-blocking Reactive µ-service

Slide 19

Slide 19 text

@sendilkumarn Reactive µ-service Responsive Resilient Elastic Message Driven Reactive µ-service

Slide 20

Slide 20 text

@sendilkumarn Reactive µ-service Asynchronous Message Passing Reactive µ-service

Slide 21

Slide 21 text

@sendilkumarn Reactive µ-service In a reactive system, every part should be reactive Reactive µ-service

Slide 22

Slide 22 text

@sendilkumarn more than 750 req/s Reactive µ-service

Slide 23

Slide 23 text

@sendilkumarn Reactive µ-service

Slide 24

Slide 24 text

@sendilkumarn

Slide 25

Slide 25 text

@sendilkumarn

Slide 26

Slide 26 text

@sendilkumarn Spring Reactive

Slide 27

Slide 27 text

@sendilkumarn Spring Reactive @PostMapping("/users") public User createUser(@Valid @RequestBody User user) { // Handle errors User result = userRepository.save(user); // do something with the result return ResponseEntity .created(new URI("/api/users/" + result.getId())) .headers(HeaderUtil.createEntityCreationAlert (...)) .body(result); } Spring Reactive

Slide 28

Slide 28 text

@sendilkumarn Spring Reactive @PostMapping("/users") public Mono createUser(@Valid @RequestBody User user) { // Handle errors return userRepository.save(user) .flatMap( // Do something with the users ) .map( result -> return ResponseEntity .created(new URI("/api/users/" + result.getId())) .headers(HeaderUtil.createEntityCreationAlert (...)) .body(result); ) } Reactive Spring Reactive

Slide 29

Slide 29 text

@sendilkumarn Spring Reactive Gateway Service A Service B Message Queue

Slide 30

Slide 30 text

@sendilkumarn Spring Reactive Gateway Service A Service B Message Queue reactive reactive reactive reactive Spring Reactive

Slide 31

Slide 31 text

@sendilkumarn Spring Reactive Spring Reactive

Slide 32

Slide 32 text

@sendilkumarn Being Reactive makes our services responsive, resilient, elastic, and message-driven Spring Boot 2.0 introduced reactive programming for spring based applications But that is a lot…

Slide 33

Slide 33 text

@sendilkumarn JHipster

Slide 34

Slide 34 text

@sendilkumarn JHipster JHipster is a open source app. generator

Slide 35

Slide 35 text

@sendilkumarn JHipster JHipster is a development platform open source app. generator

Slide 36

Slide 36 text

@sendilkumarn JHipster JHipster generates all bells & whistles development platform

Slide 37

Slide 37 text

@sendilkumarn JHipster Server Client Deployments CI/CD templates Angular / React / Vue / Svelte Java / Kotlin Docker / K8s / AWS / GAE GitHub / Gitlab / Sonar…

Slide 38

Slide 38 text

@sendilkumarn npm i -g generator-jhipster JHipster

Slide 39

Slide 39 text

@sendilkumarn mkdir app && cd app npm i -g generator-jhipster JHipster

Slide 40

Slide 40 text

@sendilkumarn mkdir app && cd app npm i -g generator-jhipster jhipster JHipster

Slide 41

Slide 41 text

@sendilkumarn Options ● Monolithic / Microservices / Gateway ● Spring WebFlux / Spring MVC ● Authentication ● Database ● Build Tool - Maven / Gradle ● Web Framework JHipster

Slide 42

Slide 42 text

@sendilkumarn https://start.jhipster.tech/ JHipster

Slide 43

Slide 43 text

@sendilkumarn Demo!

Slide 44

Slide 44 text

@sendilkumarn Recap Why Microservices? Why Reactive µ-service? Spring Reactive Code walkthrough JHipster Generated microservices with JHipster Deploy on Kubernetes

Slide 45

Slide 45 text

@sendilkumarn Questions

Slide 46

Slide 46 text

@sendilkumarn Thanks!!!