Slide 1

Slide 1 text

Microservices #MichaelBui2812 1

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

About Me ● Full-Stack Software Developer ● Working at PropertyGuru ● Experience: ○ Programming: 9 years ○ Microservices: 2 years ○ DevOps: < 1 year 3 http://about.me/MichaelBui

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

5 Agenda ● Microservices ● Migration ● Scalability ● Resilience ● Deployment

Slide 6

Slide 6 text

Microservices 6

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

8

Slide 9

Slide 9 text

9

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

11 Migration

Slide 12

Slide 12 text

Tools 12 ● Container: Docker, LXC ● Messaging: Redis, ZeroMQ, RabbitMQ,...

Slide 13

Slide 13 text

1. Legacy App 13 Begin Log Begin Process Log End End

Slide 14

Slide 14 text

1. Legacy App (cont.) 1. Linear codes 2. Become messy when more logics added =>unclean code 14

Slide 15

Slide 15 text

2. Improved App by Events 15 Begin Event Log Begin Process Event Log End End

Slide 16

Slide 16 text

2. Improved App by Events (cont.) 16

Slide 17

Slide 17 text

2. Improved App by Events (cont.) 17

Slide 18

Slide 18 text

3. Improved App by Microservices 18 Begin End Event Channel Message List Message List Watchers Watchers Workers Workers End

Slide 19

Slide 19 text

3. Improved App by Microservices (cont.) 19

Slide 20

Slide 20 text

3. Improved App by Microservices (cont.) 20

Slide 21

Slide 21 text

Scalability 21

Slide 22

Slide 22 text

22 1 watcher + 1 worker = 30s

Slide 23

Slide 23 text

3 watchers + 3 workers = 14s 23 Broadcasting & Load Balancing

Slide 24

Slide 24 text

24 Resilience

Slide 25

Slide 25 text

25 Deployment

Slide 26

Slide 26 text

26 Gitlab CI

Slide 27

Slide 27 text

Question? 27 https://github.com/michaelbui/PHPSG-1701

Slide 28

Slide 28 text

http://career.propertyguru.com/ 28

Slide 29

Slide 29 text

Thank you! 29