Packaging, Deployment and DevOps for Python
Shipping Python software: packaging, continuous integration, containers, configuration, deployment and monitoring.
PYTH-260 Year 2 3 credits 12 lessons · 4 h 39 min ▶ Video lessons coming soon
Offered by HSM University · Python Programming
This is the American version of this course. See the Canadian version.
What you'll learn
- Explain what changes when a script becomes a product, and apply reproducibility and automation to remove manual, undocumented steps.
- Lay out a Python project with the src layout and describe it completely in pyproject.toml, including extras, dependency groups and entry points.
- Build sdists and wheels, read wheel filename tags, and publish packages safely to public or private indexes.
- Choose version constraints for libraries and applications, generate hashed lock files, and keep dependencies current and audited.
- Write a continuous integration workflow with a test matrix, ordered jobs, caching and required status checks.
- Package an application as a small, secure container image with a multi-stage Dockerfile, and run it with Docker Compose.
- Load typed configuration from the environment with clear precedence, and store, inject, rotate and scan for secrets correctly.
- Deploy a web application behind a production server and load balancer, with health checks, safe migrations and graceful shutdown.
- Choose a cloud hosting model, describe infrastructure as code, and release with blue-green or canary deployments and practiced rollbacks.
- Instrument an application with structured logs, metrics, percentiles, traces and SLO-based alerts.
- Version releases with semantic versioning, pre-releases and deprecation, and generate changelogs and tags from conventional commits.
- Assemble and operate a complete deployment pipeline from commit to production, with release checks, smoke tests and a runbook.
Course content
12 lessons · 4 h 39 min total · final exam
- 1 From script to product 26 min · quiz
- 2 Project layout and pyproject.toml 23 min · quiz
- 3 Building and publishing packages 23 min · quiz
- 4 Dependency management 21 min · quiz
- 5 Continuous integration pipelines 23 min · quiz
- 6 Containers with Docker 22 min · quiz
- 7 Configuration and secrets 24 min · quiz
- 8 Deploying web applications 23 min · quiz
- 9 Deploying to the cloud 23 min · quiz
- 10 Monitoring and logging in production 23 min · quiz
- 11 Releases and versioning 23 min · quiz
- 12 Capstone: a deployment pipeline 25 min · quiz
- E Final exam 20 questions
Requirements
- PYTH-230 Testing, Debugging and Code Quality
- PYTH-110 Developer Tools and Version Control
- NET-103 Linux Administration
Recommended background. You can start any course at any time.
Description
Shipping Python software: packaging, continuous integration, containers, configuration, deployment and monitoring.
Part of the Information Technology stream, typically taken in year 2.