summaryrefslogtreecommitdiff
path: root/day2/microservices-gone-wrong.txt
blob: 88a50961a6b368b2622ee87b8578d3725066aa0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Microservices gone wrong

Anthony Ferrara
https://docs.google.com/presentation/d/1Ogejf47b7k0RWU-7lE_uBsCmJxL3CvydOl8fVukuQ_4/edit

- starting from scratch

api gateway
middleware for external requests
message-bus rabbitMQ

Service per domain entity

Meta service using ES
Kurbenetes

Why local dev failed?
Slow.
Inconsistent
Would break

mainly: "Someone elses problem" - all devs

Production release took 1 week
Cost of context switching

Smoke Test

- Lessons Learned

    - service call's are unreliable
    - "microlyth"

1. Don't do micorservices
    a. unless you have a dedicated tooling and automation team
2. Start with big services
    a/ Split if you require
3. Automate everything
    a spin up, deployment migration, backup state restoration Elliptic
4. Don't plan for failure, live it
    a. failure modes should rebuilt first, tested first, and relied upon
5. Define SLO early
    a. Define business objectives for each service and system before building