что такое продуктивный сервер

Да мой старый laptop в несколько раз мощнее, чем ваш production server

Именно такие претензии я услышал от наших девелоперов. Самое интересное, что это оказалось правдой, дав начало длительному расследованию. Речь пойдет про SQL servers, которые крутятся у нас на VMware.

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Собственно, добиться того, чтобы production server безнадежно отстал от лаптопа легко. Выполните (не на tempdb и не на базе с включенной Delayed Durability) код:

На моем десктопе он выполняется 5 секунд, а на production server — 28 секунд. Потому что SQL должен ожидать физического окончания записи в transaction log, а мы тут делаем очень короткие транзакции. Грубо говоря, мы загнали большой мощный грузовик в городской траффик, и наблюдаем, как его лихо обгоняют доставщики пиццы на скутерах — тут не важен throughput, важна лишь latency. А ни один network storage, сколько бы нулей ни было в его цене, не сможет выиграть по latency у локального SSD.

(в комментах выяснилось что я соврал — у меня в обоих местах затесался delayed durability. Без delayed durability получается:
Desktop — 39 секунд, 15K tr/sec, 0.065ms /io roundtrip
PROD — 360 секунд, 1600 tr/sec, 0.6ms
Я должен был обратить внимание, что уж слишком быстро)

Однако в данном случае мы имеем дело с тривиальными нулями зэта функции Римана с тривиальным примером. В том примере, который мне принесли девелоперы, было другое. Я убедился, что они правы, и стал вычищать из примера всю их специфику, связанную с бизнес логикой. В какой-то момент я понял, что могу полностью выбросить их код, и написать свой — который демонстрирует ту же проблему — на production он выполняется в 3-4 раза медленнее:

Если у вас все хорошо, то проверка простоты числа будет выполняться 6-7-8 секунд. Так и было на ряде серверов. Но вот на некоторых проверка занимала 25-40 секунд. Что интересно, не было серверов, где выполнение занимало бы, скажем, 14 секунд — код работал либо очень быстро, либо совсем медленно, то есть проблема была, скажем так, черно белой.

Что я сделал? Полез в метрики VMware. Там было все хорошо — реcурсов было в избытке, Ready time = 0, всего хватает, во время теста и на быстрых, и на медленных серверах CPU=100 на одном vCPU. Я взял тест по расчету числа Pi — тест показывал одинаковые результаты на любых серверах. Все сильнее пахло черной магией.

Выбравшись на DEV ферму, я стал играться серверами. Выяснилось, что vMotion с хоста на хост может «вылечить» сервер, но может и наоборот, «быстрый» сервер превратить в «медленный». Кажется вот оно — какие то хосты имеют проблему… но… нет. Какая-то виртуалка тормозила на хосте, допустим, A но работала быстро на хосте B. А другая виртуалка наоборот, работала быстро на A и тормозила на B! На хосте часто крутились и «быстрые» и «медленные» машинки!

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

От отчаяния я запустил Process Explorer от Sysinternals и посмотрел стек SQL. На медленных машинках мне сразу бросилась в глаза строка:

Источник

Компьютерные термины простым языком

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

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

Начнем с менстрима:

Биток, крипта, майнинг – это всё новомодные слова, связанные с криптовалютами, что это такое лучше почитать в моей отдельной статье – «Криптовалюты, майнинг и биткоин для не айтишников».

Базовые понятия проще описывать сразу в контексте предложений или пачками:

Выражение, которое говорят, когда программа ведёт себя не так, как предполагалось, но нестандартное поведение дает не ошибку, а новую интересную функцию. Часто применяется просто как прикол в отношении любых багов, которые не приводят к полному крушению. Почему ошибки называют багами, есть целая статья на «википедии». Если кратко, то раньше, когда мы были маленькими, а компьютеры большими, часто случалось так, что всякие жуки (bugs) залетали внутрь компьютера и устраивали замыкание. Ну а фича – это от feature – особенность.

Задеплоить релиз на прод.

Чтобы разобраться в этом предложении переведем отдельные слова на английский и обратно на русский. Deploy – многозначащий термин, который в контексте программ лучше перевести как установка (развертывание). Release – версия программы. ПРОД – это сокращение от Production – в данном контексте имеется в виду сервер или компьютер, на котором программа работает для нужд пользователей или предприятия, т.е. это не тестовый сервер, а «боевой», «продуктивный». Поэтому данную фразу можно перевести как «Установить версию программы на продуктивный сервер».

Пинговать кого-то или что-то.

