Многие организации создают ИТ-системы с использованием мультисредового подхода, независимо от того, означают ли эти системы разработку, промежуточную стадию, подготовку к производству, контроль качества, приемку или производство, эти термины используются для обозначения различных сред, которые имеют разные характеристики и используются для разных целей. Не существует стандартного определения сред или способов их использования, кроме общего спектра, который простирается от «низших» сред разработки до конечной «производственной» среды. В каждом случае определение и ограничения для этих сред полностью задаются организацией и должны быть определены таким образом, чтобы они соответствовали другим бизнес-процессам или стандартам и поддерживали бизнес-требования организации. Несмотря на то что в этой области не существует единых рекомендаций (поскольку разные системы предъявляют разные требования), в следующем разделе приведены некоторые указания, касающиеся того, как следует подходить к вопросам изоляции среды в процессе построения архитектуры.
Пользователи систем ArcGIS ожидают, что система будет доступна, когда им нужно выполнять свою работу. Однако значительные изменения в конфигурациях системы могут привести к простоям, если эти изменения не будут безопасно разработаны и протестированы в средах, отделенных от производственных. Изоляция вычислительных сред — это подход к поддержанию надежности и доступности системы путем создания отдельных систем для производства, тестирования и разработки. Хотя не все изменения (например, конфигурацию приложения) необходимо тестировать в каждой среде, структурированный подход к этой теме может принести пользу значительным обновлениям и новым функциям.
В некоторых случаях ожидания пользователей могут быть задокументированы в соглашении об уровне обслуживания (SLA) или это могут быть просто ожидания того, когда система должна быть доступна. Учитывайте ожидания пользователей и бизнес-потребности при принятии решения об уровне изоляции и управления средой, необходимом для управления системными изменениями.
Чтобы обеспечить наилучшую надежность и доступность системы для пользователей, применяются следующие рекомендации:
В целях приведения этих рекомендаций по передовому опыту компания Esri и наши клиенты широко используют следующие три определения среды.
В зависимости от толерантности организации к рискам и политикам в области ИТ, может возникнуть необходимость в дальнейшем разделении определенных видов деятельности за пределами производственной, промежуточной и разрабатываемой структур. При необходимости можно реализовать несколько сред для различных действий по тестированию и обучению, таких как:
Изоляция среды ограждает производственную среду от известных рисков и изменений, которые могут негативно повлиять на ваш бизнес, таких как обновления, новое программное обеспечение или неожиданные изменения, помогая лучше поддерживать их функциональность, стабильность и производительность. Непреднамеренные изменения системы могут привести к тому, что операционные системы не смогут обеспечить функционал и производительность, которые ожидают пользователи. Реализация этих изолированных вычислительных сред поможет вам создать стабильную, расширяемую и высокопроизводительную систему.
Изоляция среды также сопряжена с затратами, как на ИТ-ресурсы (поддержание работоспособности нескольких систем), так и на лицензирование программного обеспечения и человеческие ресурсы, поскольку все большее число сред требует более широкой сети поддержки и большего количества сотрудников, участвующих в управлении изменениями и развертывании. Как правило, более крупные и критически важные для бизнеса системы разворачивают более сложные подходы к изоляции среды, но даже небольшие организации могут выбрать версию этого подхода, чтобы помочь изолировать изменения и защитить свои системы. Важно проанализировать затраты, связанные с этим выбором, и донести их до заинтересованных сторон, чтобы принять обоснованное решение, а не выбирать по умолчанию несколько сред только потому, что “мы всегда так делали”.
Управление играет решающую роль в успешной реализации изоляции среды. Это метод, с помощью которого снижаются риски, оптимизируются ресурсы и обеспечивается выгода для бизнеса. Управление должно определять, какие политики, процедуры и методы будут использовать команды для поддержания этих сред и продвижения изменений в них.
Не существует универсального набора рекомендаций или стандартного пути управления широким спектром программного обеспечения, приложений, услуг и данных в разных средах. Тем не менее есть некоторые ресурсы, которые помогут последовательно развертывать среды, такие как Chef Cookbooks, Enterprise Cloud Builder, ArcGIS Enterprise Builder, а также инструменты репликации баз данных и пакеты активов. Подробно см. раздел Инструменты развертывания ArcGIS Enterprise. Кроме того, рекомендуется избегать ручной настройки, чтобы по возможности снизить вероятность человеческой ошибки. Рассмотрите возможность использования 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.