The Two Gardens: On the Cultivation of Order and the Wilds of Necessity
There is a quiet, fundamental schism in the way we tend to our systems, a divide as old as cultivation itself. It is the difference between the gardener who meticulously plans their rows and the one who allows for the wild, self-seeding patch. In our world of small services and reliable technology, this manifests as two contrasting philosophies: the curated, version-controlled manifest versus the emergent, imperative command line.
The first approach is one of deliberate order. You are the landscape architect. Every service, every dependency, every configuration line is declared in a file—be it Ansible, Terraform, or a simple Docker Compose manifest. This file is the master plan, the single source of truth. To deploy is to enact this blueprint. The system is built from a known, repeatable state. It is the walled garden, pruned and predictable. Its beauty lies in its reproducibility; its disaster recovery is a simple act of re-rendering the world from its recipe.
The second approach is less about the plan and more about the feel of the soil. It is the sysadmin who, through years of accumulated intuition, knows the exact sequence of commands to build a service. They SSH into a fresh machine and, through a dance of apt-get, wget, and carefully placed configs, they conjure a running system from the void. There is no master document, only the history in their shell and the knowledge in their head. This is the wild garden, where useful things grow in the corners, seeded by necessity and past experience.
Neither is wholly right nor wrong. The manifest provides a cold, hard comfort. It is documentation incarnate. It allows others to build what you built. But it can be rigid, slow to adapt to a sudden, unique need. The imperative method is fluid and incredibly fast for the one who holds the knowledge. It is the ultimate in agility. But it is a house of cards, its stability resting solely on the memory and continued presence of its creator. Its disaster recovery is a frantic attempt to remember the incantation.
Most of us, in truth, tend a hybrid plot. We maintain our manifests for the core services, the boring, reliable technology that must never waver. But around the edges, in the temporary staging area or the one-off utility box, we allow ourselves the freedom of the wilds. We run a few commands by hand, knowing we might forget them, accepting the risk for the speed it grants. It is the acknowledgement that while order is our aspiration, a little necessary chaos is often the price of getting things done. The art is in knowing which parts of your world must be a formal garden, and which can be left to bloom untamed.
Notes & further reading
A few pages I came back to while writing this: