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

Building Production-Ready Applications

Michael
November 07, 2018

Building Production-Ready Applications

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.

Michael

November 07, 2018
Tweet

More Decks by Michael

Other Decks in Technology

Transcript

  1. How to Build Production-Ready
    Microservices
    Michael Kehoe
    Staff Site Reliability Engineer

    View Slide

  2. This Is The Only Slide You May Need a Picture Of
    slideshare.net/MichaelKehoe3

    View Slide

  3. Today’s
    agenda
    1 Introductions
    2 Tenets of Readiness
    3 Creating Measurable guidelines
    4 Measuring readiness
    5 Key Learning’s
    6 Q&A

    View Slide

  4. Introduction

    View Slide

  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

    View Slide

  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

    View Slide

  7. What is a Production Ready
    Service?

    View Slide

  8. O’Reilly 2017
    Susan J. Fowler
    Production-Ready
    Microservices

    View Slide

  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

    View Slide

  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

    View Slide

  11. How did we get here?

    View Slide

  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

    View Slide

  13. Tenets of readiness

    View Slide

  14. Tenets of
    Readiness
    1 Stability & Reliability
    2 Scalability & Performance
    3 Fault Tolerance & DR
    4 Monitoring
    5 Documentation

    View Slide

  15. Stability & Reliability

    View Slide

  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

    View Slide

  17. Tenets of Readiness
    RELIABILITY
    • Dependency Management
    • Onboarding + Deprecation procedures
    • Routing + Discovery

    View Slide

  18. Scalability & Performance

    View Slide

  19. Tenets of Readiness
    SCALABILITY
    • Understanding growth-scales
    • Resource awareness
    • Dependency scaling

    View Slide

  20. Tenets of Readiness
    PERFORMANCE
    • Constant performance evaluation
    • Traffic management
    • Capacity Planning

    View Slide

  21. Fault Tolerance & DR

    View Slide

  22. Tenets of Readiness
    FAULT TOLERANCE
    • Avoiding Single Points of Failure (SPOF)
    • Resiliency Engineering

    View Slide

  23. Tenets of Readiness
    DISASTER RECOVERY
    • Understand failure scenario’s
    • Disaster Recovery Plans
    • Incident Management

    View Slide

  24. Monitoring

    View Slide

  25. Tenets of Readiness
    MONITORING
    • Dashboards + Alerting for:
    • Service
    • Resource Allocation
    • Infrastructure
    • All alerts are actionable and have pre-
    documented procedures.
    • Logging

    View Slide

  26. Documentation

    View Slide

  27. Tenets of Readiness
    DOCUMENTATION
    • Have one central landing-place for
    documentation for the service
    • Review of documentation from Engineer/
    SRE/ Partners
    • Reviewed Regularly

    View Slide

  28. Tenets of Readiness
    DOCUMENTATION
    • What should documentation include:
    • Key information (ports/ hostnames etc)
    • Description
    • Architecture Diagram
    • API description
    • Oncall information
    • Onboarding information

    View Slide

  29. Creating Measurable
    Guidelines

    View Slide

  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

    View Slide

  31. Creating Measurable Guidelines
    EXAMPLE
    • Stability:
    • Stable development cycle
    • Stable deployment process

    View Slide

  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?

    View Slide

  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?

    View Slide

  34. Measuring Readiness

    View Slide

  35. Measuring Readiness
    WHY?
    Ensuring that services are
    built and operated in a
    standard manner
    Standardization
    Ensuring that services are
    trustworthy
    Quality Assurance

    View Slide

  36. Measuring Readiness
    HOW?
    Create a manual
    checklist
    Manual Checklists
    Automate the discovery
    and measurement of
    readiness
    Automated Scorecards

    View Slide

  37. Breakdown of scores by team
    Automated Service Discovery
    Service Score Card
    Automated Scorecards

    View Slide

  38. Team Overview
    Service Score Card
    Automated Scorecards

    View Slide

  39. Breakdown of readiness results
    Service Score Card
    Automated Scorecards

    View Slide

  40. Key Learnings

    View Slide

  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

    View Slide

  42. Q & A

    View Slide

  43. View Slide