Microservices

29
Microservices #MichaelBui2812 1

Transcript of Microservices

Page 1: Microservices

Microservices

#MichaelBui28121

Page 2: Microservices

2

Page 3: Microservices

About Me

● Full-Stack Software Developer● Working at PropertyGuru● Experience:

○ Programming: 9 years○ Microservices: 2 years○ DevOps: < 1 year

3

http://about.me/MichaelBui

Page 4: Microservices

4

Page 5: Microservices

5

Agenda● Microservices● Migration● Scalability● Resilience● Deployment

Page 6: Microservices

Microservices

6

Page 7: Microservices

7

Page 8: Microservices

8

Page 9: Microservices

9

Page 10: Microservices

10

Page 11: Microservices

11

Migration

Page 12: Microservices

Tools

12

● Container: Docker, LXC● Messaging: Redis,

ZeroMQ, RabbitMQ,...

Page 13: Microservices

1. Legacy App

13

Begin Log Begin Process Log End End

Page 14: Microservices

1. Legacy App (cont.)

1. Linear codes2. Become messy when

more logics added

=>unclean code

14

Page 15: Microservices

2. Improved App by Events

15

Begin Event

Log Begin

Process Event

Log End

End

Page 16: Microservices

2. Improved App by Events (cont.)

16

Page 17: Microservices

2. Improved App by Events (cont.)

17

Page 18: Microservices

3. Improved App by Microservices

18

Begin

End Event Channel

Message List

Message List

Watchers

Watchers

Workers

Workers End

Page 19: Microservices

3. Improved App by Microservices (cont.)

19

Page 20: Microservices

3. Improved App by Microservices (cont.)

20

Page 21: Microservices

Scalability

21

Page 22: Microservices

22

1 watcher + 1 worker = 30s

Page 23: Microservices

3 watchers + 3 workers = 14s

23

Broadcasting&

Load Balancing

Page 24: Microservices

24

Resilience

Page 25: Microservices

25

Deployment

Page 26: Microservices

26

Gitlab CI

Page 27: Microservices

Question?

27

https://github.com/michaelbui/PHPSG-1701

Page 28: Microservices

http://career.propertyguru.com/

28

Page 29: Microservices

Thank you!

29