Модели облаков: IaaS, PaaS, зоны
Посчитал, сколько на самом деле стоит вторая зона. Если минута простоя обходится в три тысячи рублей, то цель 99% разрешает 432 минуты в месяц - это 1 296 000 рублей потерь. Цель 99,9% - 43 минуты и 129 600 рублей. Вторая зона стоит примерно как первая, скажем 60 тысяч в месяц. Значит, она окупается, если спасает больше 20 минут простоя в месяц. Вот так и выглядит разговор про надёжность на языке, который понимает бизнес.
Стержень: облако - это аренда чужой эксплуатации, и выбор модели определяет, что вы перестаёте делать сами и за что перестаёте отвечать.
// Формулировки: «чем отличаются модели облаков?», «зачем несколько зон?», «что такое разделяемая ответственность?»
Три модели и что вы отдаёте
Аренда инфраструктуры (её называют IaaS): вам дают виртуальные машины, диски и сеть. Всё остальное - ваше: операционная система, обновления, базы, резервные копии, мониторинг. Максимум контроля и максимум работы.
Аренда платформы (PaaS): вам дают готовую базу, очередь, кластер. Провайдер отвечает за обновления, отказоустойчивость и копии, вы - за схему данных, запросы и своё приложение. Сверху - готовый сервис (SaaS), где вы вообще ничего не эксплуатируете.
// Цена управляемости меряется не одними деньгами. Управляемая база обычно дороже той же машины с базой раза в полтора-два, зато вы не дежурите по ночам. Но вместе с работой уходит и контроль: ограниченный набор версий, недоступные настройки, невозможность поставить своё расширение, зависимость от планового обслуживания провайдера. Правило простое: чем ближе сервис к вашему конкурентному преимуществу, тем больше причин управлять им самому; всё остальное дешевле арендовать.
- аренда инфраструктуры
- дают машины, диски, сеть; всё остальное ваше
- аренда платформы
- дают готовую базу или кластер; эксплуатация на провайдере
- разделяемая ответственность
- граница между тем, за что отвечает провайдер, и тем, за что вы
Зоны, регионы и арифметика запаса
Зона - отдельная площадка со своим питанием и охлаждением. Регион - группа зон рядом, между ними быстрая сеть. Разные регионы далеко друг от друга: задержка между ними десятки миллисекунд, и синхронное повторение записей во вторую копию базы через такое расстояние уже болезненно.
Посчитал выгоду от нескольких зон. Если вероятность отказа одной зоны за период - одна тысячная, то для полной недоступности должны отказать все: в двух зонах это одна миллионная, в трёх - одна миллиардная. Красиво, но верно ровно при двух условиях: отказы независимы и трафик действительно переключается. Второе проверяется только учениями.
// И вторая часть арифметики, которую забывают. При отказе одной зоны из двух вы теряете половину ёмкости - значит, каждая зона должна тянуть двойную нагрузку. Из трёх зон теряется треть, и запас нужен всего в полтора раза. Поэтому три зоны часто ДЕШЕВЛЕ двух при той же надёжности: меньше простаивающего запаса.
- зона
- отдельная площадка со своим питанием; отказывает независимо от соседних
- регион
- группа зон рядом; между регионами десятки миллисекунд задержки
- запас на отказ
- две зоны требуют двойного запаса, три - полуторного
За что провайдер НЕ отвечает
Граница ответственности проходит не там, где хочется. Провайдер отвечает за работу инфраструктуры и своих управляемых сервисов. Всё, что вы туда положили и как настроили, - ваше.
Три места, где это выясняется болезненно. Первое: данные. Провайдер обеспечивает сохранность дисков от аппаратного отказа, но не от вашего удаления таблицы и не от бага приложения - копии всё равно ваша забота, и делать их надо в другое место. Второе: доступы. Открытое наружу хранилище или база с простым паролем - не проблема провайдера. Третье: расходы. Забытая машина за 40 тысяч в месяц будет исправно работать и исправно выставляться.
// Отсюда практическая проверка при переезде в облако: выписать список того, что вы перестаёте делать, и список того, что остаётся. Второй список почти всегда длиннее, чем ожидают, и в нём обязательно оказываются резервные копии, права доступа, мониторинг приложения и контроль расходов.
- сохранность против копий
- провайдер бережёт диск от поломки; от вашего удаления бережёт только копия
Как отвечать: «Брать управляемую базу или поднимать свою на виртуалке?»
Считаю через то, что перестану делать, и через то, сколько стоит простой. Управляемая база обычно дороже той же машины раза в полтора-два, но с неё уходят обновления, отказоустойчивость, копии и ночные дежурства. Взамен вы теряете контроль: ограниченный набор версий, недоступные настройки, невозможность поставить своё расширение, плановое обслуживание по расписанию провайдера. Моё правило: чем ближе система к конкурентному преимуществу продукта, тем больше причин управлять ей самому, всё остальное дешевле арендовать. И отдельно проверяю границу ответственности: даже у управляемой базы резервные копии в другое место, права доступа и мониторинг запросов остаются на мне. Провайдер бережёт диск от поломки, но от удалённой мной таблицы бережёт только моя копия.
Ответ сравнивает по деньгам и по снятой работе, называет цену потери контроля и заканчивается границей ответственности. Последнее отличает того, кто это эксплуатировал.
На чём валятся
- −Считают, что раз облако управляемое, копии делать не нужно.
- −Берут одну зону и обещают бизнесу высокую доступность.
- −Разносят по двум зонам, но не оставляют запаса: при отказе одной вторая не тянет.
- −Не проверяют переключение учениями и узнают о нерабочем резерве в аварию.
- −Считают только стоимость машин и не смотрят, что остаётся на них самих.
Проверьте себя
Пять вопросов из банка по этой подтеме. Всего их 7, остальные разбираются в тренажёре.
- Где проходит граница ответственности между вами и провайдером в IaaS и PaaS?A)В IaaS провайдер отвечает за приложение, в PaaS — за железоB)В обоих случаях провайдер отвечает за всё, кроме сетиC)В IaaS ваша зона — с ОС и вышеD)Разница только в способе оплаты, ответственность одинаковая
показать ответ и разбор
+C)В IaaS ваша зона — с ОС и выше// разбор: IaaS даёт виртуальную машину и сеть: обновления ОС, настройка, бэкапы и мониторинг сервиса на вас. PaaS поднимается выше — управляемая база, очередь, кластер: провайдер держит версии, отказоустойчивость и обслуживание, вы отвечаете за данные, схему, запросы и права доступа. Ответственность за данные и настройки доступа не переходит к провайдеру ни в одной модели.
- Базу можно взять управляемую у провайдера или поднять свою в кластере. Чем платят за управляемую?A)Ценой, ограниченным набором настроек и привязкой к провайдеруB)Потерей отказоустойчивости: реплики придётся строить самомуC)Отсутствием резервного копирования в базовом тарифеD)Отсутствием доступа к ней из своего кластера
показать ответ и разбор
+A)Ценой, ограниченным набором настроек и привязкой к провайдеру// разбор: Управляемая база снимает рутину: установка, обновления, репликация, копии, переключение при отказе, мониторинг. Взамен вы платите заметно больше железа, живёте в рамках разрешённых параметров и версий, не имеете доступа к хосту и получаете зависимость от конкретного провайдера — миграция потом обходится в отдельный проект. Считать стоит не цену часа, а суммарные затраты с учётом времени инженеров.
- Сервис держат в трёх зонах доступности одного региона. Зачем не разнести его по регионам?A)Между регионами приватной сети у провайдеров нетB)Задержка ломает синхронную записьC)Балансировщики работают лишь в пределах одного регионаD)Разные регионы дают разный набор сервисов и версий
показать ответ и разбор
+B)Задержка ломает синхронную запись// разбор: Зоны в регионе связаны быстрым каналом: синхронная репликация и общий кластер работают без заметных потерь. Между регионами счёт идёт на десятки миллисекунд и выше — синхронная запись становится дорогой, а асинхронная означает потерю данных при переключении. Потому межрегиональную схему строят осознанно, ради катастрофоустойчивости или близости к пользователю, и почти всегда с разделением данных.
- Что такое зона доступности (AZ) и чем она отличается от региона?A)AZ и регион — синонимы, просто у разных провайдеровB)AZ — изолированный ЦОД внутри регионаC)AZ — это отдельная страна, регион — континентD)AZ — виртуальная сеть внутри одной стойки серверов
показать ответ и разбор
+B)AZ — изолированный ЦОД внутри региона// разбор: Регион — географическая площадка провайдера, состоящая из нескольких зон доступности (AZ). AZ — это изолированный дата-центр (своё питание, охлаждение, сеть), который выходит из строя независимо от других, но связан с ними низколатентной сетью внутри региона. Отсюда паттерн: раскидывать реплики по нескольким AZ одного региона ради отказоустойчивости при синхронной репликации; разные регионы разносят уже географически, ценой задержки.
- Сервис зависит от пяти управляемых сервисов провайдера, у каждого SLA 99.9%. Что с общей доступностью?A)Общая доступность равна 99.9% — как у каждого сервисаB)Общая доступность равна лучшему SLA из пятиC)SLA складываются, и выходит выше 99.9%D)Доступности перемножаются вниз
показать ответ и разбор
+D)Доступности перемножаются вниз// разбор: Когда запрос последовательно зависит от нескольких сервисов, их доступности перемножаются: пять звеньев по 99.9% дают ≈0.999^5 ≈ 99.5%, то есть заметно хуже каждого по отдельности. Поэтому цепочку зависимостей проектируют с запасом: убирают лишние синхронные зависимости, добавляют кэш/деградацию/ретраи с бэкоффом, дублируют критичные звенья. Считать «раз у всех 99.9%, то и у нас 99.9%» — ошибка.
дальше
Теорию прочитали. Навык ставится повторением
В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, лимит только на количество вопросов в день.