Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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!

Dave Kerr

October 25, 2017
Tweet

More Decks by Dave Kerr

Other Decks in Technology

Transcript

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

    in the Microservices world @dwmkerr Dave Kerr Senior Expert, McKinsey & Company
  2. 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
  3. 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
  4. Tip: Keep pipelines simple... by embracing make. Step 1: rip

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

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

    things get complicated, put them into ./scripts @dwmkerr
  7. 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!
  8. @dwmkerr Don’t forget to share your toys! …it’ll help you

    find bugs, get more ideas and build a group to collaborate with.
  9. 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
  10. Tip: Co-locate microservice code & deployment config • jenkins /

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

    the logic for my healthcheck, does my config change? @dwmkerr
  12. @dwmkerr npm install -g tldr …if I can leave you

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

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