6 бесплатных инструментов Terraform для поддержки многооблачной инфраструктуры
3 апреля 2022 г.Вы ищете лучшие бесплатные инструменты Terraform, которые помогут вам с мультиоблачной инфраструктурой?
Инструменты Terraform — это предварительно написанные коды, которые добавляют несколько функций для расширения возможностей Terraform.
Эта короткая статья покажет вам лучшие инструменты Terraform, которые увеличат вашу эффективность в 10 раз при работе с многооблачной инфраструктурой.
6 бесплатных инструментов Terraform для многооблачной инфраструктуры
Я использовал и изучил множество модулей Terraform и проектов с открытым исходным кодом. Итак, инструменты Terraform в списке проверены многими разработчиками.
Для меня эти 6 проектов Terraform являются лучшими инструментами Terraform:
- Терраформер
- Террагрунт
- Инфрастоимость
- ТфСек
- Потоковое оповещение
- ТфЛинт
#1 Терраформер
Одним словом, Terraformer создает копию существующей инфраструктуры Terraform. Обратная Terraform, можно сказать.
Многим малым предприятиям и организациям сложно разобраться в существующей инфраструктуре. Несколько разработчиков присоединяются, работают над инфраструктурой и покидают организацию. Добавьте теневые ИТ, и это приведет к трудночитаемой инфраструктуре.
Но инфраструктура продолжает работать. Смешайте несколько облаков, несколько виртуальных машин, сегменты хранилища и т. д., и вся среда станет сложной.
Ручная настройка и написание сценария Terraform для инфраструктуры — процесс, отнимающий много времени и ресурсов. Кроме того, у вас может не быть полосы пропускания и разрешения на создание инфраструктуры с нуля.
Terraform позволяет инженерам преобразовать существующую инфраструктуру в код Terraform. Разработчики могут редактировать код и вносить быстрые изменения по мере необходимости.
Имея только права на чтение, Terraformer не может вносить изменения в инфраструктуру. Он может только читать и создавать из него скрипт .tf.
[Загрузить на GitHub здесь.] (https://github.com/GoogleCloudPlatform/terraformer)
#2 Террагрунт
По определению:
Terragrunt — это тонкая оболочка, которая предоставляет дополнительные инструменты для сохранения ваших конфигураций в СУХОМ состоянии, работы с несколькими модулями Terraform и управления удаленными состояниями.
Terraform содержит одно большое состояние для предоставления ресурсов от нескольких поставщиков. Для обновления большого состояния требуется время. Если у вас большая команда, вы обнаружите, что кто-то блокирует состояние своими изменениями.
Наличие одного большого состояния снижает эффективность. Terragrunt может разделить большое состояние Terraform на несколько меньших состояний. Кроме того, если вы развертываете одну и ту же инфраструктуру для нескольких учетных записей, Terragrunt может сэкономить много времени, предоставляя вам самовоспроизводящиеся модули.
Terragrunt помогает при:
- Сохраняйте ваш код Terraform СУХИМ
- Сохранение конфигурации удаленного состояния DRY
- Выполнение команд Terraform на нескольких модулях одновременно
#3 Инфрастоимость
Infracost считывает ваш код Terraform и отслеживает более 3 миллионов ценовых пунктов, чтобы отобразить понятную смету расходов. Вы можете оценить все цены до запуска.
Если вы хотите снизить затраты на инфраструктуру, Infracost не представляет никакой сложности. Кроме того, он сопоставляет стоимость с ресурсами в ваших запросах на вытягивание. Это скажет вам, какая строка кода оказывает более сильное влияние на стоимость. Затем вы можете внести изменения, если хотите. Вы можете обсудить изменения с членами вашей команды в существующем рабочем процессе, так как Infracost интегрирован в CI/CD.
Наконец, вы можете запустить анализ «что, если». Он сообщает вам о влиянии на стоимость, если вы измените тип экземпляра, регион или поставщика облачных услуг. Он также оценивает цену, если использование увеличивается.
Infracost оценивает ваши инфраструктурные затраты и прогнозирует цену после изменений в инфраструктуре и использовании.
[Загрузить с их сайта здесь] (https://www.infracost.io/).
#4 Тфсек
Tfsec — как следует из названия — это сканер безопасности для кода Terraform.
Он работает локально и в конвейерах CI, чтобы обеспечить удобный для разработчиков вывод. Кроме того, документация помогает быстро и эффективно обнаруживать и устранять проблемы безопасности.
Tfsec использует статический анализ и глубокую интеграцию с официальным синтаксическим анализом HCL, чтобы обеспечить возможность отслеживания проблем безопасности до того, как изменения инфраструктуры вступят в силу.
Недавно Tfsec присоединился к Aquasecurity. Программное обеспечение останется с открытым исходным кодом, но будет иметь больше точек соприкосновения для аудита безопасности. У него больше данных для сравнения и оценки утечек безопасности в коде Terraform.
Tfsec — небольшой инструмент, но он может уберечь вас от больших проблем, обнаружив проблему безопасности перед развертыванием кода.
Загрузить с GitHub компании здесь.
#5 StreamAlert
StreamAlert, созданный инженерами Airbnb, представляет собой систему анализа данных в режиме реального времени с оповещением на определенный момент времени. Он решает одну из самых больших проблем в стратегии мультиоблачной инфраструктуры — МОНИТОРИНГ БЕЗОПАСНОСТИ.
StreamAlert является бессерверным и может масштабироваться до ТБ/час. Кроме того, развертывание инфраструктуры автоматизировано и использует для развертывания Terraform.
Будучи независимым от облака, StreamAlert может отслеживать несколько облаков и источников данных. Он может принимать данные с любого устройства и операционной системы — Android, Windows и т. д. Кроме того, если среда подключена к Интернету, StreamAlert может принимать его данные.
StreamAlert поставляется с гибкой системой оповещения, которая интегрирует новые или существующие инструменты управления делами/инцидентами. Это позволяет вашим Правилам отправлять оповещения на один или несколько выходов.
[Загрузить с их сайта здесь] (https://streamalert.io/).
#6 TfLint
Lint, или линтер, — это быстрый инструмент для анализа статического кода. Он выявляет и указывает на ошибки программирования, баги, стилистические ошибки и подозрительные конструкции. TfLint делает это для кода терраформирования.
TFLint — это фреймворк, и плагины предоставляют каждую функцию; основные особенности заключаются в следующем:
- Найдите возможные ошибки (например, недопустимые типы экземпляров) для основных облачных провайдеров (AWS/Azure/GCP).
- Предупреждать об устаревшем синтаксисе, неиспользуемых объявлениях.
- Применять лучшие практики, соглашения об именах.
С более чем 700 встроенными правилами, включая обычные правила Terraform и основные правила облачных провайдеров (AWS, Azure, Google), это один из самых полных линтеров Terraform.
Очень полезно найти эрос, которого нельзя было найти на стадии Плана. После того, как вы нажмете Apply, на стороне провайдера может возникнуть множество ошибок. Например, неверные инстансы EC2 не будут отображаться в Plan, но вызовут ошибки в приложении.
Tflint находит все эти сценарии, которые могут вызвать проблемы при развертывании кода. TFLint был создан на Go и имел систему плагинов, позволяющую работать с ним любому, кто знаком с языком Go.
[Загрузить с GitHub здесь] (https://github.com/terraform-linters/tflint).
Резюме:
- Terraformer: для преобразования существующей инфраструктуры в код Terraform.
- Terragrunt: для эффективного управления и обслуживания модулей Terraform.
- Infracost: для оценки и прогнозирования цен на инфраструктуру.
- TfSec: для обеспечения безопасности инфраструктуры путем сканирования кода перед развертыванием.
- StreamAlert: Для мониторинга инфры и установки правил оповещений.
- TfLint: Для анализа кода на наличие багов, ошибок и неправильного синтаксиса.
Заключительные слова: использование инструментов Terraform для облегчения работы с несколькими облаками
Существует так много инструментов Terraform. - как бесплатные, так и коммерческие. Я упомянул только бесплатные инструменты Terraform, чтобы помочь вам в этой статье.
Вы можете загрузить их и включить в любой проект Terraform, чтобы улучшить рабочий процесс.
Предлагайте дополнительные инструменты в комментариях, если хотите, и я добавлю их в статью. :)
Оригинал