UptimeUptime Wiki

v0.1.23 (Early Access)

Fixed

Network fabric

  • "Auto-enable L3 routing" now routes every link between two L3-capable switches. The setting was on by default and did almost nothing. It only ever looked at the one standby link spanning tree had parked inside a ring of three or more switches that were all L3-capable, so an ordinary link between two L3 switches was never considered and stayed layer 2 for the life of the save. Two parallel links between the same pair were excluded by rule, leaving one of them parked. (Fabric settings, in the network lens under Engineering view.)
  • A link set to "Auto" is now actually decided for you. Auto was offered in the switch console alongside Bridged and Routed, but nothing ever resolved it: the link stayed wherever it happened to be, so choosing Auto on a bridged link left it bridged and on a routed link left it routed.
  • Turning the setting off now returns links to layer 2. It only ever converted links one way, so switching the policy off left you with a fabric you had not configured. Links you pinned yourself are left alone in both directions.
  • The event log no longer reports "0 switches" when a link is auto-routed. It never recorded which two switches the link joined.

GPU customers and GPU Machines

  • GPU customers the game said you could take now actually place. The acceptance card added up every free GPU share across your whole fleet and weighed that against what the customer needed in total. But each of their machines needs its whole share on a single host. A fleet with a little room on each of a dozen machines looked like plenty, you signed the customer, and then none of their machines could start. The card now works out how many you could genuinely run, host by host, the same way placement does.
  • Your GPU machines are no longer filled up with other customers' work. Storage buckets, database backups, load balancer nodes, content delivery nodes and Kubernetes workers could all be placed on a GPU machine, taking the disk and processor time the GPU customers were meant to have. A GPU machine is now kept for work that actually needs its GPU.
  • The capacity readout no longer promises GPU capacity you cannot use. It showed fleet-wide totals for GPU shares and graphics memory, which hid the thing that actually decides whether a customer can be served: how much is free on a single machine. A fleet with a little room on each of a dozen machines read as plenty. It now shows the largest amount free on any one machine alongside the totals.
  • A GPU share is now one fixed thing. It used to be two separate numbers — a share of the card, and an amount of graphics memory — chosen independently, which meant a customer could ask for a combination no real hardware offers. A share is now a fixed slice of a card and brings its graphics memory, processor and system memory with it, the way a real GPU machine is sold. You ask for shares; everything else follows.
  • GPU customers ask for far less processor. Because the processor figure was written separately for each type of customer, it had drifted to two to four times what the GPU work actually needed, which made GPU customers fail to fit for reasons that had nothing to do with GPUs. It is now worked out from the number of shares they want. Their graphics requirements are unchanged.
  • GPU machine specifications have changed. Each machine is now sized so it can genuinely run a full set of GPU customers, with room left over for the background services that also live there. The largest GPU machine gains a substantial amount of processor; the smallest loses some it could never use.
  • Existing GPU customers are converted when you load. Their requirements are recalculated from the number of shares they asked for, so long-running saves and new customers are measured on the same scale. Nobody's requirements grow, so no customer will be pushed off a machine they are already running on.

Racks and the world

  • Racks now line up with the floor grilles in the colocation hall. Every row sat a few centimetres off, and by differing amounts.
  • Racks no longer sit in slightly different places depending on how old your save is. A rack's position was worked out from a figure that had three different defaults, so two identical racks could be seated up to fifteen centimetres apart. Position is now taken from the rack model itself.
  • You can click the whole width of a rack. The clickable area was set from the width of the internal mounting rails rather than the cabinet, so roughly fourteen centimetres down each side did not respond.
  • You can no longer read wall screens and use equipment through walls. Anything within reach counted as being in front of you, whether or not there was a wall in the way.

Object storage and customer services

  • Customers who buy object storage alongside a database now actually get it. A managed database keeps its own storage for backups, and the game filed that in the same place as the storage a customer buys. A customer who wanted both ended up with one lot of storage, owned by the database. Their card said "Object storage: 1 of 1 running" because storage existed with their name on it, while the Object storage page showed no machines, no earnings and nothing to click. They now get their own storage on their own machines, separately from whatever their database keeps for itself.
  • You are now paid for it. Object storage was never charged for on any customer who also had a database, so you were running their storage for free. Your earnings from those customers will go up.
  • The Object storage page now lists the machines holding the data. That includes the storage a database keeps for its own backups: it is still storage sitting on a machine, so it now shows as such, with the machine it is on.
  • Services now show their machines as soon as work lands on them. Object storage, content delivery and Kubernetes could report no machines for up to an hour of game time after a customer's work was placed. The reverse happened too: after a service was shut down it carried on listing machines that no longer ran anything for it.
  • Customers now appear on the machines holding their data. A customer whose only footprint was object storage, content delivery or a load balancer showed on no machine anywhere, so you could not tell where their data actually lived or which machine to look at when something went wrong.
  • A customer card no longer reports a service as running once it has stopped. The running count was a snapshot taken the last time that service was checked, and for most services that only happened when the customer signed up or when something changed on the network. A service could sit there reading "running" for hours after it had gone. It is now read from the fleet as it stands.
  • "Running, but not fully spread" no longer appears on services with nothing to spread. A spreading problem with a customer's virtual machines put the identical warning on their database and object storage cards as well, so three services all claimed the same fault and none of them told you which was real.
  • Affected saves are repaired when you load them. Storage filed under the wrong service is moved across, and any customer who was owed storage they had paid for gets it on the next check.

