Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

PyBay 2018: Production-Ready Python Applications Slide 1 PyBay 2018: Production-Ready Python Applications Slide 2 PyBay 2018: Production-Ready Python Applications Slide 3 PyBay 2018: Production-Ready Python Applications Slide 4 PyBay 2018: Production-Ready Python Applications Slide 5 PyBay 2018: Production-Ready Python Applications Slide 6 PyBay 2018: Production-Ready Python Applications Slide 7 PyBay 2018: Production-Ready Python Applications Slide 8 PyBay 2018: Production-Ready Python Applications Slide 9 PyBay 2018: Production-Ready Python Applications Slide 10 PyBay 2018: Production-Ready Python Applications Slide 11 PyBay 2018: Production-Ready Python Applications Slide 12 PyBay 2018: Production-Ready Python Applications Slide 13 PyBay 2018: Production-Ready Python Applications Slide 14 PyBay 2018: Production-Ready Python Applications Slide 15 PyBay 2018: Production-Ready Python Applications Slide 16 PyBay 2018: Production-Ready Python Applications Slide 17 PyBay 2018: Production-Ready Python Applications Slide 18 PyBay 2018: Production-Ready Python Applications Slide 19 PyBay 2018: Production-Ready Python Applications Slide 20 PyBay 2018: Production-Ready Python Applications Slide 21 PyBay 2018: Production-Ready Python Applications Slide 22 PyBay 2018: Production-Ready Python Applications Slide 23 PyBay 2018: Production-Ready Python Applications Slide 24 PyBay 2018: Production-Ready Python Applications Slide 25 PyBay 2018: Production-Ready Python Applications Slide 26 PyBay 2018: Production-Ready Python Applications Slide 27 PyBay 2018: Production-Ready Python Applications Slide 28 PyBay 2018: Production-Ready Python Applications Slide 29 PyBay 2018: Production-Ready Python Applications Slide 30 PyBay 2018: Production-Ready Python Applications Slide 31 PyBay 2018: Production-Ready Python Applications Slide 32 PyBay 2018: Production-Ready Python Applications Slide 33 PyBay 2018: Production-Ready Python Applications Slide 34 PyBay 2018: Production-Ready Python Applications Slide 35 PyBay 2018: Production-Ready Python Applications Slide 36 PyBay 2018: Production-Ready Python Applications Slide 37 PyBay 2018: Production-Ready Python Applications Slide 38 PyBay 2018: Production-Ready Python Applications Slide 39 PyBay 2018: Production-Ready Python Applications Slide 40 PyBay 2018: Production-Ready Python Applications Slide 41 PyBay 2018: Production-Ready Python Applications Slide 42 PyBay 2018: Production-Ready Python Applications Slide 43 PyBay 2018: Production-Ready Python Applications Slide 44 PyBay 2018: Production-Ready Python Applications Slide 45 PyBay 2018: Production-Ready Python Applications Slide 46 PyBay 2018: Production-Ready Python Applications Slide 47 PyBay 2018: Production-Ready Python Applications Slide 48
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

1 Like

Share

Download to read offline

PyBay 2018: Production-Ready Python Applications

Download to read offline

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 for Python applications? This session will explore how to expertly deploy your Python micro-service to production.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

