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

Adopt a painless continuous delivery culture, add more business value

Adopt a painless continuous delivery culture, add more business value

A talk for DevOps Days Portland (PDX) 2017 - Aug 1.

A continuous delivery of new features definitely adds value to the business, it should be effortless for the tech team too. 5 years back our sys-admin team was in Istanbul and the dev team was in Dubai. Even then changes were shipped periodically but the process was cumbersome. A stable delivery pipeline with tests, continuous integration and small atomic deployments with GitHub flow gives us a leading-edge. The culture of logging and monitoring ingrained in our team helps us move fast. Now, we ask a chatbot to deploy our microservices several times a day to production. In this session, I will unveil details on how you can get started with a smooth continuous delivery pipeline one step at a time.

1b031ccbf968811f157cf7a892dddfed?s=128

Geshan Manandhar

August 02, 2017
Tweet

Transcript

  1. Adopt a painless continuous delivery culture, add more business value

    Geshan Manandhar @geshan DevOpsDays PDX 2017
  2. ◉ Senior Software Engineer ◦ Tech solution provider ◉ Agile

    follower ◉ Conditional microservices believer whoami
  3. I am from Kathmandu, Nepal

  4. Currently living in Dubai, UAE

  5. Working for Namshi

  6. What to expect from this talk?

  7. “ “Your deploys should be as boring, straightforward, and stress-free

    as possible.” - Zach Holman Source:https://zachholman.com/posts/deploying-software
  8. We used to deploy with email requests 5 years back

  9. Now we deploy changes in a matter of minutes using

    a chat bot
  10. What is continuous delivery?

  11. “ “Continuous Delivery is a software development discipline where you

    build software in such a way that the software can be released to production at any time.” - Martin Fowler Source: https://martinfowler.com/bliki/ContinuousDelivery.html
  12. “ “Continuous Delivery is the ability to get changes of

    all types into production, or into the hands of users, safely and quickly in a sustainable way.” - Jez Humble Source: https://continuousdelivery.com/
  13. “ “Continuous Delivery is the ability to release software changes

    to the end users, as soon as it is production ready without following a rigid schedule.”
  14. Continuous Delivery Vs Continuous Deployment Source: http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment

  15. “ “Wealth is created from creating value.” - Randy Gage

    Source: http://www.randygage.com/how-you-create-wealth/
  16. “ “Your work responsibilities boil down to 2 things, either

    add value to customers or save cost for the business.”
  17. How we do continuous delivery at Namshi

  18. Tech stack at Namshi

  19. There are ~100 microservices at Namshi

  20. Servers on AWS are managed with salt stack and terraform

  21. Small part of the backend is in PHP, other apps

    are built with NodeJs + Js
  22. All apps are dockerized

  23. Apps are deployed with Kubernetes

  24. Easy Deployment process Nancy Deploy Kube deploy Deploy output Deploy

    Result
  25. Every change is tracked both application code and infrastructure code

  26. Continuous delivery at Namshi

  27. Software delivery pipeline at Namshi Code is pushed to github

    on a feature branch Tests run on CI server (Travis) Changes are peer reviewed Changes are tested on staging Changes are pushed to production (with a tag) Logs and resources are monitored After sometime tag is merged to master
  28. Adopting github flow was a game changer

  29. Migrating to a REST based JSON API triggred a transformation

  30. Moving to microservices enabled us to ship changes faster

  31. A culture of central logging and monitoring is important

  32. Shipping docker containers is more consistent than shipping just code

  33. Feature flags and canary deployments keep us on the safe

    side
  34. We used GoReplay to replay production traffic to staging

  35. helped us load test some of our customer facing apps

  36. Phase 3 - 2016 - 2017 • Docker in dev

    and in production with Kubernetes • Logs centralized on Sematext • Grafana dashboard Phase 1 - 2012 - 2013 • In-house team • Config management tool • Central logs with graylog Phase 02 - 2014 - 2015 • Github flow (atomic deployments) • Vagrant for devs • Infrastructure as code PHASE 1 PHASE 2 PHASE 3 Our DevOps (SRE) Journey
  37. How you can get started with a smooth continuous delivery

    pipeline
  38. Start with automated deployment, target ZDD

  39. Introduce testing and implement continuous integration

  40. Kickoff logging and monitoring for the team

  41. Follow on with infrastructure as code with disaster recovery

  42. Put in configuration management tools in practice

  43. Key Takeaways

  44. Automate your process, track each change

  45. If you can, always do small atomic deployments with github

    flow
  46. Strong culture of logging and monitoring will take you a

    long way
  47. Infrastructure as code software and config mgmt tools are life

    savers
  48. Do effective postmortem discussions and implement action items

  49. Namshi is Hiring You can find me at ◉ @geshan

    ◉ Geshan.com.np ◉ Slides: http://bit.ly/cdbv-gm Thanks! Presentation template by SlidesCarnival Namshi: ◉ Tech.namshi.io - Tech Blog ◉ work-in-tech@namshi.com
  50. Credits/References ◉ https://pixabay.com/en/primate-ape-thinking-mimic-view-1019101/ ◉ https://pixabay.com/en/running-sprint-cinder-track-498257/ ◉ https://pixabay.com/en/stacked-stones-cairn-rock-balance-1007944/ ◉ https://pixabay.com/en/lego-stones-build-toy-622602/ ◉

    https://pixabay.com/en/child-childrens-baby-children-s-817368/ ◉ https://pixabay.com/en/crystal-salt-stone-white-salt-955935/ ◉ https://pixabay.com/en/military-jet-flight-flying-f-15-1096881/ ◉ https://pixabay.com/en/discovery-space-shuttle-launch-1087701/ ◉ https://pixabay.com/en/rocket-launch-smoke-rocket-take-off-67723/ ◉ https://pixabay.com/en/ledger-accounting-business-money-1428230/ ◉ https://pixabay.com/en/tractor-vehicles-farm-machinery-387275/ ◉ https://pixabay.com/en/workplace-team-business-meeting-1245776/ ◉ https://pixabay.com/en/network-server-system-2402637/ ◉ https://pixabay.com/en/logs-wood-timber-lumber-woodpile-498538/ ◉ https://pixabay.com/en/sunset-sea-the-sun-clouds-1603974/ ◉ ◉ ◉ Dubai - https://pixabay.com/en/dubai-burj-khalifa-skyscraper-night-1085058/ ◉ Kathmandu - https://pixabay.com/en/nepal-kathmandu-buddhism-pagodas-306621/