В компьютере есть такая команда “ping”, с помощью которой можно удаленно проверить доступность другого компьютера или сайта, передав в неё адрес. Эта команда сообщает, доступен ли адрес или нет, больше ничего не делает. Поэтому пинговать кого-то означает проверить доступность или напомнить о себе или какой-то задаче.

Апка, ПО, Софт, приложение, утилита

Так называют компьютерные программы. В современном сленге апка чаще всего значит программу для смартфона. Апка – от Application – приложение, программа. ПО – программное обеспечение. Приложение – долго и не интересно объяснять, просто запомните. Утилита – от Utility– полезность, Софт – от Software – программное обеспечение.

На английском cookie в буквальном переводе печенье. Вы, наверное, не раз замечали на некоторых сайтах предупреждение – «Для пользования сайтом вы должны дать согласие на использование или передачу ваших cookie». А вы когда-нибудь задумывались, зачем кому-то в интернете ваше печенье, и как он его получит? В действительности куки – это небольшой фрагмент данных, который сервер(сайт) отправляет на временное хранение на ваш компьютер и затем может запрашивать их каждый раз при подключении. Это могут быть логин и пароль, состояние сеанса, разные настройки или вирусы, поэтому не стоит соглашаться отдавать свое печенье всяким неизвестным сайтам.

На английском frontend и backend. Это две условные части, на которые разбивают web-приложения (например, веб-сайты). Когда вы заходите в программу или на веб-сайт, вы видите текст, картинки, кнопочки, вы можете проматывать страницы, давить на кнопки, делать ещё что-то. Всё, что вы при этом видите и то, как меняется интерфейс – это frontend– т.е. то, что впереди и то, что видно. Но есть ещё много всего, что вы не видите, например, вы заходите в Google и пишите что-то в поисковой строке. После этого ваш запрос на поиск отправляется на сервер, а там происходит магия, Google ищет нужные сайты, а потом отправляет результат вам в компьютер, и вы его можете видеть. Вот эта магия, которая происходит где-то на сервере и есть backend – то, что вы не видите и то, что где-то там скрыто в неведомых далях Китая или Калифорнии.

Питон, Жаба, Скуль, Си

Это такие языка программирования. Python, Java, SQL, C, C++. Рассказывать про них долго и скорее всего скучно.Разве что есть такая бородатая шутка, что Борщ – это Щи++.

Альфа, Бета и релиз

Речь идет о трех этапах в разработке и выпуске программы. Там ещё есть всякие пре-альфа и релиз кандидат, но они нам не особо интересны. Альфа — это первая буква греческого алфавита. Так называют версию программы, которая только-только написана и ещё ни разу не обкатывалась на реальных пользователях. На этом этапе как правило тестируется функциональность приложения, т.е. проверяется всё ли, что заявлено программа умеет делать. Бета – это версия программы, которая уже точно умеет делать всё, что требуется, но содержит ошибки, и чтобы выявить эти ошибки, программу отдают на тестирование большому числу юзеров. Когда практически все ошибки исправлены, выпускается релиз, т.е. окончательная стабильная версия программы.

Сидюк, Аська, ЖЖ, Блин, Варез, Ирка, Кулхацкер, Ламер, Ослик

Безнадежно устаревшие слова, ни в коем случае не произносите их в присутствии Айтишников если не хотите прослыть бесконечно дремучим австралопитеком.

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

Если вам понравилось, ставьте лайки, подписывайтесь.

Переходите по ссылке ниже, там ещё больше статей

Не пропускай самые интересные публикации для личностного роста. Подписывайся на нас в той социальной сети, которую любишь больше всего: Instagram, Facebook, Telegram.

Источник

Стенд для нагрузочного тестирования: от DEV до PROD

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Содержание

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Меня зовут Василий Кудрявцев, и вот уже 10 лет я занимаюсь нагрузочным тестированием, а из них последние 1,5 года – в компании РТЛабс.

И сегодня мы поговорим не об инструментах или общих подходах (для этого есть курсы – один из крупных веду я, а еще у многих есть коллеги-эксперты и тот самый чатик в телеге на 3400+ участников), а об области, которую обычно обходят стороной или собирают на коленке — тестовые стенды для нагрузочного тестирования.

Здесь, на Госуслугах, мы пока только конструируем мечту каждого нагрузочника — свой отдельный, выделенный, рабочий (!) тестовый стенд. Особенно это мечта актуальна для небольших продуктовых команд.

