Monoliths to Microservices - Practical Tips For CI, CD and DevOps in the Microservices world

342bb314708537a070a80088ec7f7083?s=47 Dave Kerr
October 25, 2017

Monoliths to Microservices - Practical Tips For CI, CD and DevOps in the Microservices world

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!

342bb314708537a070a80088ec7f7083?s=128

Dave Kerr

October 25, 2017
Tweet

Transcript

  1. Monoliths to Microservices Practical Tips For CI, CD and DevOps

    in the Microservices world @dwmkerr Dave Kerr Senior Expert, McKinsey & Company
  2. Who am I? @dwmkerr

  3. I am a technology consultant. @dwmkerr

  4. None
  5. Which is closer to this… @dwmkerr

  6. None
  7. What am I going to talk about? @dwmkerr

  8. The Project. @dwmkerr …or ‘come back WebSphere, all is forgiven’.

  9. 2016 – new digital banking application launched to critical acclaim

    @dwmkerr
  10. Digital garage setup, experienced product team, streets paved with gold.

    @dwmkerr
  11. An effective product team will rapidly surface technological and organisational

    issues. @dwmkerr
  12. I once caught a monolith thiiiiiiiis big

  13. 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
  14. 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 Card management Transfers Fraud ATM switch Interbank switch File Management …etc… Map/ Reduce …etc… Spark Data lake Internal Gateway API Gateway Bill payments Profile & preferences Referrals P2P 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 Existing Retired New Don’t forget to mix in some
  15. People were nervous about all of the changes… @dwmkerr

  16. @dwmkerr

  17. Hic sunt dracones. …practical tips for devops in the microservice

    world…
  18. Tip: Keep pipelines simple @dwmkerr

  19. Tip: Keep pipelines simple. Build: turn code into artifacts Deploy:

    put artifacts somewhere @dwmkerr
  20. Source http://www.dwmkerr.com/simple-continuous-integration-for-docker-images/

  21. Tip: Keep pipelines simple... by embracing make. Step 1: rip

    out logic from your build system to create primitive commands @dwmkerr
  22. Tip: Keep pipelines simple... by embracing make. Step 2: call

    primitive commands from your build system @dwmkerr
  23. Tip: Keep pipelines simple... by embracing make. Step 3: when

    things get complicated, put them into ./scripts @dwmkerr
  24. Tip: Keep pipelines simple... by embracing make. Demo github.com/dwmkerr/beautifully-simple-app-ci @dwmkerr

  25. Tip: Craft Dockerfiles for your projects @dwmkerr

  26. None
  27. 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!
  28. Tip: Craft Dockerfiles for your projects

  29. Tip: Craft Dockerfiles for your projects Demo github.com/dwmkerr/docker-dynamodb @dwmkerr

  30. @dwmkerr Tip: Use the sandbox …and share your toys!

  31. Tip: Use the sandbox Code Sample github.com/dwmkerr/terraform-aws-openshift @dwmkerr

  32. Tip: Use the sandbox Demo github.com/dwmkerr/terraform-aws-openshift @dwmkerr

  33. @dwmkerr Don’t forget to share your toys! …it’ll help you

    find bugs, get more ideas and build a group to collaborate with.
  34. @dwmkerr …one more thing…

  35. @dwmkerr Don’t forget to fall madly in love with Terraform!

  36. @dwmkerr Tip: Make a microservice manifest …say that fast five

    times…
  37. Tip: Make a microservice manifest

  38. Tip: Make a microservice manifest

  39. Tip: The developer’s machine comes first @dwmkerr

  40. 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
  41. Tip: Co-locate code and deployment configuration @dwmkerr

  42. Tip: Co-locate microservice code & deployment config • jenkins /

    circle / gitlab / whatever • k8s / openshift / swarm / whatever • src / test • README! @dwmkerr
  43. Tip: Co-locate microservice code & deployment config If I change

    the logic for my healthcheck, does my config change? @dwmkerr
  44. Tip: Love the shell @dwmkerr

  45. @dwmkerr npm install -g tldr …if I can leave you

    with one gift github.com/dwmkerr/effective-shell
  46. Thanks! A lot of this stuff is on my blog

    and GitHub. @dwmkerr dwmkerr.com github.com/dwmkerr linkedin.com/in/dwmkerr