Платформа Pulumi IaC (инфраструктура как код) выбирает интересный путь к созданию облачных инфраструктур. Вместо использования предметно-ориентированного языка, такого как Bicep, или декларативных конфигураций, таких как шаблоны Azure ARM, он предлагает способ использования знакомых универсальных вычислительных языков для описания и программного построения инфраструктур с использованием платформы с открытым исходным кодом.

Вы пишете код в редакторах по вашему выбору, используя стандартные языковые инструменты для обработки форматирования и линтинга кода, а также он работает против двигателя Pulumi, который предоставляет виртуальные инфраструктуры и настраивает конечные точки служб, готовые для вашего кода. Поскольку файлы Pulumi – это просто стандартный C #, Python, JavaScript или даже Go, ими можно управлять вместе с кодом приложения и включать их в любой проект IDE.

Создайте инфраструктуру в своем редакторе кода

Это мощный подход; вам не нужно учить новые языки и вы можете использовать потоки управления таким образом, что декларативный предметно-ориентированный язык не может поддерживать. В результате один фрагмент кода Pulumi может определять все ресурсы, которые используются любым проектом вашей организации. Важно то, как вы вызываете код, используя элементы управления потоком для развертывания групп серверов и настройки программно определяемых сетей.

Те же инструменты модульного тестирования, которые вы используете для своего кода, можно использовать для инфраструктуры, запуска кода, чтобы увидеть, что было бы развернуто, если бы вы были в реальной среде. Тестируя определения инфраструктуры и код перед запуском, вы можете избежать неправильной конфигурации и ошибок. Развертывание небольшого приложения на большом сервере Azure может оказаться дорогостоящей ошибкой, которую легко упустить без практической поддержки операций.

Pulumi предлагает инструменты для архитекторов и операционных групп, чтобы применять стандарты архитектуры и политики к инфраструктуре. Вы можете установить ограничения для предоставляемых серверов или используемых уровней обслуживания, а также определить различные характеристики для разработки, тестирования и производства. Использование подобных архитектурных стандартов ставит ограждения вокруг ваших развертываний Azure точно так же, как Visual Studio может обеспечить соблюдение стандартов кодирования.

Встроенная поддержка Azure

Первоначальный выпуск Pulumi был кросс-облачным инструментом. Код, написанный на Pulumi, может предоставить инфраструктуру на платформе любого облачного провайдера. Но это ограничивало вас использованием только сервисов, которые могли работать во всех облаках; вы не могли использовать его для создания приложений для Azure, основанных на службах и API Azure.

За последние несколько выпусков Pulumi начала внедрять поддержку тех, кого называет родными поставщиками., причем Azure первым стал общедоступным в рамках недавно выпущенного Pulumi 3.0. Microsoft вкладывает большие средства в документирование и добавление метаданных в свои API, а Azure предоставляет данные для своих REST API. Это позволяет Pulumi каждую ночь создавать новую версию своего собственного поставщика Azure, чтобы не отставать от новых функций и обновлений.

Это не означает, что API и вызовы, которые вы используете, должны меняться с одинаковой скоростью. Инструменты Pulumi поддерживают все версии API Azure, поэтому ваш код и инфраструктуру не нужно менять, пока Azure не прекратит поддержку версии, которую вы сейчас используете. Если появится новая служба, которую вы хотите использовать в своих приложениях, она будет доступна, как только Azure опубликует API. Тот же API автоматически генерирует документацию, с новыми версиями для каждого поддерживаемого языка.

Это полезный инструмент, и Pulumi явно гордится своими возможностями. Как отмечает компания, было выполнено 279 различных сборок собственного поставщика, добавив 166 новых API инфраструктуры Azure.

Бюджеты инфраструктуры как код

Эти API включают в себя API управления и биллинга., чтобы вы могли контролировать свою инфраструктуру, чтобы управлять расходами и обеспечивать безопасность. Код инфраструктуры может включать бюджеты потребления, чтобы помочь вам отслеживать затраты и связывать ресурсы с конкретными учетными записями. Бюджеты можно измерять на месяц, квартал и год. Бюджеты также могут быть основаны на использовании, при этом уведомления автоматически отправляются на адреса электронной почты при превышении квот или пороговых значений.

Управление затратами в Azure может быть сложным, и этот подход должен помочь вам установить соответствующие меры безопасности для инфраструктуры и использования служб. Не все будет покрыто этим инструментом, но вы должны иметь представление о том, во что вам обходятся ваши услуги и как вы можете потратить более эффективно, возможно, путем повторной инициализации на серверах с более низкими характеристиками.

Автоматизация инфраструктуры с помощью кода

Одна из наиболее интересных функций Pulumi 3.0 – это API автоматизации.. Это позволяет вам встраивать функции Pulumi в свои собственные приложения в качестве инструмента для управления облачными инфраструктурами. Это увлекательный подход, достаточно гибкий, чтобы его можно было использовать по-разному.

Один из очевидных вариантов – встроить его во внутренний портал для развертывания инфраструктуры самообслуживания. Вместо того, чтобы предоставлять всем вашим инженерам доступ к порталу Azure, внутренняя служба может быть заполнена утвержденными образами серверов и другими элементами инфраструктуры. Инженеры, которым требуется временная среда тестирования или разработки, могут выбирать нужные инструменты и автоматически развертывать их, не требуя поддержки операций. Служба может восстанавливать ресурсы после завершения теста, сводя к минимуму выставление счетов.

В качестве альтернативы можно сохранить набор сценариев Pulumi для инфраструктуры конкретного приложения в выбранных вами репозиториях. Сборка приложения в Azure Devops не только компилирует, создает и упаковывает код, но и может использовать действие конвейера для запуска Pulumi Automation API и развертывания инфраструктуры Azure, готовой для кода.

Наличие API для управления инфраструктурой позволяет вам начать писать собственный код управления, используя данные из API управления Azure для использования в сочетании с такими инструментами, как API прогнозирования Cognitive Service, для упреждающего развертывания дополнительных элементов инфраструктуры приложений в ответ на изменения нагрузки или знаков. сбоя в текущем работающем экземпляре. Развертывая инфраструктуру только тогда, когда это необходимо, вы можете свести затраты к минимуму, сохраняя при этом скорость отклика и стабильность ваших приложений.

Идея создания кода, который может управлять самим собой, привлекательна, особенно в организациях, где трудно найти операционные ресурсы. Самоуправляемые приложения необходимо будет тщательно протестировать перед развертыванием, и вам потребуется хорошая культура DevOps для успешного использования этих методов, а персонал по эксплуатации приложений сможет контролировать весь набор приложений и инструментов.

Это крупный выпуск инструмента, который становится все более полезным. Динамическое построение на основе API-интерфейсов Azure ARM гарантирует, что ваша инфраструктура всегда может использовать новейшие службы. Ваши приложения могут основываться на них, как только они будут выпущены, при этом пользуясь преимуществами автономной автоматизированной инфраструктуры с использованием выбранных вами языков. Pulumi также работает над добавлением новых языков в свой инструментарий, в настоящее время разрабатываются Ruby и Java.

Авторские права © 2021 IDG Communications, Inc.


#Использование #Pulumi #для #управления #инфраструктурой #Azure

Source link