Изоляция среды

Многие организации создают ИТ-системы с использованием мультисредового подхода, независимо от того, означают ли эти системы разработку, промежуточную стадию, подготовку к производству, контроль качества, приемку или производство, эти термины используются для обозначения различных сред, которые имеют разные характеристики и используются для разных целей. Не существует стандартного определения сред или способов их использования, кроме общего спектра, который простирается от “низших” сред разработки до конечной “производственной” среды. В каждом случае определение и ограничения для этих сред полностью задаются организацией и должны быть определены таким образом, чтобы они соответствовали другим бизнес-процессам или стандартам и поддерживали бизнес-требования организации. Несмотря на то что в этой области не существует единых рекомендаций (поскольку разные системы предъявляют разные требования), в следующем разделе приведены некоторые указания, касающиеся того, как следует подходить к вопросам изоляции среды в процессе построения архитектуры.

Пользователи систем ArcGIS ожидают, что система будет доступна, когда им нужно выполнять свою работу. Однако значительные изменения в конфигурациях системы могут привести к простоям, если эти изменения не будут безопасно разработаны и протестированы в средах, отделенных от производственных. Изоляция вычислительных сред — это подход к поддержанию надежности и доступности системы путем создания отдельных систем для производства, тестирования и разработки. Хотя не все изменения (например, конфигурацию приложения) необходимо тестировать в каждой среде, структурированный подход к этой теме может принести пользу значительным обновлениям и новым функциям.

В некоторых случаях ожидания пользователей могут быть задокументированы в соглашении об уровне обслуживания (SLA) или это могут быть просто ожидания того, когда система должна быть доступна. Учитывайте ожидания пользователей и бизнес-потребности при принятии решения об уровне изоляции и управления средой, необходимом для управления системными изменениями.

Рекомендации

Чтобы обеспечить наилучшую надежность и доступность системы для пользователей, применяются следующие рекомендации:

  1. Если это возможно для организации, реализуйте изолированные производственные, промежуточные среды и среды разработки.
  2. Протестируйте такие системные изменения, как исправления, обновления или изменения параметров ОС в промежуточной среде, прежде чем вносить изменения в рабочую среду.
  3. Используйте среду разработки для разработки и тестирования новых возможностей, не затрагивая пользователей в других средах.
  4. Следуйте стандартным методам управления при продвижении ресурсов и возможностей в разных средах.
  5. Составьте план управления продвижением ресурсов: кто проверяет ресурсы, кто одобряет и как они продвигаются?

Цели среды

В целях приведения этих рекомендаций по передовому опыту компания Esri и наши клиенты широко используют следующие три определения среды.

  1. Производственная среда — это работающая система, поддерживающая конечных пользователей. Требования к времени бесперебойной работы обычно определяются соглашением об уровне обслуживания и удовлетворяются за счет эффективного управления изменениями и руководства. Как правило, изменения в программное обеспечение, приложение, конфигурацию или сеть не должны вноситься в производственной системе до их тестирования в промежуточной среде. Сотрудники, вовлеченные в производственную среду, обычно просматривают приложения для принятия решений, собирают и редактируют информацию в офисе или за его пределами, а также координируют работу для выполнения критически важной работы. Эта среда часто характеризуется усиленным мониторингом, может содержать выделенное оборудование для обеспечения хорошей производительности и максимальную ИТ-поддержку, связанную с ее обслуживанием.
  2. Промежуточная среда обычно предназначена для того, чтобы быть репрезентативным отражением производственной среды, позволяющим проверять системные изменения перед внедрением этих изменений в рабочую среду. Термин “репрезентативный” используется потому, что поддержание всей среды, идентичной производственной, является дорогостоящим как с точки зрения ресурсов, так и поддержки персонала. Несмотря на то что промежуточная среда обычно отражает рабочую среду с точки зрения уровней, серверов, компонентов и ролей, вам может потребоваться или не потребоваться такая же мощность отдельного сервера, что и в рабочей среде, поэтому может быть рассмотрено развертывание в меньшем масштабе и возможна экономия средств. Вы можете выполнять приемочное тестирование пользователем, тестирование производительности, нагрузочное тестирование и обучение в промежуточной среде, чтобы избежать риска для рабочей системы. При необходимости вы даже можете реализовать несколько промежуточных сред для различных тестов и обучающих мероприятий. Сотрудники, участвующие в промежуточной среде, — это те, кто обычно выполняет нагрузочные тесты, тесты производительности, интеграционные тесты, контроль качества и даже, возможно, обучение.
  3. Система разработки — это рабочее пространство, в котором разработчики и аналитики могут создавать ресурсы или вносить изменения и управлять им, не влияя на большую аудиторию. Эта выделенная среда обычно используется для создания таких новых возможностей, как приложения, сервисы, модели данных или модели геообработки, для модульного тестирования, а также для проектирования и создания бизнес-процессов. Размер и сложность среды будут зависеть от уровня риска, создаваемого изменениями, количества создателей и потенциального воздействия сбоев и простоев системы. Как правило, доступ к этой системе имеют только сотрудники, активно работающие с ресурсами в среде разработки, или она вообще недоступна в организации.