Databases

  • A managed database gets its second copy as soon as you have room for it. If your fleet was full when the database was set up it went without, and stayed without forever: buying more machines changed nothing, and the only clue was a line in a developer log. The game now retries whenever capacity appears, and says which machines it considered and what stopped each one.

Billing

  • Customers on less than a gigabyte of memory are now charged for it. Memory was billed in whole gigabytes and rounded down, so a machine with 512 MB paid for its processor and its disk but got its memory for nothing. Most of the smallest customers sit on exactly those sizes, so this was almost entirely the garage book running part-free. Their bills go up slightly.

The ops console

  • Readings no longer get their first few words chopped off. Any figure too long for its column was cut from the left rather than the right, so "Time to do the work 3.0 ms" appeared as "do the work 3.0 ms" — the part that told you what you were reading was the part that vanished. It affected every list built this way, including the measurements on an incident, per-rack power, at-risk hardware and carrier lines. Figures now get the room they need, and it is the name beside them that shortens if a row runs out of space.
  • The Power page no longer shows a large empty panel. Outside Engineering view the per-rack table is hidden, but its frame stayed behind: an empty bordered box that stretched to fill the page.
  • Carrier hardware is called by its name. The uplinks list on the Network page labelled every unit "edd 1", "edd 2" and so on, ignoring the name shown everywhere else.
  • Security appliances are named in plain English on the map. Hovering one showed its internal tag, like "ddos_scrubber", instead of the name used everywhere else in the game.
  • The "buy one of these" prompt on the Security page is now translated. When a class of attack was getting through, the suggestion of what to buy stayed in English in every language.
  • Changing voice while looking at a group of machines no longer errors. Isolation could refer to part of the panel it had already discarded.

Graphics

  • 8x MSAA and TAA can be selected. Both were listed in the graphics settings, but choosing either silently snapped the setting back to 4x.

Changed

The ops console reads differently in each view

Tab has always switched between the plain and Engineering voices, but until now that only changed some of the wording. The two are now genuinely different views of the same information. Nothing is removed in either: anything the plain view folds away is one click from the page it belongs to, and Engineering opens with everything already unfolded.

  • Each page leads with the few figures you act on. A page used to open with five to seven large numbers competing for attention. It now leads with two or three — cash and the monthly direction on Money, customer count, at-risk and monthly income on Customers, whether you are under attack and whether you can absorb it on Security — and the rest sit under "More numbers".
  • Money leads with what is biggest, not with a ledger. Income, running costs and hardware spend each open with a plain sentence saying what the page answers and a short list of the five biggest items with a bar for each, ranked. The full tables are still there, under "Full breakdown". Running costs rank by what they cost per month rather than by what they have cost since the start, which is the figure you can act on.
  • Money is three pages in the plain view instead of five. Income, running costs and hardware spend are stacked on one page. Engineering keeps them apart, because a running cost is a rate and a purchase is not, and reading them as one number is misleading.
  • The customer list starts at five columns. Tier, type and services join the latency, availability and margin columns behind "More detail". The health dot and the standing column already tell you whether a customer needs you.
  • Figures that get misread now say what they mean. "Gross margin" and "Overhead + idle" are named for what they are in the plain view, with a line underneath explaining each; that explanation used to be hidden in a tooltip. Several other headings changed the same way — "Revenue/hr" reads as "Pays you", "p99 now" as "Worst wait", "Availability" as "Uptime", "Failover" and "Active-Active" as "Backup line" and "Use both at once".
  • Carrier lines show how full they are. Each line now has a bar reading "using 1.2 of 10 Gbps" rather than asking you to compare a send figure and a receive figure against a capacity you had to remember. Engineering still shows the send and receive split.
  • The plain view is set slightly larger. Type and spacing step up a notch, on the basis that someone reading it wants room rather than density. Engineering is unchanged and stays as tight as it was.
  • Engineering can now fold sections away too. Detailed sections open by default there, as before, but they can be collapsed — useful for the per-appliance inspection cards, the security log feed and the long hardware spend table, which previously could only be scrolled past.
  • Switching voice keeps you where you were. The page rebuilds so the change actually takes effect, and returns you to the same area and the same tab.

Redundant paths between L3 switches

  • Redundant paths between L3 switches now all carry traffic, rather than one sitting in standby. This follows from the fix above and is the point of routing them: both legs forward, so you get the bandwidth of both, and losing one costs you capacity instead of triggering a failover. Expect to see fewer parked standby links on a fabric built from managed L3 switches.
  • Spanning tree standby is unchanged everywhere else. It still applies to any link you pin to Bridged, to any path running through a managed layer 2 or unmanaged switch, and to the whole site if you turn the setting off.

Getting out of the garage

  • The basement now opens at $10,000 a month rather than $15,000. The requirement had been set against what thirty garage customers are worth once they have grown into their machines, but you reach thirty of them well before that happens. You could end up sitting on a full customer count, with the reputation earned, watching the money bar refuse to move.
  • Garage and basement customers pay more. The garage rate goes up, and the basement, which had no early rate of its own and dropped you straight to standard pricing the moment you moved in, now gets one that steps down from the garage instead. The subsidy still ends: colocation and beyond are unchanged, so growing out of it remains something you plan for.