how a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm ›...
TRANSCRIPT
![Page 1: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/1.jpg)
How a team of 4 wrote, maintained and operated 50+
services
![Page 2: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/2.jpg)
If you expect cool technical solutions, prepare to be
disappointed
![Page 3: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/3.jpg)
2-4 developers
An average of more than 1 service per week
Dropwizard java mongodb
![Page 4: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/4.jpg)
Why so many services?
We needed to scale! In the future!
Many teams and millions of requests per second!
![Page 5: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/5.jpg)
Why so many services?
We needed to scale! In the future!
Many teams and millions of requests per second!
We wanted boundaries between domains.
![Page 6: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/6.jpg)
Why so many services?
We rewrote entire services several times.
Not because they where wrong, but the world changed
![Page 7: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/7.jpg)
Hosted mongodb
Sns/sqs/kinesis
Kops to create a kubernetes cluster
As little control as possible
![Page 8: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/8.jpg)
Create a new service
Creating a new service in 3:ish steps
![Page 9: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/9.jpg)
Create a new service
● Select old service● Press ctrl+c● Press ctrl+v
![Page 10: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/10.jpg)
Create a new service
Search and replace old name with new name
Replace business logic
![Page 11: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/11.jpg)
Create a new service
Extremly booring, but not error prone
![Page 12: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/12.jpg)
Create a new service
Yes we could have a mvn archetype and a pipeline and a…
Don’t automate boring stuff that is easy to get right.
![Page 13: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/13.jpg)
Dont automate because you can
● No deployment pipelines (until we felt we needed them)
● No Cross service integration tests or full blown “staging” tests
![Page 15: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/15.jpg)
Shared things
Small common library
Proxy for verifying authentication etc
Some services, users, groups, comodity booring things
![Page 16: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/16.jpg)
Everything is familiar
Everything looks the same
Experiments are great! But update old services
![Page 17: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/17.jpg)
Everything is familiar
Migrated everything from java to kotlin
Changed from sns/sqs to kinesis and then back again.
Not worth using something if it's not worth updating everything.
![Page 18: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/18.jpg)
No meetings
(except standup and retro)
Full days of coding, day after day
![Page 19: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/19.jpg)
Small isolated system
Making a isolated one team system compared to a multiteam huge fancy thing is like planning a TV dinner compared to a wedding.
![Page 20: How a team of 4 wrote, maintained and operated 50+ services › events › 2019 › stockholm › How-a-te… · Dropwizard java mongodb . Why so many services? We needed to scale!](https://reader033.vdocuments.site/reader033/viewer/2022042410/5f26faca774a1615c5565336/html5/thumbnails/20.jpg)
No fancy solutionsNo snowflakesGreat prestigeless team