Обновление без остановки бизнеса: как организовать тестовый сервер для компании
Бизнес и финансы
14 октября 2021, 23:21
После обновления складской программы не печатается накладная, обмен с интернет-магазином задвоил заказы, а отчёт открывается вдвое дольше. Если ошибка обнаруживается в начале рабочего дня, под угрозой оказываются продажи и отгрузки. Как торговой, производственной или сервисной компании Воронежа проверить новую версию, не экспериментируя на работающем бизнесе?
Решение — тестовый стенд: сервер с копиями приложений и баз данных, где можно повторить реальные операции и отрепетировать восстановление. Он не заменяет рабочую систему, а помогает обнаружить ошибку до внедрения обновления.
Какое оборудование подходит для тестового стенда
Одним из вариантов для нескольких виртуальных машин может быть HPE ProLiant DL380 Gen10. Согласно официальному документу HPE QuickSpecs, это стоечная платформа высотой 2U с поддержкой до двух процессоров Intel Xeon Scalable и 24 слотами памяти DDR4: по 12 на процессор. Доступность слотов зависит от установленной конфигурации, поэтому название модели само по себе не определяет ресурсы конкретного сервера.
Варианты HPE ProLiant DL380 Gen10 для такого проекта можно посмотреть у компании Сервер Молл: https://servermall.ru/sets/server-hpe-proliant-dl380-gen10/. При подборе стоит запросить точный состав оборудования: модели процессоров, объём и схему установки памяти, дисковый контроллер, накопители и сетевые адаптеры. Именно эта спецификация позволяет проверить, подходит ли предложение под расчёт стенда.
Практический пример: три среды на одном сервере
Рассмотрим условную компанию с учётной системой, в которой приложение и база данных работают на разных виртуальных машинах. Для проверки обновлений создадим три независимые среды. В каждой будет сервер приложения с 4 виртуальными процессорами (vCPU) и 8 ГБ оперативной памяти, а также сервер базы данных с 4 vCPU и 16 ГБ памяти. Всего получится шесть виртуальных машин.
- Контрольная среда. Сохраняет текущую версию программы. На ней получают исходные результаты: время формирования отчётов, итоги расчётов и результаты обработки документов.
- Обновлённая среда. Содержит такую же исходную копию данных, но с новой версией программы. Здесь повторяют контрольные операции и выявляют различия.
- Среда восстановления. Используется для восстановления резервной копии и проверки возврата к прежнему состоянию. Её задача — подтвердить, что инструкция по откату действительно работает.
Это пример проектирования, а не универсальная конфигурация для любой организации. Шесть машин получают 72 ГБ памяти. Выделим ещё 8 ГБ гипервизору — системе управления виртуальными машинами: итого 80 ГБ. С запасом 25% получается 100 ГБ; конфигурация со 128 ГБ покрывает этот расчёт. Реальную потребность уточняют измерениями: крупная база и тяжёлые отчёты могут потребовать больше памяти.
Сумма 24 vCPU — число виртуальных процессоров, а не требование ровно к 24 физическим ядрам. Пока часть машин простаивает, ресурсы используются совместно. При одновременном нагрузочном тесте потребность возрастает. Процессоры выбирают по измеренной загрузке и времени выполнения операций.
Как посчитать дисковое пространство
Предположим, одна копия данных занимает 400 ГБ. Для трёх независимых сред потребуется 1,2 ТБ. Добавим 300 ГБ на операционные системы и журналы, а также 500 ГБ на временные файлы и изменения после создания снимков. Получим 2 ТБ планируемого занятого пространства. Чтобы оставить 20% ёмкости свободными, нужен объём не менее 2 / 0,8 = 2,5 ТБ. Здесь используются десятичные единицы: 1 ТБ = 1000 ГБ.
Например, четыре совместимых SSD по 1,92 ТБ в RAID 10 дают 3,84 ТБ номинальной полезной ёмкости до форматирования и служебных расходов. Половина суммарного объёма уходит на зеркалирование. Такой массив покрывает расчётную потребность, но не заменяет проверку скорости работы базы. В предложении поставщика необходимо отдельно проверить совместимость накопителей, корзины и контроллера, а также ресурс записи SSD.
Снимки виртуальных машин сохраняют изменения, поэтому во время теста занятое место растёт. Свободное пространство контролируют, а ненужные снимки удаляют штатными средствами гипервизора. Резервные копии хранят отдельно от этого массива.
Почему копию нельзя просто включить в рабочую сеть
Копия программы может сохранить параметры обмена с банком, ключи интеграций и задания по расписанию. Без подготовки она способна отправить настоящее письмо клиенту или повторный заказ. Изоляцию настраивают до первого запуска приложения.
- Создать отдельную виртуальную сеть и запретить из неё доступ к рабочим базам и внешним сервисам, кроме явно разрешённых направлений.
- Отключить автоматические обмены, рассылки и фоновые задания; затем включать только те, которые нужны для конкретного теста.
- Заменить рабочие пароли и ключи интеграций тестовыми. Для почты использовать приёмник, который сохраняет письма, но не отправляет их получателям.
- Проверить имена машин, адреса и параметры подключения, чтобы копия не обращалась к рабочему серверу вместо тестового.
- Обезличить клиентские данные и ограничить доступ сотрудников к копиям баз.
Отдельная VLAN не гарантирует изоляцию, если между сетями разрешена маршрутизация. Проверяют фактические правила доступа: администратору нужен вход на стенд, приложению — только доступ к согласованным тестовым сервисам.
Что проверять после обновления
Фраза «программа запускается» слишком мало говорит о готовности к работе. До обновления следует составить набор операций, которые сотрудники выполняют каждый день. Для торговой компании это создание заказа, резервирование товара, отгрузка, возврат, печать документов, импорт заказов и формирование отчёта по остаткам. Контрольную и обновлённую среды проверяют на одинаковом наборе исходных данных.
Например, в тестовый файл включают 100 заказов с известной общей суммой. После импорта сверяют число документов, сумму, отсутствие дублей и остатки. Для печати берут обычную продажу, частичную отгрузку и возврат. Ожидаемые результаты фиксируют заранее, чтобы не оценивать их «на глаз».
Для скорости задают критерий: например, отчёт после обновления не должен выполняться более чем на 10% дольше. При исходном времени 40 секунд граница составит 44 секунды. Это внутреннее правило приёмки, а не отраслевой норматив. Измерения повторяют при сопоставимых условиях, отдельно отмечая первый запуск и последующие.
Если программой одновременно пользуются 20 сотрудников, одиночная проверка не воспроизводит нагрузку: нужен сопоставимый сценарий параллельных действий. На стенде слабее рабочего сервера можно искать функциональные ошибки, но нельзя напрямую прогнозировать скорость рабочей системы.
Как проверить возможность отката
Снимок удобен для возврата после эксперимента, но не заменяет резервную копию. Microsoft отмечает это ограничение стандартных контрольных точек Hyper-V в документации Using checkpoints. При потере исходного диска и связанных файлов снимок на том же хранилище не обеспечит независимого восстановления.
Перед внедрением нужно восстановить резервную копию в третьей среде, запустить приложение и проверить согласованность данных. Время отсчитывают от начала восстановления до момента, когда контрольная операция успешно завершена. Если компания допускает остановку на 60 минут, а репетиция занимает 95, план ещё не готов: нужно менять процедуру, ресурсы или согласованное окно обслуживания.
Возврата старой версии приложения может быть недостаточно, если обновление изменило структуру базы. В инструкции указывают, какие компоненты восстанавливаются вместе и что происходит с документами, созданными после обновления. Нужна проверенная последовательность действий, а не обещание «вернуть всё назад».
Что согласовать до покупки и внедрения
До покупки проверяют совместимость версии гипервизора с контроллером и сетевыми адаптерами, наличие креплений, требования к питанию и охлаждению. Стоечный DL380 Gen10 не стоит размещать рядом с рабочими столами без оценки шума и отвода тепла. Условия лицензирования тоже уточняют: тестовая копия приложения не означает автоматически бесплатную лицензию.
Начать можно с трёх документов: спецификации стенда, списка тестов и инструкции восстановления. В протоколе обновления фиксируют версии компонентов, дату копии базы, результаты, время восстановления и ошибки. Тогда решение о внедрении опирается на измерения: компания заранее знает, какие операции проверены и сколько времени потребуется для возврата к прежней версии.
|