PyBay 2018: Production-Ready Python Applications

  1. 1. Production-Ready Python applications Michael Kehoe Staff Site Reliability Engineer
  2. 2. Today’s agenda 1 Introduction 2 Tenets of Readiness 3 Building Production-Ready Python Applications 4 Recap
  3. 3. Introduction
  4. 4. Michael Kehoe $ /USR/BIN/WHOAMI • Staff Site Reliability Engineer @ LinkedIn • Production-SRE Team • Funny accent = Australian + 4 years American • Worked on: • Networks • Micro-services • Traffic Engineering • Databases
  5. 5. Production-SRE Team @ LinkedIn $ /USR/BIN/WHOAMI • Disaster Recovery - Planning & Automation • Incident Response – Process & Automation • Visibility Engineering – Making use of operational data • Reliability Principles – Defining best practice & automating it
  6. 6. Production-Ready Python Applications • This talk is a high-level overview of what it takes to build a production-ready service • Each of the topics could be its own separate talk • Focus on standard open-source options • Number of options not mentioned
  7. 7. What makes an application Production-Ready?
  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. Tenets of readiness
  12. 12. Tenets of Readine ss 1 Stability 2 Reliability 3 Scalability 4 Performance 5 Fault Tolerance 6 Disaster Recovery 7 Monitoring 8 Documentation
  13. 13. Building Production-Ready Python applications
  14. 14. Stability
  15. 15. Tenets of Readiness STABILITY • Stable development cycle • Code Linting • Code Review • Central Repository • Build system • See Fabio Fleitas’s talk from Saturday
  16. 16. Tenets of Readiness STABILITY • Stable deployment cycle • Canary/ Staging environment • Reliable Deployment via: • Docker/ Kubernetes • Heroku • CD tools
  17. 17. Reliability
  18. 18. Tenets of Readiness RELIABILITY • Dependency Management • Onboarding + Deprecation procedures • See Documentation section • Routing + Discovery • Etcd • PyDiscover • Consul-service-discovery
  19. 19. Scalability
  20. 20. Tenets of Readiness SCALABILITY • Understanding growth-scales • Qualitative vs quantitative growth scale • Resource awareness • Dependency scaling • What services/ databases need to scale
  21. 21. Performance
  22. 22. Tenets of Readiness PERFORMANCE • Constant performance evaluation • Understand how to benchmark application • Traffic management • Understand traffic pattern performance • Capacity Planning • Have the right metrics
  23. 23. Fault Tolerance
  24. 24. Tenets of Readiness FAULT TOLERANCE • Avoiding Single Points of Failure (SPOF) • Use multiple instances behind a load balancer • Catch exceptions (meaningfully)
  25. 25. Tenets of Readiness FAULT TOLERANCE • Resiliency Engineering • Add testing to verify that non-standard behavior is handled correctly • Run chaos experiments: • DNS/ Network failures • Consume disk space/ IO • Consume CPU
  26. 26. Disaster Recovery
  27. 27. Tenets of Readiness DISASTER RECOVERY • Understand common failures • Have an application-specific disaster- recovery plan in place • Have a general incident management plan
  28. 28. Tenets of Readiness DISASTER RECOVERY: DAEMONS
  29. 29. Tenets of Readiness DISASTER RECOVERY: FLASK APP
  30. 30. Monitoring
  31. 31. Tenets of Readiness MONITORING • Logging • Tracing • Metrics  Dashboards/ Alerts
  32. 32. Tenets of Readiness MONITORING: LOGGING https://docs.python.org/2/library/logging.handlers.html#sysloghandler
  33. 33. Tenets of Readiness MONITORING: TRACING • Multiple (free/ open-source) Options • Opentracing • Jaeger • Zipkin (various community libraries)
  34. 34. Tenets of Readiness MONITORING: METRICS • Multiple (free/ open-source) Options • Statsd • Jaeger • prometheus
  35. 35. Monitoring: Metrics
  36. 36. Documentation
  37. 37. In-Code Documentation What you should be covering • Function/ API & Class docstrings • Code usage documentation • Project documentation • Onboarding • Contribution • Testing
  38. 38. Tenets of Readiness DOCUMENTATION How to do it? • Sphinx • JavaDoc • Doxygen • Etc….
  39. 39. Documentation RESTRUCTURED TEXT EXAMPLE https://github.com/requests/requests/blob/master/requests/api.py
  40. 40. Documentation RESTRUCTURED TEXT EXAMPLE http://docs.python-requests.org/en/master/api/
  41. 41. Documentation RESTRUCTURED TEXT EXAMPLE https://github.com/requests/requests/blob/master/requests/api.py
  42. 42. Documentation RESTRUCTURED TEXT EXAMPLE http://docs.python-requests.org/en/master/api/
  43. 43. Documentation https://oncall.tools/docs/
  44. 44. Documentation • Relevant PEP’s: • PEP -257: Docstring Conventions • PEP-287: reStructured Docstring Format (Official Python Documentation Standard) • Further info: • https://pythonhosted.org/an_example_ pypi_project/sphinx.html • https://realpython.com/documenting- python-code
  45. 45. Recap
  46. 46. Tenets of Readine ss 1 Stability 2 Reliability 3 Scalability 4 Performance 5 Fault Tolerance 6 Disaster Recovery 7 Monitoring 8 Documentation
  47. 47. Further Resources • Find me at: • michael-kehoe.io • @matrixtek • linkedin.com/in/michaelkkehoe • Slides will be available in multiple locations shortly
  • KellyPalmer45

    Nov. 29, 2021

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 for Python applications? This session will explore how to expertly deploy your Python micro-service to production.

Views

Total views

402

On Slideshare

0

From embeds

0

Number of embeds

53

Actions

Downloads

3

Shares

0

Comments

0

Likes

1

×