Как не тратить время и нервы на ручную инициализацию и сопровождение облачных ресурсов, и при этом держать под контролем расходы? Ответ – автоматизация. Облачная автоматизация имеет много общего с автоматизацией локальной ИТ-инфраструктуры. Ее можно рассматривать как более современную и более крупную разновидность, с теми же принципами, подходами и концепциями. Но различия все же есть, и о них мы сегодня и расскажем – с помощью ведущих экспертов отрасли.
«Большая часть автоматизации, которую можно реализовать в гибридной облачной инфраструктуре, будет похожа или аналогична той, которая нужна в среде on-premise, – говорит Гордон Хофф, технологический евангелист Red Hat. – Например, конвейер CI/CD – он должен постоянно выполнять тестирование и сканирование, неважно где находится ИТ-инфраструктура, локально или в облаке».
Многие ключевые концепции автоматизации ИТ-инфраструктуры, подробнее о которых можно почитать, например, здесь (EN), такие как контейнеры, оркестровка, микросервисная архитектура и автоматизированные конвейеры сборки (CI/CD), очень даже актуальные и при автоматизации облака. Но есть и свои, уникальные для облака подходы, о пяти из которых мы сегодня и расскажем.
1. Видимость как основа облачной автоматизации
Нельзя автоматизировать то, чего нельзя увидеть. По крайней мере, сделать это так, чтобы результат был положительным.
«Прежде всего, вам нужна возможность видеть все вычислительные среды, – говорит Джесси Стоколл (Jesse Stockall), главный архитектор Snow Software. – Инвентаризацию на центральном пульте управления обеспечивают функции обнаружения, реализованные в платформах управления облачными средами». По его мнению, все основные облачные платформы предлагают встроенные возможности обнаружения и визуализации, которых вполне хватает, если работать только с одним облачным провайдером или с одной средой.
«Но в гибридных мультиоблачных средах или даже в моносреде, где у вас есть несколько подписок или аккаунтов, штатные инструменты не могут собрать все данные в единое целое», – продолжает Джесси Стокколл.
Иначе говоря, без автоматизации вам придется вручную сводить всю информацию с помощью различных инструментов. Но при работе со сложными и разнообразными средами это будет очень сложно. Платформа мониторинга или управления облаком, которая предлагает то, что Джесси Стокэлл называет «центральным пультом управления», автоматически собирающим все необходимые данные в одном месте, может сильно упростить долгосрочные операции.
Например, для платформы Kubernetes или ее корпоративной разновидности Red Hat OpenShift существует множество соответствующих облачных инструментов. Они либо уже являются частью платформы, либо находятся в процессе интеграции с ней, либо доступны в виде дополнительных инструментов с открытым кодом. В частности, это Prometheus для мониторинга и обеспечения видимости, Jaeger для распределенной трассировки и Grafana для создания консолей управления.
2. Автомасштабирование – везде, где только можно
Одно из преимуществ гибридного облака и мультиоблачных технологий – это быстрое масштабирование. Благодаря ему, вы можете не наращивать собственную физическую ИТ-инфраструктуру, чтобы справляться с пиковыми или аномально высокими нагрузками. Собственно, гибридное облако и задумывалось, как способ при необходимости быстро перекинуть задачи из локальной инфраструктуры в облако, хотя сегодня вариантов использования гибридного облака стало гораздо больше.
Но если работать по старинке и вручную добавлять облачные ресурсы каждый раз, когда возникает такая потребность, вы упускаете одну из главных основ автоматизации облачных вычислений: автоматическое масштабирование. Фелипе Гименес (Felipe Gimenez), помощник директора по облачным операциям компании Mission, рекомендует применять автомасштабирование везде, где только можно.
«Если при попытке запустить приложение вы, как пользователь, хотя бы пару раз подряд видели сообщение “Сервер перегружен, попробуйте позже”, то отлично понимаете, какой удар по продуктивности и репутации наносит недостаточное количество инстансов, – говорит Фелипе Гименес. – Но у клиентов, которые используют ваши приложения для совершения покупок, или у ваших сотрудников, чья работа невозможна без корпоративных приложений, просто нет времени ждать, пока вы создадите дополнительные инстансы вручную. В свою очередь, автоматизация позволяет мгновенно масштабировать облачные ресурсы в ответ на рост запросов и нагрузки на серверы».
И это одно из главных преимуществ Kubernetes – платформа предлагает множество подходов к автомасштабированию ресурсов. Кроме того, все основные облачные платформы также предлагают свои собственные инструменты автомасштабирования.
Фелипе Гименес также отмечает, что автомасштабирование помогает держать под контролем расходы на облако, добавляя ресурсы только тогда, когда они реально нужны, неважно, используете ли вы моно-облако, гибридное облако или многооблачную среду. Но здесь надо будет принимать стратегические решения, зависящие от таких переменных факторов, как используемые платформы и инструменты, а также от целей автомасштабирования.
«Хотите ли вы, чтобы клиенты никогда не сталкивались с медленным временем отклика, или ради снижения затрат можно пойти на компромиссы? – спрашивает Фелипе Гименес. – Подобные вопросы помогут выбрать оптимальную для вашего бизнеса стратегию автоматического масштабирования».
3. Планирование мониторинга и оптимизации затрат
Если речь зашла про затраты, то это еще одна область, где автоматизация может существенно изменить ситуацию в вашу пользу. Кроме того, публичные облака сильно отличаются в этом плане от сред on-premise.
«Есть один аспект, в котором публичные облака разительно отличаются от ИТ-инфраструктуры, развернутой в корпоративном дата-центре – это модель оплаты по факту использования, – говорит Гордон Хофф. – Она заставляет вас тщательно и в обязательном порядке отслеживать расходы, когда используется хотя бы одно публичное облако».
Универсальных решений на все случаи жизни здесь не существует, но есть некая комбинация инструментов и тактик, особенно для гибридных и мультиоблачных сред.
«Чтобы четко понимать весь комплекс затрат, связанных с публичными облаками, и оптимизировать будущие расходы, требуется настоящее ноу-хау, которое не сводится к нажатию волшебной кнопки, – говорит Гордон Хофф. – Опытные администраторы будут использовать здесь комбинацию [в основном автоматизированных] политик и предупреждений для того, чтобы перенаправлять пользователей на ресурсы того или иного типа, отключать неактивные ресурсы и своевременно узнавать, что использование ресурсов почему-то резко выросло».
Провайдеры облачных сервисов услуг предлагают различные инструменты отчетности и планирования, кроме того, есть и сторонние инструменты для решения таких задач. Общая идея здесь вот в чем: если управлять расходами на облачные технологии исключительно вручную или ситуативно, то, скорее всего, вы потратите больше, чем нужно, или попросту отнимете у людей время.
«Не существует универсального инструмента, чтобы автоматизировать контроль расходов на общедоступные облака, особенно если речь идет о мультиоблачных средах, – говорит Гордон Хофф. – Поэтому здесь важно ознакомиться и использовать множество доступных вариантов, чтобы расходы не выходили из-под контроля, вызывая неприятные вопросы от финансового директора».
Ниже мы рассмотрим два важных подхода, которые помогают с этим справиться.
4. Использование (и автоматизация) меток ресурсов
Джесси Стокэлл отмечает, что многие из наиболее общих целей или стратегий оптимизации облака, будь то расходы, использование ресурсов или размещение рабочих нагрузок, требуют некоего метода управления тем, что касается вопросов классификации и владения.
И роль такого метода играют, во-первых, метки ресурсов (resource tagging), а во-вторых, автоматизация, особенно в гибридных или мультиоблачных средах.
«Оптимизация ресурсов, вывод из эксплуатации, распределение затрат – по этим вопросам просто невозможно принимать обоснованные решения, если вы не знаете, кому принадлежат те или иные ресурсы», – говорит Джесси Стокколл.
Метки ресурсов уже сами по себе являются ключом к автоматизации, но суть в том, что можно автоматизировать и сам процесс простановки таких меток, подробнее см. пост Tagging resources for IT and business alignment.
5. Конвейеры – автоматизация и повторяемость
Автомасштабирование ресурсов позволяет более динамично и эффективно реагировать на запросы пользователей. Однако этот же принцип может с успехом применяться на всем протяжении конвейера ПО за счет автоматизации и повторяемости операций по инициализации инфраструктуры и приложений везде, где только можно.
«Это может быть самостоятельное развертывание из каталога, либо автоматизированные конвейеры DevOps, – говорит Джесси Стокколл. – Автоматизированная инициализация обеспечивает соблюдение стандартов и лучших практик, помогает избежать ручных ошибок, а также позволяет относится к инфраструктуре не как к собранию уникальных и неповторимых серверов, систем и приложений, а как к набору максимально унифицированных “винтиков”». (Так называемая аналогия Pets vs. Cattle.)
Как и в случае с автоматизацией ИТ-инфраструктуры, идея здесь в том, чтобы использовать стандартизацию и автоматизацию везде, где только можно. Не только в продакшн, но и на всех этапах конвейера (неважно, называется ли он CI/CD или нет), по которому проходит ваш код и его зависимости. Цель в том, чтобы избавиться от так называемых snowflake-развертываний, которые требуют внимания и усилия людей.
И наконец, не забывайте, что автоматизация облака, как и большинство других форм ИТ-автоматизации, не работает по принципу «настроил и забыл».
«Управление жизненным циклом, включая постоянную оптимизацию и автоматический вывод из эксплуатации – это гарант того, что ваши рабочие не станут бессмертными и будут постоянно оптимизироваться всю свою жизнь», – говорит Джесси Стокэлл.