euan finlay microservices to kubernetes switching horses ... · switching horses midstream the...
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)