Многие организации создают ИТ-системы с использованием мультисредового подхода, независимо от того, означают ли эти системы разработку, промежуточную стадию, подготовку к производству, контроль качества, приемку или производство, эти термины используются для обозначения различных сред, которые имеют разные характеристики и используются для разных целей. Не существует стандартного определения сред или способов их использования, кроме общего спектра, который простирается от “низших” сред разработки до конечной “производственной” среды. В каждом случае определение и ограничения для этих сред полностью задаются организацией и должны быть определены таким образом, чтобы они соответствовали другим бизнес-процессам или стандартам и поддерживали бизнес-требования организации. Несмотря на то что в этой области не существует единых рекомендаций (поскольку разные системы предъявляют разные требования), в следующем разделе приведены некоторые указания, касающиеся того, как следует подходить к вопросам изоляции среды в процессе построения архитектуры.
Пользователи систем ArcGIS ожидают, что система будет доступна, когда им нужно выполнять свою работу. Однако значительные изменения в конфигурациях системы могут привести к простоям, если эти изменения не будут безопасно разработаны и протестированы в средах, отделенных от производственных. Изоляция вычислительных сред — это подход к поддержанию надежности и доступности системы путем создания отдельных систем для производства, тестирования и разработки. Хотя не все изменения (например, конфигурацию приложения) необходимо тестировать в каждой среде, структурированный подход к этой теме может принести пользу значительным обновлениям и новым функциям.
В некоторых случаях ожидания пользователей могут быть задокументированы в соглашении об уровне обслуживания (SLA) или это могут быть просто ожидания того, когда система должна быть доступна. Учитывайте ожидания пользователей и бизнес-потребности при принятии решения об уровне изоляции и управления средой, необходимом для управления системными изменениями.
Чтобы обеспечить наилучшую надежность и доступность системы для пользователей, применяются следующие рекомендации:
В целях приведения этих рекомендаций по передовому опыту компания Esri и наши клиенты широко используют следующие три определения среды.

В зависимости от толерантности организации к рискам и политикам в области ИТ, может возникнуть необходимость в дальнейшем разделении определенных видов деятельности за пределами производственной, промежуточной и разрабатываемой структур. При необходимости можно реализовать несколько сред для различных действий по тестированию и обучению, таких как:
Изоляция среды ограждает производственную среду от известных рисков и изменений, которые могут негативно повлиять на ваш бизнес, таких как обновления, новое программное обеспечение или неожиданные изменения, помогая лучше поддерживать их функциональность, стабильность и производительность. Непреднамеренные изменения системы могут привести к тому, что операционные системы не смогут обеспечить функционал и производительность, которые ожидают пользователи. Реализация этих изолированных вычислительных сред поможет вам создать стабильную, расширяемую и высокопроизводительную систему.
Изоляция среды также сопряжена с затратами, как на ИТ-ресурсы (поддержание работоспособности нескольких систем), так и на лицензирование программного обеспечения и человеческие ресурсы, поскольку все большее число сред требует более широкой сети поддержки и большего количества сотрудников, участвующих в управлении изменениями и развертывании. Как правило, более крупные и критически важные для бизнеса системы разворачивают более сложные подходы к изоляции среды, но даже небольшие организации могут выбрать версию этого подхода, чтобы помочь изолировать изменения и защитить свои системы. Важно проанализировать затраты, связанные с этим выбором, и донести их до заинтересованных сторон, чтобы принять обоснованное решение, а не выбирать по умолчанию несколько сред только потому, что мы “всегда так делали”.
Управление играет решающую роль в успешной реализации изоляции среды. Это метод, с помощью которого снижаются риски, оптимизируются ресурсы и обеспечивается выгода для бизнеса. Управление должно определять, какие политики, процедуры и методы будут использовать команды для поддержания этих сред и продвижения изменений в них.
Не существует универсального набора рекомендаций или стандартного пути управления широким спектром программного обеспечения, приложений, услуг и данных в разных средах. Тем не менее есть некоторые ресурсы, которые помогут последовательно развертывать среды, такие как Chef Cookbooks, Enterprise Cloud Builder, ArcGIS Enterprise Builder, а также инструменты репликации баз данных и пакеты активов. Подробно см. раздел Инструменты развертывания ArcGIS Enterprise. Кроме того, рекомендуется избегать ручной настройки, чтобы по возможности снизить вероятность человеческой error . Рассмотрите возможность использования PowerShell DSC for ArcGIS, ArcGIS REST API и ArcGIS API for Python для автоматизации некоторых из этих задач. Помните, что создание этих сценариев является действием, подходящим для среды разработки.
Каждый выбор, сделанный в разработке, по своей сути ведет к тому, что кто-то должен знать или уметь делать в постановке и производстве. Применяйте передовые способы развертывания, обеспечивая передачу надлежащих знаний и/или навыков производственному персоналу, чтобы они могли работать так, как задумано.
Некоторые организации используют несколько сред ArcGIS Enterprise для разделения этих разных уровней. Согласованное и успешное перемещение ресурсов и управление ими между средами может оказаться сложной задачей. Тем не менее существуют инструменты, которые можно использовать для автоматизации этих задач. Например, в ArcGIS REST API доступны операции Экспорт ресурсов группы и Импорт ресурсов группы, которые упрощают перемещение слоев, карт и приложений при их перемещении между средами.

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

