Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Monoliths to Microservices
Practical Tips For CI, CD and DevOps in the Microservices world
@dwmkerr
Dave Kerr
Senior Exper...
Who am I?
@dwmkerr
I am a technology consultant.
@dwmkerr
Which is closer to this…
@dwmkerr
What am I going to talk about?
@dwmkerr
The Project.
@dwmkerr
…or ‘come back WebSphere, all is forgiven’.
2016 – new digital banking
application launched to critical
acclaim
@dwmkerr
Digital garage setup, experienced
product team, streets paved with
gold.
@dwmkerr
An effective product
team will rapidly surface
technological and organisational
issues.
@dwmkerr
I once caught a monolith
thiiiiiiiis big
Solution
Rebuild
Stack
Refresh
105 people
60 devs
5 tech leads
2 architects
9 months
React Native
Node.js
Kubernetes
Graph...
Our vision is to replace large complicated systems
with small and simple units
Mobile Web
Monolith
Integrator ESB
SC
CI/CD...
People were nervous about all of
the changes…
@dwmkerr
@dwmkerr
Hic sunt dracones.…practical tips for devops in the microservice world…
Tip: Keep pipelines simple
@dwmkerr
Tip: Keep pipelines simple.
Build: turn code into artifacts
Deploy: put artifacts somewhe
@dwmkerr
Source
http://www.dwmkerr.com/simple-continuous-integration-for-docker-images/
Tip: Keep pipelines simple... by embracing make.
Step 1: rip out logic from your build system to create primitive
commands...
Tip: Keep pipelines simple... by embracing make.
Step 2: call primitive commands from your build system
@dwmkerr
Tip: Keep pipelines simple... by embracing make.
Step 3: when things get complicated, put them into ./scripts
@dwmkerr
Tip: Keep pipelines simple... by embracing make.
Demo
github.com/dwmkerr/beautifully-simple-app-ci
@dwmkerr
Tip: Craft Dockerfiles for your
projects
@dwmkerr
Tip: Craft Dockerfiles for your projects
A project’s baseline image for a Node 8 microservice. Handles: build-time proxies...
Tip: Craft Dockerfiles for your projects
Tip: Craft Dockerfiles for your projects
Demo
github.com/dwmkerr/docker-dynamodb
@dwmkerr
@dwmkerr
Tip: Use the sandbox
…and share your toys!
Tip: Use the sandbox
Code Sample
github.com/dwmkerr/terraform-aws-openshift
@dwmkerr
Tip: Use the sandbox
Demo
github.com/dwmkerr/terraform-aws-openshift
@dwmkerr
@dwmkerr
Don’t forget to share your toys!
…it’ll help you find bugs, get more ideas and build a group to
collaborate with.
@dwmkerr
…one more thing…
@dwmkerr
Don’t forget to fall madly in love
with Terraform!
@dwmkerr
Tip: Make a microservice manifest
…say that fast five times…
Tip: Make a microservice manifest
Tip: Make a microservice manifest
Tip: The developer’s machine
comes first
@dwmkerr
Tip: The developer’s machine comes first
• Never sacrifice developer experience
• Use docker-compose liberally
• You shoul...
Tip: Co-locate code and
deployment configuration
@dwmkerr
Tip: Co-locate microservice code & deployment config
• jenkins / circle / gitlab / whatever
• k8s / openshift / swarm / wh...
Tip: Co-locate microservice code & deployment config
If I change the logic for my
healthcheck, does my config change?
@dwm...
Tip: Love the shell
@dwmkerr
@dwmkerr
npm install -g tldr
…if I can leave you with one gift
github.com/dwmkerr/effective-shell
Thanks!
A lot of this stuff is on my blog and GitHub.
@dwmkerr
dwmkerr.com
github.com/dwmkerr
linkedin.com/in/dwmkerr
Monoliths To Microservices - Practical Tips For CI, CD And DevOps in the Microservice World
Monoliths To Microservices - Practical Tips For CI, CD And DevOps in the Microservice World
Monoliths To Microservices - Practical Tips For CI, CD And DevOps in the Microservice World
Upcoming SlideShare
Loading in …5
×

Monoliths To Microservices - Practical Tips For CI, CD And DevOps in the Microservice World

520 views

Published on

Video: https://www.youtube.com/watch?v=NVb7aljfKYo&feature=youtu.be&t=6657

As the popularity of microservice architecture grows, CI and CD becomes more and more critical. Systems which contain dozens of services and diverse databases can get very challenging to manage. In this presentation I’ll take you through some hands on patterns which you can use to help you better manage your microservices!

Published in: Technology
  • Be the first to comment