Тем не менее, за последний год мы увеличили количество проводимых тестов почти в 10 раз и команду раза в два. Где же мы проводим более 1000 нагрузочных тестов в год без отдельного стенда, спросите вы? Ответ: мы использовали все стенды по максимуму, под шум (крики) продуктовых команд! 🙂

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

Договоримся о терминологии

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

Максимальная производительность — уровень пропускной способности системы, после которого система перестаёт удовлетворять предъявленным к ней требованиям — по времени отклика, доступности, утилизации ресурсов.

Тест определения максимальной производительности — ступенчатое повышение нагрузки на систему до достижения этого самого уровня.

Как у нас организована нагрузка

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Инструменты:

Протоколы – наиболее часто это REST-ы и web по http, бывают и скрипты нагрузки на БД / очереди

Запуск тестов в Jenkins

Мониторинг в Grafana + Clickhouse

Для мониторинга генераторов нагрузки — Prometheus

Redis и Postgres для хранения тестовых данных, FTP для больших файлов

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

3+ регулярно нагружаемые крупные системы:

Единый портал государственных услуг (ЕПГУ)

Единая система идентификации и аутентификации (ЕСИА)

Система межведомственного электронного взаимодействия (СМЭВ, шина данных)

…и еще с десяток периодически нагружаемых прикладных систем и сервисов

Основные типы тестов:

Проверка стабильной нагрузки — короткий тест с заданным tps

Стресс-тесты — проверка работы под большой нагрузкой в течение короткого времени

Классическая максимальная производительность

Команда инженеров:

1 лид и 4 нагрузочника разного опыта и происхождения, со средним опытом в НТ =

Вернемся к нагрузочным стендам

Разделим типы стендов на несколько категорий и поймём, что же можно на них тестировать и какие риски / ограничения нужно держать в уме:

DEV — стенд разработки

UAT — стенд регрессионного функционального тестирования

LT — отдельный стенд нагрузочного тестирования

PROD — стенд на базе инфраструктуры Продуктивного контура

Каждый опишем с нескольких сторон по такой схеме:

Summary — короткое резюме от меня

Жиза — как мы используем этот стенд

Что можно — какие тесты можно проводить

Команда — кто здесь понадобится нагрузочнику, насколько самостоятельно выполнение тестов

Advice — совет напоследок обзора стенда

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Summary: Отличное место для нагрузки пилотных решений или новых микросервисов, но задержаться на нём для исследований бывает сложно. Особенно, если архитектура монолитная.

Жиза: Не самый активный стенд именно для нагрузки, но супер-массовые новые сервисы сначала тестим здесь — социальные выплаты, сервисы для выборов, онлайн-запись в школы. Конечно же, в микросервисах, особенно часто в кубере. Здесь не проверить какой-нибудь scaling, но 50-70% проблем на данном стенде мы закрывали, хоть пользовались им не так часто, как стоило бы.

Отступление в рамках темы

Отдельного внимания здесь в описании DEV заслуживает наше детище для Системы межведомственного электронного взаимодействия (СМЭВ). Изначально мы планировали собрать стенд LT, но заказчики-разработчики пожелали проверять новые решения и тюнинг/рефакторинг старых здесь и сейчас. У нас вышел эдакий Монстр, которого мы прозвали DEV-LT! По необходимости могли и мощностей накинуть для достижения нужных цифр, но и не ждали отлаженных новых релизов и прочих pipeline-ов для проверки разных гипотез.

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

Что можно: стресс-тесты и общая максимальная производительность всего комплекса здесь бессмысленны. Только точечный тюнинг и проверка отдельных компонентов тестами со стабильными потоками (количество открытых соединений / thread-ов) или подачей стабильной нагрузки.

Команда: Если времени мало, то практически в онлайне с разработчиком. Если побольше — в режиме чатика. Очень удобно поработать devops-ом: сделать «кнопку» для разработчика и дать ему «пофрустрировать» самому до желаемого результата. Не забудьте про мониторинг, чтобы он получал удовольствие! Главное вовремя остановить, не доводить до уровня «хочу 100к tps выжать, 12 ночи всего, запускаю ещё тест!»

Pros and cons:

+ экономит время тюнинга на поздних этапах, что особенно актуально для багов по производительности (все мы знаем, они бывают ОЧЕНЬ дорогими)

+ можно запускать «на коленке» и получать реальный value

– не подходит для основательных выводов по максималке / не применить к PROD — нужны дополнительные тесты на других контурах

– стенд обычно шаток и разработчики любят его ломать, а иногда его потом сложно восстановить

