C.W.K.
Stream
Lesson 01 of 04 · published

Why a Watchtower

~9 min · control-plane, fleet, drift, build-vs-rent

Level 0Lone Machine
0 XP0/37 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"You don't really own a machine until you can say what it should be — not just what it happens to be right now."

The Drift

One computer is easy. You know it like your own kitchen — where things live, what's installed, what's running. Add a second and you still cope. Add seven more — an always-on server, a couple of specialized peers, a laptop that travels — and something quiet happens. They drift. One is a minor OS build behind. One stopped running a background service three weeks ago and nobody noticed. One is asleep in a bag in another country. Ask the simple question — are my machines okay? — and you realize you genuinely do not know.

Why a spreadsheet won't save you

The first instinct is a list: a note, a spreadsheet, a hosts.json with a row per machine. It feels organized for about a week. Then it rots, because a list is a photograph and a fleet is a film. The moment you write online next to a laptop, it's already wrong — the laptop went to sleep while you were typing. A static list records what you believed once; it has no way to tell you what changed, when, or whether the change was supposed to happen.

The tower

A watchfire is an old idea: a fire on a height, tended by someone whose entire job is to watch the valley and signal what they see. A fleet control plane is that tower for your machines. It is not a wall that blocks things, and it is not a puppeteer yanking strings. It is a vantage point that continuously observes, keeps a durable record of what it saw and what each machine should be, and — only once it has earned the right — can act. The watching comes first. Everything else is built on top of it.

Why not just rent one?

Device-management SaaS exists, and for a company with a thousand laptops it's the right call. But renting means the truth about your machines lives in someone else's database, phones home on someone else's schedule, and bends to someone else's model of what a device is. For a personal fleet you actually understand, that's backwards. The goal isn't to be managed — it's to own the way you know your own machines. So this tower is small, local, and single-purpose: one fire, over one fleet, that you built and can read end to end.

A fleet is a decision, not a discovery. The machines you manage are the ones you chose to put on the roll — never just the ones that happen to answer a ping today.

Code

The list that rots·python
# The tempting first version: a flat file, one row per machine.
# It looks organized. It is a photograph of a moment that already passed.
fleet = {
    "office": {"online": True,  "os": "26.5.2"},
    "server": {"online": True,  "os": "26.5.2"},
    "laptop": {"online": False, "os": "26.5.1"},  # asleep? off? traveling? unknown.
}

# The questions you actually have cannot be answered from this:
#   - Is "laptop" a problem, or is it asleep on purpose?
#   - When did "laptop" fall a build behind, and was that expected?
#   - Who wrote online=True, and is it still true one second later?
# A static dict has no desired state, no freshness, no history. It rots.

External links

Exercise

List every computer you personally rely on — laptops, a home server, a Raspberry Pi, a cloud VM. For each, write one thing that is true right now (observed) and one thing that should always be true (desired). Notice how different those two columns feel.
Hint
Observed changes without asking you: 'currently 4.2 GB free.' Desired is a promise you're making: 'should always run the nightly backup.' If a column has only one kind of statement in it, you're still thinking in photographs.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.