September 12, 2023

Раздельное окружение 

В истории развивающихся IT компаний рано или поздно возникает необходимость в создании тестового окружения. И перед системными администраторами / архитекторами возникает закономерный вопрос, а как правильно это окружение организовать.

Сегодня мы расскажем про большинство плюсов и минусов выделения тестовой среды в отдельный сегмент (окружение), а также рассмотрим несколько сценариев реализации.

Преимуществ, как и недостатков не мало, но их вес индивидуален в каждом конкретном случае. Начнем с плюсов:

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

Ну а теперь давайте пройдемся по минусам:

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

Разделение прода и теста в любом случае потребует тщательной проработки общей концепции и выделение дополнительных часов специалистов на планирование.

Теперь, давайте рассмотрим несколько сценариев организации окружений.

Тут необходимо сделать ремарку, что в случае, если вам нужна зеркальная копия инфраструктуры, то некоторые сценарии, описанные ниже, вам просто не подойдут. Например, размещение своего оборудования в ЦОДе или в офисе + облако.

Сценарий 1. Prod и Test в публичном облаке.

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

По сути, здесь вы ограничены возможностями сервис провайдера и финансами.

Сценарий 2. Публичное облако + оборудование в офисе.

Если у вас есть возможность разместить тестовое оборудование в региональном или центральном офисе, то это вариант для вас.

Дополнительные преимущества данного подхода:

  • Экономия на аренде стоек. Если вы размещаетесь в стойках дата-центра, то вы платите за их аренду, в случае с офисом таких издержек нет.
  • В некоторых случаях упрощение обслуживания. Если у вас есть специалисты в штате, то в офисе оборудование проще обслуживать, чем планировать постоянные поездки в дата-центр.

Объективные дополнительные минусы подхода:

  • Затраты на персонал. Необходимо нанимать собственных специалистов, которые занимаются обслуживанием инфраструктуры.
  • Выделение стойка места под оборудование. Вам необходимо дополнительное помещение или места в стойках, где вы будете размещать оборудование.
  • Организация связи ЦОД – офис. Между площадками у вас должна быть стабильная, выделенная сеть. Иначе сервисы будут страдать, а репликация данных будет длиться бесконечность.

Сценарий 3. Публичное облако + колокейшн в том же ЦОДе.

Этот сценарий предусматривает вариант, когда одна из сред находится в облаке, а другая на вашем оборудовании внутри Дата-Центра.

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

Сценарий 4. Колокейшн + оборудование в офисе.

Тоже хороший вариант. Очень похож на сценарий 2, только включает дополнительные минусы обслуживания оборудования в ЦОДе.

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

Подводя итог, если вы задумались о выделении тестовой среды в отдельное окружение, взвесьте все плюсы и минусы. Готовы ли вы на такой шаг и возможно ли это технически? И только после этого переходите к этапу планирования технической части и затем внедрению.