Blog
Thoughts on engineering, design, and building great products.
Docker Compose: Running Multi-Container Applications
Declare a whole multi-component app (web, database, cache) in one file, then run it with a single command. Understand the compose file, the auto-created network that lets services call each other by name, and the up/down lifecycle.
Optimizing Images: Multi-Stage Builds and Security
Large images slow down deploys and widen the attack surface. This article shrinks images with multi-stage builds (real example: 301MB down to 15.4MB), picks lean base images, runs non-root, and avoids baking in secrets.
Docker Swarm: Cluster Architecture and Raft
Stepping into multi-machine orchestration: Swarm gathers many Docker hosts into a cluster of managers and workers. Understand the desired-state model, the Raft consensus mechanism, and why you want an odd number of managers. Includes cluster init and how to simulate multiple nodes for learning.
Swarm: Service, Scale and Rolling Update
On a Swarm cluster you don't run individual containers, you declare a service. This article creates a multi-replica service, scales it up and down, updates the version without downtime (rolling update), and watches Swarm self-heal.
Swarm: Overlay Network and Routing Mesh
How do containers on different nodes talk to each other, and why does publishing one port make it reachable from any node? This article explains the overlay network (VXLAN), service discovery via VIP, and the routing mesh.
Swarm: Stack and Secrets — A Complete Deployment
The final article: deploy a whole multi-service app onto the cluster with docker stack deploy from a compose file, manage passwords safely with secrets, then clean everything up and leave the swarm. With a series wrap-up.
What DevOps Is and Why You Should Learn It Alongside AWS
Series opener: what problem DevOps solves, what work it covers, why we learn it together with AWS, and the hands-on roadmap ahead.