Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
Эта статья также участвует"Проект "Звезда раскопок"", чтобы выиграть творческие подарочные пакеты и бросить вызов творческим поощрениям.
В предыдущих статьях рассказывалось об инструментах инфраструктурного кода, но не говорилось о том, что такое IaC, в этой статье кратко рассказано об этом.
Выбор истории
Организационные структуры и функции изменились по мере того, как итерации программного обеспечения становились все быстрее и сложнее.
- На первом этапе отделы разработки (Dev) и эксплуатации и обслуживания (Ops) разделены: разработка отвечает за написание программного обеспечения, а эксплуатация и техническое обслуживание — за управление аппаратным обеспечением.→ Вопрос:Межгрупповое сотрудничество, непоследовательные среды разработки, эксплуатации и обслуживания, большинство развертываний эксплуатационным и обслуживающим персоналом выполняются вручную, часты конфликты кода, сбои в обслуживании и простои.
- На втором этапе, последней платформе облачных вычислений, работа и задача основной команды передаются от управления оборудованием к управлению программным обеспечением, и необходимо написать код.Эта разработка и операция должны написать код, поэтому DEV и OPS сливаются, эволюционировать в
DevOps
.
DevOps-автоматизацияЦель состоит в том, чтобы автоматизировать процесс доставки программного обеспечения. Поэтому, когда дело доходит до управления инфраструктурой, оно должно быть максимально реализовано через код, сокращая способ нажатия на веб-страницы или ручного выполнения команд Shell, то есть с использованием IaC (Infrastructure as Code).
2. Вход в ИАК
IaC (Infrastructure as Code) — это инфраструктура как код, основная идея заключается в определении, развертывании, обновлении и уничтожении инфраструктуры путем написания и выполнения кода.
Это сдвиг в мышлении, который рассматривает каждую работу в операционной как связанную с программным обеспечением, даже те, которые явно зависят от аппаратного обеспечения, где все управляется в коде, включая
- сервер
- база данных
- Интернет
- журнальный файл
- Конфигурация приложения
- Документация
- Автоматизированное тестирование, процесс развертывания
2.1 Ценность решений IaC
- Контроль версий (доступен обзор)
- Создайте автоматизацию CI/CD (не зависит от операций пользовательского интерфейса, уменьшает количество человеческих ошибок)
- Повторное использование (сокращение потерь времени)
- Управление переключением сред (поддержание согласованности производственных, предварительных и тестовых сред и плавное переключение)
- Рост команды и совместная работа (обмен документами)
В общем, вручную управлять инфраструктурой снова и снова утомительно и утомительно, поэтому работа не является ни творческой, ни сложной,Улучшая нашу работу, используя IAC, позвольте нам обратить внимание на более ценные вещи.
2.2 Классификация инструментов IAC
IaC
Это своего рода мысль, и есть много инструментов для реализации такого рода мысли, которые можно условно разделить на пять категорий.
- Специальный сценарий (напишите специальный сценарий для каждой задачи, такой как настройка среды докера, настройка веб-сервисов и т. д. Его довольно сложно поддерживать, и его можно использовать для небольших разовых задач.)
- К этой категории относятся инструменты управления конфигурацией (Chef, Puppet, Absible, SaltStack), предназначенные для установки и управления программным обеспечением на существующих серверах, что лучше, чем специальные скрипты, и может использоваться для крупномасштабных, распределенных и унифицированных сценариев управления. )
- Инструменты шаблона сервера (к этой категории относятся Docker, Packer, Vagrant, используйте образы контейнеров, виртуальные машины (ВМ), чтобы иметь полностью независимый сервер, а затем установите их единообразно на все серверы)
- Инструменты оркестрации (инструменты шаблонов сервера управления для создания виртуальных машин и контейнеров и т. д., конкретные реализации включают K8s, Marathon/Mesos, Amazon Elastic Container Service (Amazon ECS), Docker Swarm и Nomad и т. д.)
- Инструменты предоставления услуг (создание облачных ресурсов, таких как серверы, сети, средства брандмауэра, правила маршрутизации, балансировка нагрузки и т. д., конкретные реализации включают Terraform, CloudFormation, OpenStack Heat, Pulumi и т. д.)