Что такое хоп стенд

Домашнее пиво для начинающих

Делал так не раз.С Жатецким хмелем-самое оно. Evgeniys, 13 Июля 13, 13:21

заражения бояться не нужно?
Отец-героин, 28 Июля 13, 10:35

заражения бояться не нужно?
Отец-героин, 28 Июля 13, 10:35

заражения бояться не нужно?
Отец-героин, 28 Июля 13, 10:35

В номере BYO http://byo.com/component/k2/item/2808-hop-stands за март/апрель 2013 вышла интересная статья на обсуждаемую тему (выдержку после окончания кипячения автор называет hop stand).
Если кратко, то автор выделяет 3 диапазона температур для задачи хмеля после окончания кипячения (hop stand или вирпул, если есть последний):
1. Выдержка при 88-100°C позволит эфирным маслам с более высокой температурой кипения (например, кариофиллен кипит при 93°C) быстрее раствориться в сусле и способствует небольшой изомеризации горьких альфа-кислот (утилизация 5-15%).
2. Выдержка при 71-77°C снизит испарение аромамасел, но не не придаст горечи вследствие отсутствия изомеризации альфа-кислот.
3. Выдержка при 60-66°C снизит испарение аромамасел с низкой температурой кипения (мирцен, хумулен), и не придаст горечи, но может потребовать более продолжительного времени.

2. Выдержка при 71-77°C снизит испарение аромамасел, но не не придаст горечи вследствие отсутствия изомеризации альфа-кислот.

Посл. ред. 29 Июля 13, 08:51 от victorchik

В чём недостаток пития «созревшего»? Mitch, 29 Июля 13, 09:56

Посл. ред. 29 Июля 13, 11:11 от Mitch

Посл. ред. 31 Июля 13, 00:10 от Maistra

Источник

«Хмелевая пауза» в домашнем пивоварении

Автор блога Bear Flavoured поделился секретами пивоварения по технологии Hop stand в домашних условиях.

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

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

Как же получить такой результат?

Для этого необходимо зажечь огонь, в сусло всыпать хмель и оставить в таком виде на полчаса – час. Когда сусло достигнет 70-80°C по температуре, далее следует включить чиллер и действовать как обычно в пивоварении. На этом вся сложность и заканчивается!

Сразу возникают вопросы, – для каких целей эти хлопоты? и не возникнут ли проблемы у пивовара в процессе приготовления напитка? Правильное мышление даёт подсказки, что после варки необходимо постараться охладить сусло как можно скорее, чтобы риск заражения был минимален, уменьшить горячий поток воздуха, не появилось помутнения, и не образовался сернистый газ – диметилсульфид (ДМС).

Если же пиву дают отдохнуть после варки в течении 30-60 минут, то для какой надобности нужен противоточный или погружной чиллер? И разве не испортится хмель при добавлении его не в кипящую массу, которая обеспечивает необходимые изменения? Почему бы не дать хмелю просушить больше по времени?

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

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

Что касается диметилсульфида, от паузы охлаждения никогда не было замечено его образование. Если используется при варки светлый ячменный солод, то чтобы не беспокоится о возможном появлении ДМС, просто нужно немного увеличить процесс варки по времени, примерно минут на 30.

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

Хмелевая пауза – это продолжение сего действа, в горячем сусле происходит наоборот нечто магическое, позволяющее вытянуть как можно больше эфирных масел. Кипячением можно способствовать большему улетучиванию масел, даже при 5 минутах. В то время как выдерживание в горячем сусле позволит всё сохранить, или, по крайней мере, не потерять в таком количестве. Различные виды эфиров рассеиваются в воздуха при разных температурах, например:

Помимо этого, хмелевую паузу можно осуществлять при самых разных диапазонах температур, добавляя различные порции хмеля на этапах отличающиеся количеством тепла в сусле. Промышленные пивоварни, которые добавляют сразу весь хмель в вихревой чан, получают довольно горький продукт, это связано со структурными изменениями компонентов состава, и это происходит до тех пор пока не произойдёт снижение температуры, хотя бы до 80°C. Если хочется добиться определённых показателей IBU, может отличаться ингредиентный состав и соотношение в рецепте. Некоторые пивовары хмель добавляемый во время хмелевой паузы, рассматривается как добавленный за 10минут до окончания варки в Beer Smith. И далее корректируют свой рецепт по вкусу, не стараясь стремиться к показателю IBU.