– сложно с тестированием интеграций, DEV, как правило, изолирован

Advice: Совет подойдёт и для других стендов — «одно изменение за раз!». Разработчики любят побежать азартно вперёд, и применить много «оптимизаций» между тестами за один раз. Потом приходится часто искать, что именно улучшило или ухудшило производительность. Поэтому лучше стараться делать одно улучшение/изменение за раз и оценивать тестом, хотя бы коротким.

UAT (стенд регрессионного функционального тестирования) — относительно стабильный контур по сборкам, но слабый по железу

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Жиза: С этого стенда мы начинали в РТЛабс проводить регулярное НТ — в данном случае проверка релизов на не-ухудшение производительности. В частности, на небольшом железе мы сравниваем «выдерживание» ступени стабильной нагрузки по основным показателям производительности. Дефектов обычно находится не так много, как хотелось бы, потому что у этого стенда всегда много «но» по сравнению с PROD. И это несмотря на то, что по конфигурации компонентов он к нему ближе, чем любой другой.

Что можно: Лучше проводить тесты стабильной нагрузки 10-60 минут. Длительность зависит от вашей ступени стабильной нагрузки, за которую вы сможете адекватно оценить показатели производительности. Если у вас быстрая система с 100-500+ tps и временем отклика в пределах секунды (шина данных, например), то хватит и коротких тестов. Если что-то пользовательское с множеством сценариев — лучше погонять подольше и заодно оценить надежность.

Команда: Как правило, лучший друг нагрузочника — это функциональщик. В данном случае вдвойне, так как это его стенд! Он подскажет, когда и сборка более-менее стабильна и когда можно поломать стенд тестами. С дефектами тут сложнее, чем на DEV — у нас по крайней мере были наводки и на инфраструктурные сбои, а разбор может быть не таким быстрым, как хотелось бы.

Pros and cons:

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

+ обычно неплохая поддержка со стороны ФТ и сопровождения, так как релизы должны ехать в PROD без простоев. А вы, в том числе, занимаете время подготовки релиза 🙂

– придётся выбирать время для тестов, чтобы не мешать ФТ

– сильную нагрузку целиком на систему не подать ввиду слабости стенда по железу, то есть сложно оценить максимальную производительность в целом

Advice: Не убивайте стенд, пожалейте функциональщиков! Не только проведением нагрузки днём, но и забиванием БД тестовыми или созданными в тестах данными. Проработайте процедуры очистки.

LT (отдельный стенд нагрузочного тестирования)

На какой хватит средств какой построите, такой и будет! Но в любом случае он лучше остальных стендов, потому что СВОЙ.

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Summary: Здесь всё понятно — идеальный стенд практически для любых целей НТ. Не надо сидеть по ночам / ждать пока он освободится (в пределах одной тестируемой системы, конечно). В некоторых банках даже построили интеграционные стенды НТ. Правда пока я не видел стенд, выдерживающий 100% нагрузку по профилю с Прода, со всех каналов-систем.

Жиза: Выше я рассказывал о том, как мы применяем стенд DEV-LT. Пока мы видим неплохую пользу в совмещении целей для этого контура с учетом имеющейся инфраструктуры PROD для больших тестов (об этом ниже).

Из опыта других компаний могу сказать, что отдельный контур это действительно долго, дорого и замечательно. Причём для стабильного стенда крупной системы «долго» — это скорее всего минимум год, а «дорого» — не только закупка оборудования, но ещё и отдельная команда админов разного профиля. Ведь у вас небольшой PROD, а значит нужны инженеры СПО, ППО, DBA и т.д.

При этом на других стендах можно и нужно ловить 80-90% проблем. Это значит, что в микросервисной архитектуре огромные стенды становятся всё менее полезными.

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

Команда: Если хотите работать эффективно, а не чинить стенд неделями, когда ребята с PROD / тестовых контуров смогут уделить вам время, то только отдельная команда. Если стенд небольшой, можно не выделять отдельно системных администраторов / DBA на задачи одного этого стенда. Но инженеры ППО точно нужны — системы нужно и поднимать с нуля и поддерживать (поднимать) после регулярных тестов и релизов, которые будут их ломать.

Pros and cons:

+ подходит для всех нужных нагрузочных тестов (с интеграционным НТ может быть сложно, но возможно!)

+ не нужно ждать очередь на стенд, есть время для улучшений / экспериментов

+ можно готовить нужные наборы тестовых данных, тестировать объемы

– дорого и долго — и по подготовке железа, и в поддержке

