by Serguey Shinder
When our hosting contract came up for renewal in 2025, the new terms had a clause I had never seen in any contract I had signed. Electricity was passed through at cost, metered by the hour and priced against the wholesale market. I signed it and filed it as a finance matter.
It turned out to be a design matter. The first quarterly bill varied by a third between the cheapest month and the dearest, and when we laid our own usage against the hourly price the shape was obvious. Our heavy work, the stock reconciliation, the nightly reports, the rebuild of our search index, the test runs for every branch, ran whenever it had first been scheduled, some of it years ago by people who had since left. A good share of it ran between four and eight in the evening, which is exactly when power is dearest, because that was when the developer who wrote it went home.
Nobody had ever decided when a job should run on any basis except convenience, and it had never mattered. Compute has been sold to our industry for twenty years as though it cost the same at every hour of the day, and we built accordingly.
Most of those jobs did not care. The search rebuild had to be finished by six in the morning; whether it started at seven in the evening or two in the morning made no difference to anybody. The reconciliation had a deadline, not a start time. Only a handful of our jobs genuinely needed to run at a particular moment, and until that bill arrived nothing in our code recorded which ones they were.
Every scheduled job is now described by a window and a deadline rather than a time. The scheduler places it inside the window and prefers the cheap hours. The electricity part of the bill fell by about a fifth, which is not dramatic, and the jobs became slightly less predictable to watch, which irritated our operations team for about a month.
My expectation for the next decade is that this becomes ordinary and then unavoidable. Power is getting more variable across the day, not less, and providers are going to pass that variation on to whoever can absorb it, which means anybody whose work can wait. Software that knows which of its work can move, and by how much, will be cheaper to run than software that does not.
What strikes me is that the information was always there. Nearly every job we run has an earliest useful start and a latest acceptable finish, and for twenty years we threw both away and wrote down a single time instead, because time was free. It is starting not to be, and the teams that kept the window will not have to go looking for it.
– Serguey Asael Shinder
Leave a Reply