Конечно же это имеет наибольший смысл в случае произведения вихревого охмеления сразу же после варки, пока сусло ещё горячее и позволит альфа-кислотам претерпеть некоторые изменения в их структурных формах. В целом некоторые поступают следующим образом: отключают подачу тепла, добавляют хмель, котёл накрывают крышкой и оставляют примерно на 30 минут сусло, периодически помешивая. Когда истекает время, и хмелевая пауза подходит к концу, производят охлаждение сусло до 82°C.После включают чиллер и охлаждают чиллер до температур позволяющих проявлять дрожжам свою ферментативную активность. Но если имеется желание придать напитку горький вкус, тогда такой способ несколько можно скорректировать, учитывая тот факт, что температуры ниже 80 градусов не будут способствовать изомеризации кислот. Например, можно на несколько минут включить чиллер пока температура не станет снижаться до 75°C. Температуры ниже, в свою очередь снизят количество испарившихся эфирных масел.

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

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

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

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

Источник

Преимущества «хмелевой паузы» в домашнем пивоварении

Автор блога Bear Flavoured рассказал о преимуществах использования в домашнем пивоварении технологии hop stand — паузы охмеления без кипячения, но при высокой температуре и без использования гидроциклона. Pivo.by публикует перевод материала.

Что такое хоп стенд. Смотреть фото Что такое хоп стенд. Смотреть картинку Что такое хоп стенд. Картинка про Что такое хоп стенд. Фото Что такое хоп стендФото: What’s Brewing in Charlottesville?

Я занимаюсь пивоварением в домашних условиях, и когда я впервые услышал о технологии под названием «вихревое охмеление» или «вирпул» (whirlpool hopping), у меня сразу же возник вопрос: «Как же мне сделать этот вихрь?» Как правило, в коммерческих пивоварнях после варки сусло перекачивается для охлаждения в специальный вихревой чан (whirlpool vessel) — гидроциклон. Но, как и большинство пивоваров-любителей, я использую простой медный погружной чиллер, и в моём варочном котле даже нет крана. Вряд ли у меня получится организовать что-то наподобие водоворота.

Поэтому мой первый совет тем, кто занимается пивоварением дома и только начал осваивать эту технологию: в отсутствие вихревого чана просто выдержать так называемую «хмелевую паузу». Можно аккуратно перемешивать сусло, используя специальную лопатку, продезинфицированную ложку или даже насос — вся суть этой технологии заключается не столько в движении сусла по кругу, сколько во времени. Вихревое охмеление (whirlpool hop) или хмелевая пауза (hop stand) следуют за варкой, и хмель контактирует с суслом при высокой температуре, но при отсутствии кипения. Это позволяет в полной мере использовать эфирные масла и придать напитку желаемый вкус и аромат.

Так что же нужно сделать? Выключить огонь, высыпать хмель в сусло и оставить на 30–60 минут. Когда температура сусла достигнет 70–80 °C, включить чиллер и следовать стандартной процедуре. Вот и всё! Довольно просто. Вы спросите, зачем нужны эти хлопоты? И не создаст ли это пивовару дополнительные проблемы?

Здравый смысл подсказывает, что после варки нужно постараться охладить сусло как можно быстрее, чтобы снизить риск заражения, горячей аэрации, холодного помутнения и образования ДМС. Если мы даём пиву постоять 30–60 минут после варки, то зачем вообще тогда нужен погружной или противоточный чиллер? И, более того, разве мы не испортим хмель, добавив его не при температуре кипения, которая обеспечивает изомеризацию? Почему бы просто не просушить хмель чуть больше?

Спасибо за столь уместные вопросы.

На самом деле риск заражения не наступает примерно до температуры 76 °C, возможно, даже ниже, поэтому несколько минут при такой температуре не нанесут особого вреда. На мой взгляд, чтобы получить горячую аэрацию, нужно очень сильно постараться. Это случается настолько редко, что некоторые даже считают её мифом. Даже при лёгком помешивании сусла, чтобы не давать хмелю оседать на дно, аэрация практически отсутствует; по крайней мере, её уровень будет не выше чем при обычном охлаждении. (Через несколько минут, когда сусло немного остынет, оно в любом случае подвергнется той ещё аэрации). Несомненно, для пива с ярко выраженным хмелевым вкусом помутнение является серьёзной проблемой, однако оно не произойдёт только потому, что вы выдержали хмелевую паузу. Все эти частички хмеля, плавающие в сусле после того, как вы всыпали в него невероятное количество этого ароматного растения, с намного большей вероятностью вызовут помутнение, чем несчастные 30 минут, на которые вы оставили их в сусле. И, наконец, что насчёт ДМС? Опираясь на собственный опыт, скажу, что никогда не видел, чтобы от паузы в охлаждении сусла происходило образование ДМС. И не припомню, чтобы где-нибудь видел рассказ другого пивовара-любителя об этом. Если вы используете светлый ячменный солод либо по какой-то причине особенно обеспокоены ДМС, увеличьте время варки на 30 минут.

