Lessons Learned While Building a Production Deployment PipelineWhen people think about DevOps, they usually imagine Docker, Kubernetes, cloud servers, and CI/CD pipelines. What they don't see are the countless hours spent debugging, validating deployments, tracinJun 20, 2026·6 min read
Managing Background Tasks in Django Using Celery and RedisPart 7 of the AfiyaVest DevOps Deployment Series Modern web applications are expected to respond instantly, even when they're performing time-consuming operations behind the scenes. Tasks such as senJun 12, 2026·6 min read
Containerizing a Django Application for Production with DockerPart 6 of the AfiyaVest DevOps Deployment Series Containerization has become the standard approach for deploying modern web applications. Instead of worrying about differences between development, staJun 11, 2026·6 min read
Tracking Production Deployments with Git Tags, Releases, and Deployment MetadataPart 5 of the AfiyaVest DevOps Deployment Series In the previous articles, I covered how I built a production-ready deployment pipeline, automated deployments with GitHub Actions, implemented Docker hJun 10, 2026·5 min read
Adding Automatic Rollback to a Production Docker DeploymentPart 4 of the AfiyaVest DevOps Deployment Series Deploying a new version of an application is only half of the deployment process. The other half is knowing how to recover quickly when something goes Jun 9, 2026·5 min read
Implementing Docker Health Checks for Django, Celery, and Nginx in ProductionPart 3 of the AfiyaVest DevOps Deployment Series One of the biggest mistakes teams make when deploying applications with Docker is assuming that a running container means a healthy application. It doeJun 8, 2026·6 min read
How I Built a Fully Automated CI/CD Pipeline for Django on a VPSIntroduction Part 2 of the AfiyaVest DevOps Deployment Series One of the biggest challenges in managing production applications is ensuring deployments are fast, reliable, and repeatable. Manual deploJun 6, 2026·5 min read