сеньорчикОткрыть в Telegram
← вся теориятеория к собесу · Облака

Модели облаков: IaaS, PaaS, зоны

Модели облаков и ответственность

Посчитал, сколько на самом деле стоит вторая зона. Если минута простоя обходится в три тысячи рублей, то цель 99% разрешает 432 минуты в месяц - это 1 296 000 рублей потерь. Цель 99,9% - 43 минуты и 129 600 рублей. Вторая зона стоит примерно как первая, скажем 60 тысяч в месяц. Значит, она окупается, если спасает больше 20 минут простоя в месяц. Вот так и выглядит разговор про надёжность на языке, который понимает бизнес.

Стержень: облако - это аренда чужой эксплуатации, и выбор модели определяет, что вы перестаёте делать сами и за что перестаёте отвечать.

// Формулировки: «чем отличаются модели облаков?», «зачем несколько зон?», «что такое разделяемая ответственность?»

Три модели и что вы отдаёте

Аренда инфраструктуры (её называют IaaS): вам дают виртуальные машины, диски и сеть. Всё остальное - ваше: операционная система, обновления, базы, резервные копии, мониторинг. Максимум контроля и максимум работы.

Аренда платформы (PaaS): вам дают готовую базу, очередь, кластер. Провайдер отвечает за обновления, отказоустойчивость и копии, вы - за схему данных, запросы и своё приложение. Сверху - готовый сервис (SaaS), где вы вообще ничего не эксплуатируете.

// Цена управляемости меряется не одними деньгами. Управляемая база обычно дороже той же машины с базой раза в полтора-два, зато вы не дежурите по ночам. Но вместе с работой уходит и контроль: ограниченный набор версий, недоступные настройки, невозможность поставить своё расширение, зависимость от планового обслуживания провайдера. Правило простое: чем ближе сервис к вашему конкурентному преимуществу, тем больше причин управлять им самому; всё остальное дешевле арендовать.

аренда инфраструктуры
дают машины, диски, сеть; всё остальное ваше
аренда платформы
дают готовую базу или кластер; эксплуатация на провайдере
разделяемая ответственность
граница между тем, за что отвечает провайдер, и тем, за что вы

Зоны, регионы и арифметика запаса

Зона - отдельная площадка со своим питанием и охлаждением. Регион - группа зон рядом, между ними быстрая сеть. Разные регионы далеко друг от друга: задержка между ними десятки миллисекунд, и синхронное повторение записей во вторую копию базы через такое расстояние уже болезненно.

Посчитал выгоду от нескольких зон. Если вероятность отказа одной зоны за период - одна тысячная, то для полной недоступности должны отказать все: в двух зонах это одна миллионная, в трёх - одна миллиардная. Красиво, но верно ровно при двух условиях: отказы независимы и трафик действительно переключается. Второе проверяется только учениями.

// И вторая часть арифметики, которую забывают. При отказе одной зоны из двух вы теряете половину ёмкости - значит, каждая зона должна тянуть двойную нагрузку. Из трёх зон теряется треть, и запас нужен всего в полтора раза. Поэтому три зоны часто ДЕШЕВЛЕ двух при той же надёжности: меньше простаивающего запаса.

зона
отдельная площадка со своим питанием; отказывает независимо от соседних
регион
группа зон рядом; между регионами десятки миллисекунд задержки
запас на отказ
две зоны требуют двойного запаса, три - полуторного

За что провайдер НЕ отвечает

Граница ответственности проходит не там, где хочется. Провайдер отвечает за работу инфраструктуры и своих управляемых сервисов. Всё, что вы туда положили и как настроили, - ваше.

Три места, где это выясняется болезненно. Первое: данные. Провайдер обеспечивает сохранность дисков от аппаратного отказа, но не от вашего удаления таблицы и не от бага приложения - копии всё равно ваша забота, и делать их надо в другое место. Второе: доступы. Открытое наружу хранилище или база с простым паролем - не проблема провайдера. Третье: расходы. Забытая машина за 40 тысяч в месяц будет исправно работать и исправно выставляться.

// Отсюда практическая проверка при переезде в облако: выписать список того, что вы перестаёте делать, и список того, что остаётся. Второй список почти всегда длиннее, чем ожидают, и в нём обязательно оказываются резервные копии, права доступа, мониторинг приложения и контроль расходов.

сохранность против копий
провайдер бережёт диск от поломки; от вашего удаления бережёт только копия

Как отвечать: «Брать управляемую базу или поднимать свою на виртуалке?»

Считаю через то, что перестану делать, и через то, сколько стоит простой. Управляемая база обычно дороже той же машины раза в полтора-два, но с неё уходят обновления, отказоустойчивость, копии и ночные дежурства. Взамен вы теряете контроль: ограниченный набор версий, недоступные настройки, невозможность поставить своё расширение, плановое обслуживание по расписанию провайдера. Моё правило: чем ближе система к конкурентному преимуществу продукта, тем больше причин управлять ей самому, всё остальное дешевле арендовать. И отдельно проверяю границу ответственности: даже у управляемой базы резервные копии в другое место, права доступа и мониторинг запросов остаются на мне. Провайдер бережёт диск от поломки, но от удалённой мной таблицы бережёт только моя копия.

