Рубрики
Uncategorized

Преимущества, которые вы должны знать об инфраструктуре как коде

Если вы начинаете свое путешествие в изучении облачного провайдера, такого как Amazon Web Services или Google … Tagged с облаком, DevOps, AWS, производительности.

Если вы начинаете свое путешествие в изучении облачного провайдера, такого как Amazon Web Services или Google Cloud Platform, вы, вероятно, столкнулись с термином Инфраструктура как код (IAC) Анкет Это швейцарский армейский нож как для разработчиков, так и для системных администраторов. В этом посте мы собираемся погрузиться в то, что такое IAC, преимущества, которые он предоставляет, и различные формы, которые он может принимать.

Объясните инфраструктуру как код, как мне пять

Проще говоря, это практика представления нашей инфраструктуры в той или иной форме кода. Определение «кода» остается очень свободным в IAC, так как это могут быть файлы конфигурации YAML или JSON, доморощенные языки, такие как HCL, или традиционные языки, такие как Nodejs или Ruby.

В то время как IAC часто говорят в контексте облака, это не ограничивается только нашими облачными ресурсами.

Как мы знаем, есть все типы инфраструктуры. Существуют общедоступные и частные облачные ресурсы. Облачные и локальные ресурсы. Или комбинация всех этих иногда называемых гибридным облаком.

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

Выгоды

Хорошо, мы понимаем, инфраструктура как код … просто код.

Но почему в мире мы должны использовать его и что мы собираемся выйти из этого?

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

Ответ, скорее всего, да.

Может быть, вы сделали это для вашей тестовой среды. Затем, когда пришло время перейти на производство, вам пришлось снова нажать на эти же кнопки и надеяться, что вы правильно получите заказ.

Что если кто -то еще в вашей команде должен был воспроизвести те же нажатия кнопки, чтобы создать свою собственную среду? Посмотрите, как это становится больно. Некоторые люди могут сказать, документировать процесс, и это решает проблему. Это правда, но это все еще не идеально.

Документация делится знаниями изначально, но может стать устаревшим. Разработчики имеют неприятную привычку не читать документацию, если она не так прямо перед ними. Наконец, документация не может быть проверена так же, как код.

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

Представляя ресурсы в качестве кода, мы можем параметризировать код для поддержки нескольких сред, поделиться кодом с нашими товарищами по команде и даже проверить код, чтобы обеспечить точность.

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

Потенциальные недостатки

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

Первоначальным недостатком инфраструктуры в качестве кода является кривая обучения. Как я упоминал ранее, термин код является гибким в этом процессе, и поэтому он часто требует изучения нового аромата кода на основе используемого вами инструмента. Изучение того, как представлять свой сетевой стек VPC внутри AWS CloudFormation-это нетривиальный навык для изучения.

Скорочная кривая обучения, время — еще один потенциальный недостаток IAC. Часто гораздо быстрее заходить в вашу консоль AWS и щелкнуть по нескольким кнопкам, чем написать код инфраструктуры внутри Terraform. Многие команды делают этот компромисс на раннем этапе ради того, чтобы идти быстрее и отправлять продукт или услугу.

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

Хотя это значительные недостатки, они не должны помешать нам дальше изучать IAC. Тем не менее, они должны быть вещами, которые мы рассматриваем, когда мы выбираем инструменты, которые помогают нам в этом путешествии.

Инструменты, инструменты, инструменты и другие инструменты

Когда дело доходит до инструментов IAC, полезно подумать о них в двух разных, но часто перекрывающихся категориях.

  • Инструменты оркестровки конфигурации предназначены для автоматизации развертывания нашей инфраструктуры.
  • Инструменты управления конфигурацией предназначены для того, чтобы помочь настроить программное обеспечение и системы на инфраструктуре, которая была предоставлена.

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

Со мной до сих пор? Превосходно. Вот некоторые из текущих инструментов, которые популярны в инфраструктуре как пространство кода.

Terraform является облачной агностической инфраструктурной инструментом. Это позволяет нам как разработчикам представлять нашу инфраструктуру, независимо от того, является ли это AWS, Google Cloud или Azure, на четко определенном языке, известном как HCL.

Terraform очень расширяется через плагины и имеет очень сильное сообщество, которое производит отличные модули с открытым исходным кодом для обеспечения кусков инфраструктуры.

AWS CloudFormation не является облачным агностиком и посвящена обеспечению инфраструктуры в счетах AWS. Это позволяет нам представлять нашу инфраструктуру AWS в файлах конфигурации JSON или YAML, которые мы можем затем выполнить для создания, обновления и уничтожения ресурсов.

CloudFormation очень хорошо интегрирована в экосистему AWS и разработала множество функций для предварительного просмотра, отката и управления изменениями ресурсов.

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

Шеф-повар, как и Terraform, облачно. Он использует общеизвестный язык, Ruby. Обычно он используется для настройки экземпляров Elastic Compute (EC2) и даже локальных серверов.

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

Ansible это инструмент автоматизации инфраструктуры от Red Hat. Разработчики описывают, как их компоненты и система относятся друг к другу. Он предназначен для управления и кодификации систем в конце концов, а не независимо. Эти определения написаны в YAML и известны как пьесы.

Juju является инструментом IAC от Ubuntu, который позволяет разработчикам представлять свою инфраструктуру как чары, которые являются наборами сценариев, которые развертывают и эксплуатируют системы. Эти чары могут быть упакованы в виде пучков для развертывания всей инфраструктуры для приложения.

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

Куда пойти отсюда

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

Следующий шаг в понимании IAC — выбрать инструмент из списка выше и начать исследовать его.

  • Начните с простого варианта использования, такого как обеспечение ведра S3 или экземпляра EC2.
  • Как только ресурс будет предоставлен. Исследуйте еще один ресурс для предоставления.
  • Экспериментируйте с параметризацией кода для поддержки нескольких сред.
  • Изучите различия между созданием, обновлением и уничтожением ресурсов для инструмента.

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

Вывод

Инфраструктура как код — это процесс и практика представления основных ресурсов, которые поддерживают наши системы в коде. Это позволяет нам использовать те же процессы, которые мы уже используем при написании кода приложения.

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

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

Вы голодны, чтобы узнать больше о веб -сервисах Amazon?

Хотите узнать больше о AWS? Недавно я выпустил электронную книгу и видео, который прорезает море информации. Он фокусируется на хостинге, защите и развертывании статических веб -сайтов на AWS. Цель состоит в том, чтобы изучить услуги, связанные с этой проблемой, поскольку вы их используете. Если вы хотели выучить AWS, но вы не уверены, с чего начать, проверьте мой курс .

Оригинал: «https://dev.to/kylegalbraith/the-benefits-you-need-to-know-about-infrastructure-as-code-8c4»