Что такое хоп стенд. Смотреть фото Что такое хоп стенд. Смотреть картинку Что такое хоп стенд. Картинка про Что такое хоп стенд. Фото Что такое хоп стендФото: What’s Brewing in Charlottesville?

А сейчас о хорошем: хмелевая пауза нужна для того, чтобы усилить вкус и аромат напитка, которые улетучиваются при варке. При любой варке. Раньше многие понимали: чем позже добавить хмель при варке, тем больше вкуса он придаст по сравнению с горечью. Добавление хмеля за пяти минут даст больше хмелевого вкуса, чем добавление за 15 минут, в то время как добавление за 30 минут даст одну только горечь, не говоря уже о добавлении за 60 минут до окончания варки. Хмелевая пауза — это не что иное, как продолжение этой стратегии, так как в горячем сусле продолжается извлечение эфирных масел. Кипячение даже в течение пяти минут способно пагубно повлиять на эфирные масла, в то время как выдерживание в горячем сусле — нет. Или, по крайней мере, не в такой степени. Разные виды масел улетучиваются при разных температурах:

Мирцен — 167 °C
Гумулен — 99 °C
Кариофиллен — 29 °C
Фарнезен — 95–125 °C

* Существуют определённые споры и заблуждения по поводу температуры испарения мирцена. Он испаряется даже при комнатной температуре, однако более высокие температуры ускоряют этот процесс. Более подробную информацию можно найти на форуме HomeBrewTalk.

Кроме того, делать хмелевую паузу можно при различных диапазонах температур, либо добавить одну порцию хмеля сразу же после варки, а вторую порцию хмеля — как только сусло немного охладится. Коммерческие пивоварни, добавляющие весь хмель в вихревой чан, получают удивительно высокий уровень горечи, так как альфа-кислоты продолжают изомеризоваться до тех пор, пока температура не упадет примерно до 80 °C. Если вы хотите получить определённый показатель IBU, могут возникнуть некоторые вопросы с рецептурой (лично я к этому не стремлюсь, потому что считаю показатели IBU в целом бессмысленными). Автор статьи в журнале BYO предлагает определить 10%-ную величину использования альфа-кислот. Лично я хмель, добавляемый во время хмелевой паузы, учитываю в Beer Smith как добавление за 10 минут до окончания варки, и думаю, что это довольно близко. При этом я не ставлю перед собой цели достичь конкретного показателя IBU и корректирую рецепт по вкусу в следующий раз.

Конечно же, всё это имеет смысл только в том случае, если вихревое охмеление происходит сразу же после варки, пока сусло ещё достаточно горячее для изомеризации альфа-кислот. В целом я поступаю так: выключаю горелку, добавляю хмель, закрываю котёл крышкой и оставляю сусло примерно на 30 минут, помешивая время от времени. Когда 30-минутная хмелевая пауза подходит к концу, сусло, как правило, охлаждается до температуры около 82 °C. Тогда я включаю чиллер и охлаждаю сусло до температуры внесения дрожжей.

Однако если вы не хотите придать напитку горечь во время хмелевой паузы, этот метод можно скорректировать, учитывая, что при падении температуры ниже 80 °C изомеризация альфа-кислот происходить не будет. К примеру, можно включить чиллер на несколько минут, пока температура не снизится до 75–80 °C. Более низкая температура, в теории, должна снизить испарение эфирных масел. Само собой, меньшая температура (ниже 70 °C) ещё больше снижает ваши шансы на потерю чувствительных к нагреву масел, но лично я не уверен, что это действительно необходимо.

Конечно же, есть ещё вариант раздельного добавления, который я, по-видимому, буду использовать в будущем для сортов пива с наиболее насыщенным хмелевым вкусом. Добавьте часть хмеля сразу же после выключения огня, оставьте на 20–30 минут (или до тех пор, пока температура не опустится примерно до 80 °C), а затем добавьте остальной хмель, и оставьте ещё на 20–30 минут. Затем охладите до температуры внесения дрожжей. Так вы сможете взять лучшее от двух описанных методов.

