Uncategorized

  • Load testing one endpoint before a launch

    A full load test of a system is a project; a load test of the one endpoint a campaign will hit is an afternoon. The mismatch between the…

  • A dead letter queue with an owner

    A dead letter queue that nobody owns is a queue where messages go to be forgotten, and ours had 8,000 of them. Owning a dead letter queue means…

  • The moved block that saved a destroy and recreate

    Renaming a resource in the configuration is a destroy and a create as far as the plan is concerned, and on a database that is a very bad…

  • declare(strict_types=1) in every file, finally

    The codebase had it in about 60% of files, which is the worst of the three possible states because nobody can tell which behaviour applies where. The seven…

  • fail2ban after moving ssh off 22, and why both

    Moving the port dropped the log noise by about 99%, which is the argument for doing it and not an argument for stopping there. A non-standard port is…

  • A flaky test quarantine with a deadline attached

    A group of tests excluded from the pipeline “temporarily”, four of them since 2021. A quarantine without an expiry is a delete with extra steps. Adding a date…

  • WP-CLI in a container, and the user it runs as

    Running WP-CLI as root inside a container works, and every file it writes is then owned by root and unwritable by the web process. –allow-root makes the warning…

  • An objective that was a guess, written down as a guess

    A service level objective invented in a meeting is a guess, and the useful move is to say so in the document rather than to pretend otherwise. An…

  • The Dockerfile that finally stopped installing the world

    A 1.4 GB image and a six-minute build, for an application that is 40 MB of PHP. Most of it is build tooling that shipped by accident.

  • The __destruct that ran after the response was sent

    A profiler showed 140 ms of work happening after the response had been flushed, which is invisible to the user and entirely visible in the worker’s throughput. Destructor-based…