Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

QConSF 2018: Building Production-Ready Applications

88 vues

Publié le

In 2016, Susan Fowler released the 'Production Ready Microservices' book. This book sets an industry benchmark on explaining how microservices should be conceived, all the way through to documentation. So how does this translate actionable items? This session will explore how to expertly deploy your microservice to production. The audience will learn best practice for designing, deploying, monitoring & documenting application. By the end of the session, attendees should feel confident that they have the knowledge to deploy a service that will be reliable and scalable.

Publié dans : Ingénierie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

QConSF 2018: Building Production-Ready Applications

  1. 1. How to Build Production-Ready Microservices Michael Kehoe Staff Site Reliability Engineer
  2. 2. This Is The Only Slide You May Need a Picture Of slideshare.net/MichaelKehoe3
  3. 3. Today’s agenda 1 Introductions 2 Tenets of Readiness 3 Creating Measurable guidelines 4 Measuring readiness 5 Key Learning’s 6 Q&A
  4. 4. Introduction
  5. 5. Michael Kehoe $ WHOAMI • Staff Site Reliability Engineer @ LinkedIn • Production-SRE Team • Find me online at: • @matrixtek • https://michael-kehoe.io • linkedin.com/in/michaelkkehoe
  6. 6. Production-SRE Team @ LinkedIn $ WHOAMI • Disaster Recovery - Planning & Automation • Incident Response – Process & Automation • Visibility Engineering – Making use of operational data • Reliability Principles – Defining best practice & automating it
  7. 7. What is a Production Ready Service?
  8. 8. O’Reilly 2017 Susan J. Fowler Production-Ready Microservices
  9. 9. “A production-ready application or service is one that can be trusted to serve production traffic…” S U S A N J . F O W L E R
  10. 10. “… We trust it to behave reasonably, we trust it to perform reliably, we trust it to get the job done and to do its job well with very little downtime.” S U S A N J . F O W L E R
  11. 11. How did we get here?
  12. 12. How did we get here? Monoliths broken down into smaller applications Microservice architecture Developers can commit & deploy code faster Continuous Integration Teams supporting a larger number of applications Ops team support
  13. 13. Tenets of readiness
  14. 14. Tenets of Readiness 1 Stability & Reliability 2 Scalability & Performance 3 Fault Tolerance & DR 4 Monitoring 5 Documentation
  15. 15. Stability & Reliability
  16. 16. Tenets of Readiness STABILITY • Stable development cycle • Continuous Integration • Reproducible builds • Unit/ Integration testing • Stable deployment cycle • Simple repeatable deploys • Canaries/ Dark Canaries/ Staging
  17. 17. Tenets of Readiness RELIABILITY • Dependency Management • Onboarding + Deprecation procedures • Routing + Discovery
  18. 18. Scalability & Performance
  19. 19. Tenets of Readiness SCALABILITY • Understanding growth-scales • Resource awareness • Dependency scaling
  20. 20. Tenets of Readiness PERFORMANCE • Constant performance evaluation • Traffic management • Capacity Planning
  21. 21. Fault Tolerance & DR
  22. 22. Tenets of Readiness FAULT TOLERANCE • Avoiding Single Points of Failure (SPOF) • Resiliency Engineering
  23. 23. Tenets of Readiness DISASTER RECOVERY • Understand failure scenario’s • Disaster Recovery Plans • Incident Management
  24. 24. Monitoring
  25. 25. Tenets of Readiness MONITORING • Dashboards + Alerting for: • Service • Resource Allocation • Infrastructure • All alerts are actionable and have pre- documented procedures. • Logging
  26. 26. Documentation
  27. 27. Tenets of Readiness DOCUMENTATION • Have one central landing-place for documentation for the service • Review of documentation from Engineer/ SRE/ Partners • Reviewed Regularly
  28. 28. Tenets of Readiness DOCUMENTATION • What should documentation include: • Key information (ports/ hostnames etc) • Description • Architecture Diagram • API description • Oncall information • Onboarding information
  29. 29. Creating Measurable Guidelines
  30. 30. Creating Measurable Guidelines • Not all guidelines directly translate into something measurable • You may need to look outcomes of specific guidance to create measurable guidelines
  31. 31. Creating Measurable Guidelines EXAMPLE • Stability: • Stable development cycle • Stable deployment process
  32. 32. Creating Measurable Guidelines EXAMPLE • Stable development cycle à Is the unit-test coverage above X %? à Has this code-base been built in the last week? à Are all the library dependencies up-to- date?
  33. 33. Creating Measurable Guidelines EXAMPLE • Stable deployment process à Has the application been deployed recently? à What is the successful deployment percentage? à Is there a staging environment for the application?
  34. 34. Measuring Readiness
  35. 35. Measuring Readiness WHY? Ensuring that services are built and operated in a standard manner Standardization Ensuring that services are trustworthy Quality Assurance
  36. 36. Measuring Readiness HOW? Create a manual checklist Manual Checklists Automate the discovery and measurement of readiness Automated Scorecards
  37. 37. Breakdown of scores by team Automated Service Discovery Service Score Card Automated Scorecards
  38. 38. Team Overview Service Score Card Automated Scorecards
  39. 39. Breakdown of readiness results Service Score Card Automated Scorecards
  40. 40. Key Learnings
  41. 41. Key Learnings A set of guidelines for what it means for your service to be ‘ready’ Create Automate the checking and scoring of these guidelines Automate Set the expectation between Engineering/ Product/ SRE that these guidelines have to be met Evangelize
  42. 42. Q & A

×