Что такое хоп стенд. Смотреть фото Что такое хоп стенд. Смотреть картинку Что такое хоп стенд. Картинка про Что такое хоп стенд. Фото Что такое хоп стендФото: Bear Flavored

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

Когда я впервые прочёл об этом приёме, я отнёсся к нему скептически, предположив, что так поступают те, у кого достаточно хмеля для того, чтобы добавлять его при любом удобном случае (я сейчас говорю о тех, кто выбирает заторное охмеление). Однако чем более насыщенный хмелевой вкус я хотел получить, тем меньше хмеля я добавлял при варке. Чтобы получить ярко выраженный хмелевой вкус, я добавлял хмель в первое сусло, совсем немного за 60 минут до окончания варки, а затем при выключении огня и хмелевой паузе. Если ваша цель — извлечь как можно больше вкуса и аромата, стоит ли стремиться получить чуть более высокий IBU при добавлении за 15 или 10 минут до конца варки? Этого можно достичь, чуть увеличив количество хмеля, добавляемого за 60 минут до окончания варки либо добавляемого в первое сусло. От хмеля мне в первую очередь нужен вкус, а горечь отрегулировать просто. Я делаю то, что максимально приближает меня к натуральному вкусу хмеля.

Источник

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно

Сколько в вашем проекте тестовых стендов — 5, 10 или больше 10? Навскидку, нужны стенды для каждой команды разработки, стенды для QA под каждый проект, менеджерам проектов тоже нужны стенды, а еще CI — трудно это все точно разграничить и не вызвать конфликтные ситуации. Одним словом, почему бы нам не делать тестовый стенд ровно тогда, когда он нужен? Нужен сейчас тестовый стенд — мы его сделали, не нужен — мы его удалили.

Именно такой подход предложил Александр Дубровин (adbrvn) на Highload++ 2017 в своем докладе, расшифровку которого вы найдете под катом.

Что такое хоп стенд. Смотреть фото Что такое хоп стенд. Смотреть картинку Что такое хоп стенд. Картинка про Что такое хоп стенд. Фото Что такое хоп стенд

О спикере: Александр Дубровин работает в Superjob. Известно, что проекты этой компании высоконагруженные. Но сегодня мы не будем говорить о том, сколько пользователей посещают портал, и сколько данных хранится на серверах, а затронем другие показатели.

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

Немного истории

Что такое хоп стенд. Смотреть фото Что такое хоп стенд. Смотреть картинку Что такое хоп стенд. Картинка про Что такое хоп стенд. Фото Что такое хоп стенд

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

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

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

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

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

Что такое хоп стенд. Смотреть фото Что такое хоп стенд. Смотреть картинку Что такое хоп стенд. Картинка про Что такое хоп стенд. Фото Что такое хоп стенд

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

В JIRA начинают падать тикеты, возле Васи начинают собираться разработчики со словами: «Да как же так? Все же сделано!» и кто-то наконец спрашивает: «А у тебя какая ветка на тест раскатана?» Вася смотрит — не та. Ветка быстро исправляется, тикеты в JIRA закрываются, все хорошо. Вася продолжает тестировать, у него все работает.

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

За пару итераций они понимают, что они просто тестируют на одном тестовом стенде и мешают друг другу. В результате время потрачено впустую, Вася и Вова недовольны.

Другая история. Разработчик Коля знает про Васины проблемы, заранее приходит к нему и спрашивает, какой тестовый стенд сейчас свободен. Вася указывает свободный, и все хорошо. Через пару дней они встречаются снова, и Вася спрашивает у Коли: «Ты нам тестовый стенд вернешь? Ты его занимал на часок, а уже 2 дня прошло».

И снова проблема — либо разработчику искать другой стенд, либо все будут бодро ждать, пока он закончит тестирование.

На самом деле на схеме выше отображено не все. Здесь не хватает менеджеров. Иногда менеджеры хотят смотреть еще не протестированный сырой код. Подход стандартный — мы снова выделяем уголок тестового сервера и делаем еще тестовые стенды.

Плавно развивая такую схему, мы получаем бесконтрольное изменение тестовых стендов. Схема плоха тем, что мы действительно не контролируем такие стенды — мы не знаем:

В этот момент мы задумались — что же делать? Зачем нам столько тестовых стендов? Почему бы нам не делать тестовый стенд ровно тогда, когда он нужен? Нужен сейчас тестовый стенд — мы его сделали, не нужен — мы его удалили.

Следующий шаг в этой идее — делать тестовый стенд под каждую ветку кода.

Вроде идея хорошая, но есть технические нюансы. Нам нужны стенды:

Суровая реальность

Еще есть суровая реальность, в которой у нас:

Сказано — сделано!

Docker/docker-compose

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

Замечательно — мы будем использовать docker — это стильно, модно, молодежно.

Распиливаем монолит выделяем сервисы

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

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

В какой-то момент мы посмотрели на компонентную схему нашей системы и увидели, что здесь у нас есть load-balancing, здесь — приложение на php, здесь — node.js-приложение. Почему бы нам не запускать именно это, как сервис. Давайте найдем то, что мы можем запускать в docker-контейнерах.

Настраиваем сеть

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

В документации имеется целый огромный раздел про настройку сетей.

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

Таким образом мы можем запустить пачку контейнеров, дать фронт-контейнеру (балансеру) возможность получить внешний IP-адрес и открыть на нем 80-ый порт. Мы уже можем постучаться туда при помощи браузера.

Поднимаем DNS и API

Мы помним, что у нас есть доменные зоны и куча поддоменов. Таким образом, обратиться к тестовому стенду мы можем только по домену 2-го уровня. Здесь есть как колоссальный плюс, так и колоссальный минус:

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

В нашем случае мы выбрали префикс sj. Получается, нам приходится перекрывать домены только с префиксом sj — таких явно немного.

Еще одна часть DNS — это API. Как уже говорилось, необходимо поднимать тестовые стенды быстро. Поэтому нам нужен DNS-сервер, который позволяет быстро добавлять и быстро убирать запись по API в автоматическом режиме.

Решение — PowerDNS. Этот сервер позволяет достаточно быстро и просто прикрутить к нему API и при помощи скриптов добавлять и удалять тестовые стенды.

Замечательно! Мы подняли и настроили DNS, научили наши контейнеры в него прописывать свои IP, но чего-то не хватает.

Делаем SSL-CA

Мы живем в XXI веке. Очевидно, что весь интернет — SSL и тестовые стенды должны поддерживать SSL. Достаточно много багов специфичны для SSL, и mixed content — только вершина айсберга.

Итого, нам нужен способ быстро получить сертификат и быстро его применить на поднимающийся тестовый стенд. В нашей компании уже был центр сертификации, основанный на OpenSSL. Здесь мы пошли простым методом написания своего велосипеда.

Велосипед пишется за один день и позволяет при помощи GET-запросов получать сертификаты, сгенерированные уже на конкретное имя домена.

Осталось самое малое. Нужно это автоматизировать, потому что мы же хотим все это делать одной кнопкой.

Автоматизируем

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

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

Но на самом деле самый крутой шаг в этом плане — это добавить такую кнопку прямо в JIRA-тикет. Представьте, ваш тестировщик открывает JIRA-тикет, читает требование, нажимает кнопку и получает через пару минут тестовый стенд — здорово же?

Плюсы

Минусы

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

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

Тогда, мы перестали их создавать автоматически, а появилась кнопка в JIRA, CI научилась запускать и останавливать тестовые стенды, собирать с них логи.

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

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

Было: «Вася, а какой тестовый свободный — мне свою задачу раскатить потестировать».

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

Стало: «Жму кнопку и через полторы минуты получаю новый тестовый стенд под конкретную задачу».

Бонусом мы получили все тесты в один клик. Как я уже говорил, любые тесты на любой ветке прямо из CI выбираются одной кнопкой. Дальше машина все сделает сама: поднимет тестовый стенд, обстреляет его, соберет с него логи и удалит.

Возвращаясь к своему первому вопросу, сколько же тестовых стендов нам нужно? Я не знаю, сколько нам нужно тестовых стендов, потому что сегодня их нужно 20, завтра — 15, послезавтра 25.

Но я точно знаю, что у нас ровно столько тестовых стендов, сколько нужно здесь и сейчас.

Время летит незаметно, и до фестиваля конференций РИТ++ осталось совсем немного, напомним он пройдет 28 и 29 мая в Сколково. Пользуясь случаем, приводим небольшую подборку заявок RootConf для широкого круга слушателей:

Источник

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

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