Euan Finlay microservices to Kubernetes Switching Horses ... · Switching Horses Midstream The challenge of migrating 150 microservices to Kubernetes Euan Finlay @efinlay24

Post on 30-May-2020

13 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Switching HorsesMidstreamThe challenge of migrating 150microservices to Kubernetes

Euan Finlay@efinlay24

@efinlay24

@efinlay24

/usr/bin/whoami

@efinlay24

/usr/bin/whodoiworkfor

No such file or directory.

@efinlay24

https://www.ft.com

https://www.ft.com https://www.iquestgroup.com

@efinlay24

@efinlay24

@efinlay24

@efinlay24

Running highly availableservices is complicated.

2015 > Docker in production.201620172018

https://blog.gardeviance.org/2014/03/on-mapping-and-evolution-axis.html

Spend your innovation tokens wisely.

http://mcfunley.com/choose-boring-technology

For us, the benefitsoutweighed the risks.

@efinlay24

Our AWS costs droppedby around 40%.

@efinlay24

It was much easier to buildand deploy new services.

@efinlay24

However, supporting a home-built platform can be difficult.

@efinlay24

It's even harder when you don'tfully understand how it works.

@efinlay24

Choose boring technology.

http://mcfunley.com/choose-boring-technology

20152016 > Tools started maturing.20172018

https://blog.gardeviance.org/2014/03/on-mapping-and-evolution-axis.html

We are not a clusterorchestration company.

@efinlay24

In late 2016, we started toinvestigate alternatives.

@efinlay24

Metric for success #1:Reduce the amount of time spent keeping production healthy.

@efinlay24

Metric for success #2:Reduce the number ofsarcastic comments on Slack.

@efinlay24

@efinlay24

We chose Kubernetes.

@efinlay24

https://twitter.com/lizrice/status/828872836777385984

Using leading edge technologies requires you to be comfortablewith change.

@efinlay24

Switching horses midstreamimage?

201520162017 > Kubernetes migration begins.2018

Lots of other work going on at the same time

@efinlay24

Running in parallelcomplicates things further.

@efinlay24

During our parallel run, therewere over 2000 code releases.

@efinlay24

https://helm.sh/

Integrating the service into a templated jenkins pipeline

Each individual change wasn't huge,but 150 small changes add up quickly.

@efinlay24

Unfortunately, we discovereda lot of broken things...

@efinlay24

Some services hadn't been builtfor a very long time.

@efinlay24

Nightly builds can help,even if you don’t deploy them.

@efinlay24

Not all of our service healthendpoints worked correctly.

@efinlay24

Some of our servicesdidn't restart gracefully.

@efinlay24

We always want to improve things.

@efinlay24

We had to get everyone involved.

@efinlay24

Feedback from our teamswas essential.

@efinlay24

We should have swarmedon the work for longer.

@efinlay24

Running in parallel increasedour release overheads.

@efinlay24

...and also increasedour AWS costs.

@efinlay24

Not just AWS costs either

@efinlay24

https://www.youtube.com/watch?v=sJx_emIiABk

Platform migration is a marathon,not a sprint.

@efinlay24

Don't underestimate the timeand resources required tomigrate to Kubernetes.

@efinlay24

Our iQuest colleagues were essential to making this successful.

Thank you, Tommy and Sorin. :)

@efinlay24

2015201620172018 > Kubernetes go-live.

Everything went smoothly.

@efinlay24

Was it worth it?

@efinlay24

We have a far more stable platform.

@efinlay24

We have happier developers.

@efinlay24

We can learn from others.

And we can share our knowledge.

@efinlay24

@efinlay24

@efinlay24

Nearly the end.

(don't clap yet)

@efinlay24

Sarah Wells@sarahjwells

https://www.youtube.com/watch?v=H06qrNmGqyE

The end.

(please clap)

@efinlay24euan.finlay@ft.com

top related