Ответ сравнивает по деньгам и по снятой работе, называет цену потери контроля и заканчивается границей ответственности. Последнее отличает того, кто это эксплуатировал.

На чём валятся

  • Считают, что раз облако управляемое, копии делать не нужно.
  • Берут одну зону и обещают бизнесу высокую доступность.
  • Разносят по двум зонам, но не оставляют запаса: при отказе одной вторая не тянет.
  • Не проверяют переключение учениями и узнают о нерабочем резерве в аварию.
  • Считают только стоимость машин и не смотрят, что остаётся на них самих.

Проверьте себя

Пять вопросов из банка по этой подтеме. Всего их 7, остальные разбираются в тренажёре.

  1. #dvo_cloud_models1 / 5
    Где проходит граница ответственности между вами и провайдером в IaaS и PaaS?
    A)В IaaS провайдер отвечает за приложение, в PaaS — за железо
    B)В обоих случаях провайдер отвечает за всё, кроме сети
    C)В IaaS ваша зона — с ОС и выше
    D)Разница только в способе оплаты, ответственность одинаковая
    показать ответ и разбор
    +C)В IaaS ваша зона — с ОС и выше

    // разбор: IaaS даёт виртуальную машину и сеть: обновления ОС, настройка, бэкапы и мониторинг сервиса на вас. PaaS поднимается выше — управляемая база, очередь, кластер: провайдер держит версии, отказоустойчивость и обслуживание, вы отвечаете за данные, схему, запросы и права доступа. Ответственность за данные и настройки доступа не переходит к провайдеру ни в одной модели.

  2. #dvo_cloud_models2 / 5
    Базу можно взять управляемую у провайдера или поднять свою в кластере. Чем платят за управляемую?
    A)Ценой, ограниченным набором настроек и привязкой к провайдеру
    B)Потерей отказоустойчивости: реплики придётся строить самому
    C)Отсутствием резервного копирования в базовом тарифе
    D)Отсутствием доступа к ней из своего кластера
    показать ответ и разбор
    +A)Ценой, ограниченным набором настроек и привязкой к провайдеру

    // разбор: Управляемая база снимает рутину: установка, обновления, репликация, копии, переключение при отказе, мониторинг. Взамен вы платите заметно больше железа, живёте в рамках разрешённых параметров и версий, не имеете доступа к хосту и получаете зависимость от конкретного провайдера — миграция потом обходится в отдельный проект. Считать стоит не цену часа, а суммарные затраты с учётом времени инженеров.

  3. #dvo_cloud_models3 / 5
    Сервис держат в трёх зонах доступности одного региона. Зачем не разнести его по регионам?
    A)Между регионами приватной сети у провайдеров нет
    B)Задержка ломает синхронную запись
    C)Балансировщики работают лишь в пределах одного региона
    D)Разные регионы дают разный набор сервисов и версий
    показать ответ и разбор
    +B)Задержка ломает синхронную запись

    // разбор: Зоны в регионе связаны быстрым каналом: синхронная репликация и общий кластер работают без заметных потерь. Между регионами счёт идёт на десятки миллисекунд и выше — синхронная запись становится дорогой, а асинхронная означает потерю данных при переключении. Потому межрегиональную схему строят осознанно, ради катастрофоустойчивости или близости к пользователю, и почти всегда с разделением данных.

  4. #dvo_cloud_models4 / 5
    Что такое зона доступности (AZ) и чем она отличается от региона?
    A)AZ и регион — синонимы, просто у разных провайдеров
    B)AZ — изолированный ЦОД внутри региона
    C)AZ — это отдельная страна, регион — континент
    D)AZ — виртуальная сеть внутри одной стойки серверов
    показать ответ и разбор
    +B)AZ — изолированный ЦОД внутри региона

    // разбор: Регион — географическая площадка провайдера, состоящая из нескольких зон доступности (AZ). AZ — это изолированный дата-центр (своё питание, охлаждение, сеть), который выходит из строя независимо от других, но связан с ними низколатентной сетью внутри региона. Отсюда паттерн: раскидывать реплики по нескольким AZ одного региона ради отказоустойчивости при синхронной репликации; разные регионы разносят уже географически, ценой задержки.

  5. #dvo_cloud_models5 / 5
    Сервис зависит от пяти управляемых сервисов провайдера, у каждого 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%» — ошибка.

дальше

Теорию прочитали. Навык ставится повторением

В Сеньорчике эта подтема идёт в ежедневных сессиях: движок возвращает её, пока ответы не станут уверенными, и ведёт прогресс отдельно по каждой подтеме. Теория внутри тоже бесплатна, лимит только на количество вопросов в день.