Anatomy of Graceful Shutdown: Part 2

Part 2: Docker Containers and graceful shutdown Part 1: Signals and Linux Part 2: Containers and signals Part 3: Graceful shutdown of K8S pods [you’re here] Part 4: Django and Gunicorn [WIP] Part 5: Celery [WIP] Part 6: Other frameworks and libraries [WIP] Intro The previous chapter was difficult, and I assumed things would get easier along the way. Little did I know. Instead of discussing the actual graceful shutdown topic, this post will focus more on the overview of the modern state of containers application....

March 9, 2024 · 14 min · 2895 words · Andrei Sviridov

Python Multiprocessing Quirks on MacOS.

Prelude Currently, I’m working on the product, built around a large Django monolithic application and a bunch of microservices around it. The codebase is quite huge and has a lot of (tens of thousands) tests, that are normally run in a parallel mode in the CI environment. The CPython and Django versions are a little bit stale (3.8 and 3.2 respectively). For local development purposes, it’s well enough to run a subset of tests in a non-parallel mode or to wait for the whole suite to pass during the CI run, but for one specific use case I had to run a parallel test suite locally....

January 14, 2024 · 8 min · 1639 words · Andrei Sviridov

How I prefer conducting code-reviews

Here’s a Spotify album to accompany your reading: Tamino - Amir. Disclaimer And below is my framework for conducting code reviews within a large product-oriented software company. I do not intend this to be used as a universal guide by anyone, as situations, companies, and software differ. Most likely reviews in mission-critical software and a new young start-up look different. Consider this as another opportunity to look at what happens inside another person’s head....

January 20, 2024 · 8 min · 1515 words · Andrei Sviridov