20
How a team of 4 wrote, maintained and operated 50+ services

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!

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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!

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 14: 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://xkcd.com/1319/

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!

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!

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!

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!

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!

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!

No fancy solutionsNo snowflakesGreat prestigeless team