Efficient Python Production Workflows
54mIntermediate2019-12-11
Authors

Miki Tebeka
CEO at 353Solutions
Course details
Writing code can be easy, but maintaining a product is always a challenge. In this course, learn what it takes to efficiently manage your Python projects. Instructor Miki Tebeka delves into the ancillary tasks around Python programming, such as dependency management, development methodologies, metrics, logging, testing, and deployment. While these topics aren't strictly related to coding, they're essential to making sure your code is production ready. Learn how to tackle challenges related to dependency management, effectively approach testing, configure a logging system, design metrics, leverage different deployment strategies, and more.
Learning objectives
Working effectively with a team
Effective dependency management
Production vs. development environments
Determining which kinds of tests to use
Sending feedback to developers
Why logging is a valuable asset
Configuring a logging system
Deployment strategies
Using Fabric to automate deployment
Learning objectives
Working effectively with a team
Effective dependency management
Production vs. development environments
Determining which kinds of tests to use
Sending feedback to developers
Why logging is a valuable asset
Configuring a logging system
Deployment strategies
Using Fabric to automate deployment
Skills covered
PythonProgramming LanguagesOpen SourceSoftware DevelopmentDeep Dive (X:Y)
Concepts
0. Introduction
- 01 - Creating efficient Python projects
- 02 - What you should know
- 03 - Using the exercise files
1. The Production Process
- 04 - Working together as a team
- 05 - Avoid mistakes
- 06 - Feedback loop
2. Dependecy Management
- 07 - The problem
- 08 - Package managers
- 09 - Production vs. development
- 10 - Internal PyPI vendoring
- 11 - Docker
- 12 - Challenge - Gunicorn
- 13 - Solution - Gunicorn
3. Testing
- 14 - What to test
- 15 - CI CD
- 16 - Development vs. CI environment
- 17 - Feedback to developers
4. Logging
- 18 - Eyes to production
- 19 - Python loggers
- 20 - Log configuration
- 21 - Dynamic configuration
- 22 - Structured logging
- 23 - Log aggregators
- 24 - Challenge - Configure logging
- 25 - Solution - Configure logging
5. Metrics
- 26 - What are metrics
- 27 - Types of metrics
- 28 - Designing metrics
- 29 - Metrics decorators
- 30 - Metrics systems
- 31 - Altering
- 32 - Challenge - report errors metrics decorator
- 33 - Solution - report errors metris decorator
6. Deployment
- 34 - main .py
- 35 - Deployment problems
- 36 - Deployment strategies
- 37 - Reverting deployment
- 38 - Use Fabric to automate deployment
- 39 - Continuous delivery
Conclusion
- 40 - Next steps