environment-isolation-1

В зависимости от толерантности организации к рискам и политикам в области ИТ, может возникнуть необходимость в дальнейшем разделении определенных видов деятельности за пределами производственной, промежуточной и разрабатываемой структур. При необходимости можно реализовать несколько сред для различных действий по тестированию и обучению, таких как:

  • QA/QC
  • Интеграционное или приемочное тестирование
  • Тестирование производительности
  • Нагрузочное тестирование
  • Обучение

Преимущества и затраты на изоляцию среды

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

Изоляция среды также сопряжена с затратами, как на ИТ-ресурсы (поддержание работоспособности нескольких систем), так и на лицензирование программного обеспечения и человеческие ресурсы, поскольку все большее число сред требует более широкой сети поддержки и большего количества сотрудников, участвующих в управлении изменениями и развертывании. Как правило, более крупные и критически важные для бизнеса системы разворачивают более сложные подходы к изоляции среды, но даже небольшие организации могут выбрать версию этого подхода, чтобы помочь изолировать изменения и защитить свои системы. Важно проанализировать затраты, связанные с этим выбором, и донести их до заинтересованных сторон, чтобы принять обоснованное решение, а не выбирать по умолчанию несколько сред только потому, что мы “всегда так делали”.

Реализация изоляции среды

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

Не существует универсального набора рекомендаций или стандартного пути управления широким спектром программного обеспечения, приложений, услуг и данных в разных средах. Тем не менее есть некоторые ресурсы, которые помогут последовательно развертывать среды, такие как 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 Enterprise для разделения этих разных уровней. Согласованное и успешное перемещение ресурсов и управление ими между средами может оказаться сложной задачей. Тем не менее существуют инструменты, которые можно использовать для автоматизации этих задач. Например, в ArcGIS REST API доступны операции Экспорт ресурсов группы и Импорт ресурсов группы, которые упрощают перемещение слоев, карт и приложений при их перемещении между средами.

environment-isolation-2.png

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

  1. Экспортируйте ресурсы группы из разработки в пакет.
  2. Добавьте пакет в качестве элемента в промежуточную среду.
  3. Импортируйте содержимое пакета в группу в промежуточной среде.
  4. Разверните пользовательское приложение в промежуточной среде размещения и укажите в конфигурации URL-адреса промежуточной среды.

environment-isolation-3

На этом этапе элементы в пакете могут быть обнаружены, опубликованы, отредактированы и использованы в промежуточной среде в соответствии с параметрами промежуточной группы. Тот же рабочий процесс может быть использован для передачи элементов в производственную среду, когда они будут готовы. Для этого рабочего процесса также можно написать скрипт, использующий модуль GroupMigrationManager в ArcGIS API для Python.

Сине-зеленые развертывания

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

environment-isolation-4.png

Синяя и зеленая среды по очереди играют роль производства. В любой момент времени активна только одна из сред. Например, когда пришло время обновить ArcGIS Enterprise, обновление сначала будет выполнено в зеленой системе. После того как команда тестирования убедится в том, что все полностью функционирует и готово к использованию в рабочей среде, единственное, что меняется, — это направление трафика, идущего от прокси-сервера или балансировщика нагрузки, — вместо синей — на зеленую, без заметных изменений для конечных пользователей. На этом этапе новые ресурсы и возможности будут разрабатываться в синей среде до тех пор, пока не будет проведено достаточное количество испытаний, гарантирующее повторное переключение трафика.

Постоянное поддержание в рабочем состоянии двух наборов сред может оказаться дорогостоящим. К счастью, облако делает сине-зеленое развертывание более осуществимым. У каждого крупного поставщика облачных платформ есть инструменты, которые позволяют создавать и отключать инфраструктуру по требованию. Например, можно запускать и останавливать серверы с инфраструктурой в виде кода и автоматизировать время безотказной работы и настройку системы вплоть до конкретных деталей.

Итоговые рекомендации

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

Подумайте о том, как вы будете реализовывать и управлять изоляцией среды (и действиями, изолированными в каждой среде) как можно раньше. Несмотря на то что не существует универсального подхода к этому выбору, есть множество инструментов и общепринятых практик, к которым вы можете обратиться за руководством.

Дополнительный ресурс, который был недавно опубликован, охватывает концепцию продвижения ресурсов между средами с примером скриптового подхода к этой теме: Esri Community Post: ArcGIS Enterprise Content Promotion.

Top