Поиск по сайту:

Что такое инфраструктура как код?


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

Как работает инфраструктура как код?

Инфраструктура как код (IaC) в теории довольно проста. Все развертывания вашего сервера, облачные службы и связанная с ними конфигурация хранятся в одном централизованно изменяемом файле конфигурации или наборе файлов конфигурации, обычно YAML или чем-то подобном. Каждый файл конфигурации содержит необходимые инструкции и директивы для воссоздания всего облачного решения с нуля.

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

Это означает, что IaC работает по принципу «все или ничего». Не рекомендуется запускать IaC вместе с управляемыми вручную развертываниями, хотя вы, безусловно, можете это сделать, особенно если системы разделены.

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

И, поскольку все это определено в коде, вы также можете легко автоматизировать процесс запуска среды разработки, подготовки, тестирования и производства. Таким образом, вы можете протестировать изменения во всем развертывании перед обновлением. При желании вы даже можете автоматизировать модульные тесты IaC.

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

Использование инфраструктуры как кода

Естественно, кодификация всей вашей инфраструктуры может быть трудным процессом. Однако вам не всегда нужно создавать шаблон YAML вручную; Решение CloudFormation IaC от AWS включает веб-конструктор, который визуально отображает весь стек вашего продукта. Например, вот один из примеров шаблонов для автомасштабируемого развертывания WordPress с балансировкой нагрузки, использующего экземпляр RDS в качестве базы данных.

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

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

Для получения дополнительной информации о CloudFormation вы можете прочитать наше руководство по началу работы с ним.