Monoliths To Microservices - Practical Tips For CI, CD And DevOps in the Microservice World

  1. 1. Monoliths to Microservices Practical Tips For CI, CD and DevOps in the Microservices world @dwmkerr Dave Kerr Senior Expert, McKinsey & Company
  2. 2. Who am I? @dwmkerr
  3. 3. I am a technology consultant. @dwmkerr
  4. 4. Which is closer to this… @dwmkerr
  5. 5. What am I going to talk about? @dwmkerr
  6. 6. The Project. @dwmkerr …or ‘come back WebSphere, all is forgiven’.
  7. 7. 2016 – new digital banking application launched to critical acclaim @dwmkerr
  8. 8. Digital garage setup, experienced product team, streets paved with gold. @dwmkerr
  9. 9. An effective product team will rapidly surface technological and organisational issues. @dwmkerr
  10. 10. I once caught a monolith thiiiiiiiis big
  11. 11. Solution Rebuild Stack Refresh 105 people 60 devs 5 tech leads 2 architects 9 months React Native Node.js Kubernetes GraphQL DevOps 2.0 Hiring Overhaul New HR processes > 50 new hires Sometimes there are no easy answers… Extensive Training Backend Frontend Scrum / Agile PMO Let’s talk about this… @dwmkerr
  12. 12. Our vision is to replace large complicated systems with small and simple units Mobile Web Monolith Integrator ESB SC CI/CD Artefacts APM Logs Core Cardmanagement Transfers Fraud ATMswitch Interbankswitch FileManagement …etc… Map/ Reduce …etc… Spark Data lake Internal Gateway API Gateway Bill payments Profile & preferences ReferralsP2P payments 2FA, TX signing, soft- Token Contacts & groups Statements Device management Cards Identity management Notifications & inbox Accounts & transfers Mobile Web Existing server applications Enterprise integration Core platforms & databases Service zones Devops zone Analytics zone ExistingRetired New Don’t forget to mix in some
  13. 13. People were nervous about all of the changes… @dwmkerr
  14. 14. @dwmkerr
  15. 15. Hic sunt dracones.…practical tips for devops in the microservice world…
  16. 16. Tip: Keep pipelines simple @dwmkerr
  17. 17. Tip: Keep pipelines simple. Build: turn code into artifacts Deploy: put artifacts somewhe @dwmkerr
  18. 18. Source http://www.dwmkerr.com/simple-continuous-integration-for-docker-images/
  19. 19. Tip: Keep pipelines simple... by embracing make. Step 1: rip out logic from your build system to create primitive commands @dwmkerr
  20. 20. Tip: Keep pipelines simple... by embracing make. Step 2: call primitive commands from your build system @dwmkerr
  21. 21. Tip: Keep pipelines simple... by embracing make. Step 3: when things get complicated, put them into ./scripts @dwmkerr
  22. 22. Tip: Keep pipelines simple... by embracing make. Demo github.com/dwmkerr/beautifully-simple-app-ci @dwmkerr
  23. 23. Tip: Craft Dockerfiles for your projects @dwmkerr
  24. 24. Tip: Craft Dockerfiles for your projects A project’s baseline image for a Node 8 microservice. Handles: build-time proxies, NPM registry, non-root users, version tracking and allows the base OS to be changed. This Dockerfile is sneaky – no file system changes, only instructions for later builds!
  25. 25. Tip: Craft Dockerfiles for your projects
  26. 26. Tip: Craft Dockerfiles for your projects Demo github.com/dwmkerr/docker-dynamodb @dwmkerr
  27. 27. @dwmkerr Tip: Use the sandbox …and share your toys!
  28. 28. Tip: Use the sandbox Code Sample github.com/dwmkerr/terraform-aws-openshift @dwmkerr
  29. 29. Tip: Use the sandbox Demo github.com/dwmkerr/terraform-aws-openshift @dwmkerr
  30. 30. @dwmkerr Don’t forget to share your toys! …it’ll help you find bugs, get more ideas and build a group to collaborate with.
  31. 31. @dwmkerr …one more thing…
  32. 32. @dwmkerr Don’t forget to fall madly in love with Terraform!
  33. 33. @dwmkerr Tip: Make a microservice manifest …say that fast five times…
  34. 34. Tip: Make a microservice manifest
  35. 35. Tip: Make a microservice manifest
  36. 36. Tip: The developer’s machine comes first @dwmkerr
  37. 37. Tip: The developer’s machine comes first • Never sacrifice developer experience • Use docker-compose liberally • You should be able to deploy to production from anyone’s machine, as long as they have credentials @dwmkerr
  38. 38. Tip: Co-locate code and deployment configuration @dwmkerr
  39. 39. Tip: Co-locate microservice code & deployment config • jenkins / circle / gitlab / whatever • k8s / openshift / swarm / whatever • src / test • README! @dwmkerr
  40. 40. Tip: Co-locate microservice code & deployment config If I change the logic for my healthcheck, does my config change? @dwmkerr
  41. 41. Tip: Love the shell @dwmkerr
  42. 42. @dwmkerr npm install -g tldr …if I can leave you with one gift github.com/dwmkerr/effective-shell
  43. 43. Thanks! A lot of this stuff is on my blog and GitHub. @dwmkerr dwmkerr.com github.com/dwmkerr linkedin.com/in/dwmkerr

×