How Alpine Linux Reduces Container Size
Alpine Linux shrinks container images by replacing glibc with musl and using a minimal base, but introduces compatibility trade-offs you must evaluate before switching.
Fly.ioExplainer
Shared-nothing architecture is presented as a scaling model for Showcase, a Ruby on Rails ballroom-competition application that began on a Mac Mini and grew to cloud VMs serving events in multiple regions. Because each event has few geographically concentrated users, a roughly one-megabyte SQLite database, about one transaction per second, and typical response times of 100ms or less, the design keeps state separate rather than sharing databases and Redis across events. The implementation runs an event’s services on one Fly.io VM, repeats that unit across machines or regions, and can place multiple event instances on one server with Phusion Passenger, NGINX, volumes, and a shared Action Cable process. It specifies 1GB machines with 2G swap after observing about 220MB idle and 450MB active RAM, and recommends WireGuard; the conclusion is that local state and fewer network calls suit this workload and can improve throughput and reliability.
Showcase was created after a ballroom competition scheduling error exposed the limits of manual spreadsheet-based entry and scheduling. The application initially supported one event on a single Mac Mini, then expanded to events in different cities and regions. Each competition has few users, typically located together, and relatively small workloads.
The design keeps each event’s application state and database isolated, running the required services on one Fly.io VM and repeating that unit across machines or regions. Multiple event instances can share a server through Phusion Passenger, separate SQLite databases on volumes, NGINX configuration, environment variables, and a shared Action Cable process. Resource sizing and WireGuard private networking are also part of the deployment.
Each event uses a separate Rails application instance and SQLite database; a typical database is about one megabyte.
Passenger can host multiple event instances on one server, starting Rails apps when needed and stopping them when idle; the trade-off is accepting cold starts of about two seconds or less on modern hardware.
Measured memory use is about 220MB per instance when idle and 450MB when active, but the deployment uses 1GB machines and an additional 2G of swap to reduce the risk of out-of-memory crashes.
Summaries are generated from the original by a language model. Check the original before relying on it.
See the idea
Alpine Linux shrinks container images by replacing glibc with musl and using a minimal base, but introduces compatibility trade-offs you must evaluate before switching.
Airflow is a workflow orchestration platform that schedules, monitors, and manages data pipelines by defining tasks as code, executing them in dependency order, and tracking their success or failure.
Aerospike is an in-memory database optimized for real-time counters and fraud detection at extreme scale. Learn how it replaces wide-column stores and cuts latency and cost.
ACME uses different domain-control validation methods. tls-alpn-01 works on shared hosting without DNS access; DNS challenges suit wildcard certificates but require external DNS control.
Keep reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
One useful email. Unsubscribe anytime.