На этом этапе элементы в пакете могут быть обнаружены, опубликованы, отредактированы и использованы в промежуточной среде в соответствии с параметрами промежуточной группы. Тот же рабочий процесс может быть использован для передачи элементов в производственную среду, когда они будут готовы. Для этого рабочего процесса также можно написать скрипт, использующий модуль GroupMigrationManager в ArcGIS API для Python.
Развертывание некоторых типов изменений, например, обновления системы или значительного изменения конфигурации, может привести к нарушению работы. Некоторые организации используют стратегию, называемую сине-зеленым развертыванием, для беспрепятственного развертывания новых изменений для пользователей. Сине-зеленое развертывание — это стратегия развертывания, при которой создаются две отдельные, но идентичные среды. В одной среде (синей) работает текущая версия приложения, а в другой (зеленой) — новая версия приложения или набор конфигураций. Трафик направляется в любую среду с помощью таких стандартных механизмов, как маршрутизаторы, балансировщики нагрузки, обратные прокси или веб-серверы.

Синяя и зеленая среды по очереди играют роль производства. В любой момент времени активна только одна из сред. Например, когда пришло время обновить ArcGIS Enterprise, обновление сначала будет выполнено в зеленой системе. После того как команда тестирования убедится в том, что все полностью функционирует и готово к использованию в рабочей среде, единственное, что меняется, — это направление трафика, идущего от прокси-сервера или балансировщика нагрузки, — вместо синей — на зеленую, без заметных изменений для конечных пользователей. На этом этапе новые ресурсы и возможности будут разрабатываться в синей среде до тех пор, пока не будет проведено достаточное количество испытаний, гарантирующее повторное переключение трафика.
Постоянное поддержание в рабочем состоянии двух наборов сред может оказаться дорогостоящим. К счастью, облако делает сине-зеленое развертывание более осуществимым. У каждого крупного поставщика облачных платформ есть инструменты, которые позволяют создавать и отключать инфраструктуру по требованию. Например, можно запускать и останавливать серверы с инфраструктурой в виде кода и автоматизировать время безотказной работы и настройку системы вплоть до конкретных деталей.
Реализация этих изолированных вычислительных сред поможет вам создать стабильную, расширяемую и высокопроизводительную систему. Используя эти среды для эффективного управления изменениями, вы можете защитить свою систему от непредвиденных сбоев и избежать сбоев в бизнес-операциях. Как минимум, большинство организаций должны иметь хотя бы две вычислительные среды: рабочую и промежуточную, поскольку они могут не участвовать в каких-либо пользовательских разработках, использующих среду разработки, или в основном использовать приложения с небольшим объемом программирования и вообще без написания кода. Однако в зависимости от склонности вашей организации к риску их может быть больше.
Подумайте о том, как вы будете реализовывать и управлять изоляцией среды (и действиями, изолированными в каждой среде) как можно раньше. Несмотря на то что не существует универсального подхода к этому выбору, есть множество инструментов и общепринятых практик, к которым вы можете обратиться за руководством.
Дополнительный ресурс, который был недавно опубликован, охватывает концепцию продвижения ресурсов между средами с примером скриптового подхода к этой теме: Esri Community Post: ArcGIS Enterprise Content Promotion.