Aplikacje są zmieniane ciągle. Zespoły je aktualizują, zastępują albo całkowicie opuszczają. Infrastruktura zwykle pozostaje. Po wdrożeniu staje się czymś, na czym opierają się inne systemy, nawet gdy wszystko wokół niej się zmienia.

Ta różnica ma większą wartość niż się na początku wydaje.

Infrastruktura jest niemal zawsze projektowana na określony moment w czasie. Na określoną skalę. Na określoną formę użytkowania. Na określoną wyobrażenie tego, jak „normalne” wygląda. W tamtym czasie te decyzje wydają się uzasadnione. Często są.

Zmienia się nie sama infrastruktura, ale świat, w którym działa.

Gdy systemy rosną, dane gromadzą się nieoczekiwanymi sposobami. Zachowania użytkowania się zmieniają. To, co kiedyś było rzadkie, staje się rutyną. Składowe, które były lekko wykorzystywane, stają się kluczowymi ścieżkami. Infrastruktura, która początkowo wydawała się elastyczna, zaczyna wydawać się ograniczona, nie dlatego, że przestała działać, ale dlatego, że nigdy nie była przeznaczona do takiego rozciągnięcia.

Oto jak wygląda starzenie się.

Wygląda to rzadko dramaticznie. Zamiast tego wydaje się to jak tarcie. Operacje trwają dłużej. Zmiany wymagają większej ostrożności. Ścieżki odzyskiwania stają się czymś, co zespoły wahają się dotykać. Nic nie jest uszkodzone, a jednak nic nie wydaje się już łatwe.

Czas odsłania kompromisy, które były niewidoczne w momencie uruchomienia.

Projekty, które priorytetem mają krótkoterminową efektywność, często mają trudności później. Wybory, które zmniejszyły złożoność na początku, mogą ograniczać opcje w przyszłości. Systemy budowane wokół idealnych warunków źle się starzeją, gdy te warunki przestają być powszechne.

W środowiskach rozproszonych ten efekt pojawia się wcześniej.

Uczestnicy przychodzą i odchodzą. Obciążenie jest nierówne. Dane często przetrwują aplikacje, które je stworzyły. Infrastruktura nie może długo polegać na stabilnym zachowaniu, ponieważ sama stabilność jest tymczasowa. Im dłużej system działa, tym większe prawdopodobieństwo, że napotka sytuacje, dla których nie został zaprojektowany.

To nie jest niepowodzenie wykonania. To rozbieżność między założeniami a rzeczywistością.

Infrastruktura, która dobrze się starzeje, raczej przyjmuje ten rozrzut, niż stara się go zwalczać. Przede wszystkim dba o spójność, a nie o optymalizację. Pozwala na zmiany bez konieczności ciągłego przeprojektowania. Te decyzje rzadko wydają się imponujące na początku. Stają się wartościowe później, gdy system już przez lata był używany.

Starzenie się infrastruktury to nie coś, co nagle się dzieje. Zbiera się stopniowo.

Systemy, które przetrwają, są zwykle budowane przez ludzi, którzy oczekują, że założenia wygasną. Planują niezrównoważone wykorzystanie, niepełną uczestnictwo i stopniowe zmiany zachowań. Nie dlatego, że te wyniki są pewne, ale dlatego, że są wystarczająco częste, by mieć znaczenie.

Na końcu infrastruktura kształtowana jest mniej przez to, jak wydaje się silna w momencie uruchomienia, a bardziej przez to, jak spokojnie funkcjonuje, gdy wszystko wokół niej się zmienia.

@Walrus 🦭/acc #walrus $WAL