Инфраструктура как код

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

  1. Выберите язык автоматизации, например CloudFormation, Terraform, шаблоны ARM, Bicep или другие
  2. Определение различных параметров инфраструктуры, таких как конфигурация виртуальной сети, спецификации виртуальной машины, а также подсистемы балансировки входящей нагрузки или обратные прокси-серверы
  3. Запустите «сборку» этой среды с помощью ручного инструмента, инициированного пользователем, или другого автоматизированного процесса

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

ArcGIS, как правило, совместим со многими подходами и системами IaC, которые часто разрабатываются для работы в определенной облачной среде или системе, например, AWS CloudFormation, шаблоны Azure ARM или GCP Cloud Deployment Manager. Esri также создает инструменты для определенных поставщиков, в частности, шаблоны AWS CloudFormation и шаблоны Azure ARM, которые можно использовать в качестве основы для дальнейшей настройки или расширения.

После развертывания инфраструктуры с помощью поставщика или инструмента IaC, программное обеспечение ArcGIS может быть развернуто в этих системах вручную или автоматически. Подробнее см. в разделе Автоматизация развертывания программного обеспечения ArcGIS.

Некоторые шаблоны IaC предназначены для частого развертывания, когда изменения часто передаются в инфраструктуру или при каждом изменении кода. Этот шаблон может быть трудно согласовать с системами ArcGIS, поскольку как ArcGIS Pro, так и ArcGIS Enterprise полагаются на относительно стабильную и согласованную сетевую и инфраструктурную среду. Таким образом, если требуются изменения IaC, рекомендуется либо осторожно реагировать на эти изменения, как и на любые изменения в корпоративной ИТ-системе (планировать, тестировать, анализировать, корректировать), либо сочетать эти системы с другими инструментами в стиле DevOps, которые обеспечивают автоматизацию развертывания программного обеспечения, чтобы вся система могла быть перестроена и развернута с регулярной периодичностью.

IaC и ArcGIS

Дополнительные рекомендации по работе с инфраструктурой как кодом наряду с ArcGIS включают:

  • IaC — отличный инструмент для поддержания инфраструктуры и базовых конфигураций, но не для поддержания состояния системы. “Состояние” системы ArcGIS включает в себя пользователей, элементы, ресурсы, сервисы и данные. В то время как IaC может заложить соответствующее «аппаратное обеспечение» и установку программного обеспечения, восстановление состояния системы может быть сложным и трудоемким.
  • Использование IaC для развертывания оборудования на ранних этапах проекта (или для новой среды) является более простым, чем попытка обновления существующей среды. Обновления могут корректировать конфигурацию сети, именование компьютеров, правила хранения или брандмауэра, а также другие условия, от которых зависит программное обеспечение, и если программное обеспечение не знает об этих изменениях или не готово к ним, эти изменения на уровне инфраструктуры могут привести к нестабильности или нарушению обслуживания. В качестве аналогии, если работающая система ArcGIS представляет собой автомобиль, движущийся по улице, вы не ожидаете, что поменяете шины автомобиля в середине движения или перейдете с бензина на дизельное топливо во время работы двигателя.
  • Другие языки или провайдеры IaC, скорее всего, совместимы с ArcGIS. В целом, рассматривая потенциальный подход IaC, учитывайте шаги ручной настройки, которые необходимы для оборудования и инфраструктуры, пытайтесь автоматизировать их последовательно и переходите к развертыванию и настройке программного обеспечения после их завершения.

DevOps, CI/CD и ArcGIS

Термин DevOps обычно относится к рабочему процессу развертывания, управляемому кодом, при котором коммиты или релизы автоматически развертывают что-либо, заменяя то, что было раньше. Другие термины, используемые в этой области, включают непрерывную интеграцию или CI и непрерывное развертывание или CD, часто объединяемые как CI/CD. Эти термины пришли из мира разработки программного обеспечения и создания приложений и пользовательских программных приложений, где непрерывное развертывание и тестирование используются для поддержки выпуска программного обеспечения.

ArcGIS является коммерческим готовым программным пакетом, и поэтому он несколько не согласуется с существующим использованием CI/CD или DevOps для разработки пользовательских приложений во многих организациях. После развертывания ArcGIS начинает создавать состояние и конфигурации в ArcGIS Enterprise, ресурсы портала, сервисы, пользовательские ресурсы, конфигурации. Повторное развертывание ArcGIS Enterprise или новой организации ArcGIS Online уничтожает существующее состояние, если не восстановлена ​​резервная копия, поэтому вы больше не можете просматривать то, что создали.

Чтобы DevOps успешно использовался с системами ArcGIS, организации необходимо:

  • Поддерживайте довольно жесткое развертывание с фиксированным набором ресурсов или тщательно управляемыми ресурсами, развертывание которых вы можете автоматизировать из «пустой» системы. Например, одно приложение-просмотрщик, включающее статический набор файловых данных, может развертываться каждую ночь, включая автоматическую публикацию или обновление веб-сервисов.
  • Определите надежный способ извлечения состояния, например с помощью WebGISDR, повторно разверните компоненты системы и базовую конфигурацию, а затем повторно разверните состояние.
Top