В облаке есть соблазн поверить, что оно не падает. Оно падает. И система, построенная на надежде, что этого не случится, — это система, которая однажды подведёт именно тебя.
Провайдер даёт впечатляющую надёжность, и легко принять её за гарантию. Но регионы отключаются, сервисы деградируют, сеть между узлами иногда просто исчезает на несколько секунд. Это не редкие катастрофы — это нормальный режим работы больших систем. Вопрос не в том, случится ли отказ, а в том, что произойдёт с тобой, когда он случится.
Разница между командой, которая переживает сбой облака, и той, для которой он становится своим сбоем, — в одном допущении. Первая проектирует так, будто любая часть может отказать в любой момент. Повтор запроса, если он не прошёл. Запас, если один узел выпал. Понимание, что произойдёт, если недоступен целый регион. Вторая молча предполагает, что всё всегда на месте, — и в день, когда это не так, оказывается без плана.
Проектировать под отказ не значит быть параноиком. Это значит быть честным: раз отказ неизбежен, встреть его решением, а не надеждой. Пусть падение одной части будет неприятностью, а не катастрофой.
Надёжность провайдера — это фундамент, а не страховка, которой можно заменить собственную инженерию. Ты всё равно отвечаешь за то, как твоя система ведёт себя в худший день. Спроси заранее: что сломается, если это упадёт? И построй так, чтобы ответ был «немного», а не «всё».
– Serguey Shinder
Top comments (0)