Довго моя інфраструктура жила у двох місцях: частково на серверах, частково в чиїйсь голові. Хтось колись усе налаштував вручну — клацнув тут, ввів команду там — і воно працювало. Але як саме воно влаштоване, чому саме так, і як відтворити його з нуля, не знав ніхто повністю. Інфраструктура була спогадом, а спогади стираються.
Проблема виявляється в найгірший момент. Сервер помирає, або треба підняти таку саму копію, або людина, яка «все пам'ятала», іде — і ти лишаєшся з системою, яку ніхто не може відтворити впевнено. Ти відновлюєш її здогадками, крок за кроком, наближаючись до оригіналу, але ніколи не будучи певним, що все точно так само.
Ідея інфраструктури як коду вирішує саме це. Замість того щоб налаштовувати вручну й сподіватися запам'ятати, ти описуєш бажаний стан у файлі. Скільки серверів, як налаштованих, з якими правилами. Цей опис — не клацання — стає єдиним джерелом правди. Хочеш відтворити систему? Застосовуєш опис і отримуєш те саме, щоразу.
Виграш не лише в надійності. Опис можна прочитати, переглянути, покласти в історію змін, відкотити. Ти бачиш, що змінилося і чому, як у звичайному коді. Мовчазне ручне налаштування нічого цього не дає: воно живе тільки в пам'яті машини й людини, а обидві ненадійні.
Тож перестань будувати інфраструктуру як послідовність кліків, які хтось має запам'ятати. Опиши її. Нехай вона буде текстом, який можна прочитати й відтворити, а не спогадом, який зітреться саме тоді, коли буде найпотрібніший.
– Serguey Shinder
Top comments (0)