– команде сопровождения нужно долго набираться опыта

– бывает сложно отслеживать все изменения на PROD / тестовых контурах, чтобы тестовый стенд НТ был актуален

Advice: Не надейтесь, что стенд НТ взлетит быстро, особенно если команда собирается с нуля. Исключения — небольшие и простые системы, по ним и PROD просто и быстро собрать.

И раз уж у вас отдельный стенд — пробивайте получение копии БД с PROD (урезанной, обезличенной), это повысит качество тестирования.

Ещё совет— не делайте прогнозирование / домножение результатов, полученных на стенде НТ, для PROD, если у вас LT сильно меньше по ресурсам. Горизонтальное масштабирование — непростая штука. Да простят меня мастера-архитекторы – иногда позволяю себе «умножить на 2» производительность, полученную на стенде НТ, который в 2 раза слабее Прода по ресурсам, при микросервисной архитектуре и не загруженности всех узлов по метрикам серверов. Можно предположить, что на Прод будет не хуже.

Сравнение производительности простой web-ки на node.js при увеличении ресурсов машины в 2 раза.

Как-то студенты курса по НТ проводили простой эксперимент по оценке влияния повышения ресурсов сервера, на котором крутилась простая веб-страничка c node.js под капотом, практически ничего не делающая. Результат налицо. Теперь храню эту картинку и показываю всем, кто любит «умножать на 10».

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

PROD (стенд на базе инфраструктуры Продуктивного контура) – опасно, но крайне эффективно

что такое продуктивный сервер. Смотреть фото что такое продуктивный сервер. Смотреть картинку что такое продуктивный сервер. Картинка про что такое продуктивный сервер. Фото что такое продуктивный сервер

Жиза: Чтобы быть уверенными в высокой доступности новых, серьёзных по нагрузке сервисов, финальные тесты мы проводим здесь. Особенно это актуально, когда у нас мало времени, например, при запуске срочных выплат населению страны последних пары лет.

Пользователи Госуслуг засыпают, а мы собираемся на ночной zoom и аккуратно тестируем на PROD-инфраструктуре. Тюним на месте, записываем изменения конфигов «на лету» себе в тикеты «на утро». Отдельно заказываем новые VM туда, где понимаем, что не успеем дотюниться до запуска сервиса.

Конечно, для этого нужна аккуратная и дотошная подготовка скриптов для очистки мусора после тестов и выверенный чёткий план тестирования с автоматизацией запуска тестов.

Что можно: Конечно, не всё. В первую очередь это стресс-тесты — короткие, точные, до первых узких мест, чтобы затем произвести тюнинг. Можно сразу в онлайне, чтобы не уходить потом на ещё одни работы. Не получится использовать инфраструктуру PROD, если у вас интенсивная пользовательская нагрузка 24/7 и нет микросервисов, которые вы можете изолировать от влияния на пользователей на 99%+.

Для тех, кто по каким-то причинам не хочет в этом участвовать, есть отличный аргумент — или мы сейчас проконтролируем что будет, или будем смотреть на это в онлайне, на живых пользователях и чинить, теряя SLA.

Pros and cons:

+ не только НТ, но и тренировка для команды

+ в нехватке времени можно тюнить на лету (конечно, сохраняя улучшения в репозиториях)

– требуется хорошая подготовка плана и скриптов очистки

– не для каждого сервиса возможно НТ на инфраструктуре PROD

Advice: Все же помнят хорошую практику: всё что выкатывается на PROD должно тестироваться? Это же касается и ваших скриптов НТ, тестовых данных, скриптов очистки от мусора после НТ. Всё должно быть протестировано на младших контурах, считайте, что это такой же релиз.

Ну и конечно, так как НТ на PROD — это часто ночные работы, не замучайте команду в ночь перед запуском важных сервисов. Если не успеваете, лучше ребятам поспать ночь и с утра уже готовиться к проблемам на PROD, быстрее будут реагировать.

Во всём нужна мера, потому что, как говорил один мой знакомый менеджер: «Работа отнимает всё отведенное на неё время».

Вместо заключения

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

Я бы описал рекомендованный путь становления процессов НТ в компании по части стендов так:

UAT – отсюда можно стартовать регрессионное НТ

DEV – для новых сервисов, которые будут нагружены

PROD – когда отдельного стенда НТ нет, а ожидается новая большая нагрузка

LT – когда уже научитесь тестировать, поймете систему и действительно сможете использовать дорогое удовольствие с пользой

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *