【Облачные вычисления】 Выбор истории – инфраструктура как код IaC

CI/CD облачные вычисления
【Облачные вычисления】 Выбор истории – инфраструктура как код IaC

Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
Эта статья также участвует"Проект "Звезда раскопок"", чтобы выиграть творческие подарочные пакеты и бросить вызов творческим поощрениям.

В предыдущих статьях рассказывалось об инструментах инфраструктурного кода, но не говорилось о том, что такое 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 и т. д.)