Эфемерные среды – это растущая тенденция, потому что они могут заменить или сократить время, затрачиваемое на промежуточные среды, тем самым значительно сокращая затраты на разработку.
В этой статье мы расскажем, что такое эфемерные среды, их преимущества в цикле разработки.
Что такое эфемерные среды?
Как следует из названия, эфемерные среды – это среды, рассчитанные на короткое время . Например, они могут быть такими же короткими, как жизненный цикл конвейера CI/CD, или они могут длиться несколько недель (продолжительность спринта).
Однако, независимо от их ожидаемого срока службы, идея остается той же: предполагается, что эфемерные среды создаются, используются в течение ограниченного периода времени, а затем отбрасываются. Из-за этого они также известны как «среды по запросу», «динамические среды», «временные среды», «среды песочницы» или «краткосрочные среды».
Характеристики эфемерных сред
1. Эфемерные среды должны быть копией вашей производственной среды. Поскольку эфемерные среды в основном используются в целях тестирования, они должны быть максимально приближены к вашей производственной среде. В противном случае, если тест завершится неудачно, будет почти невозможно определить, будет ли он терпеть неудачу и в производственной среде, так как условия различаются (и такого рода ошибки противоречат цели тестирования).
2. Следует автоматизировать создание эфемерных сред. Поскольку вы уже знаете, как они должны выглядеть (копия вашей производственной среды), вы можете автоматизировать их создание с помощью шаблонов (и здесь может помочь решение «Среда как услуга»). С помощью шаблонов вы можете автоматизировать создание эфемерной среды при определенных событиях, таких как запросы на вытягивание.
3. Эфемерные среды должны использовать реплицированные данные. Это возвращается к тому, что эфемерные среды являются репликой вашей производственной среды – для этого они должны использовать одну и ту же версию базы данных и иметь одинаковые наборы данных, доступные им. Это означает, что база данных, подключенная к эфемерной среде, не должна использоваться совместно с какой-либо другой средой, поскольку она также будет удалена в процессе очистки.
4. Эфемерное окружение должно быть общедоступным. Если их основная цель – тестирование, то они лучше всего справляются со своей задачей, когда вы можете собирать отзывы из множества источников и заинтересованных сторон, таких как разработчики, QA, менеджеры по продукту и даже клиенты.
Преимущества эфемерных сред в цикле разработки
Основная причина, по которой организации применяют эфемерные среды, заключается в том, что они ускоряют цикл разработки программного обеспечения ; разработчики могут просматривать изменения визуально, а также делиться своей работой с нетехническими членами команды (например, дизайнерами), используя ссылку на предлагаемую версию.
Другие преимущества эфемерных сред включают:
- устранение узких мест в промежуточной/QA-среде: традиционно организации используют промежуточную среду или среду QA для слияния и тестирования всего кода перед его запуском в производственную среду. Проблема в том, что у них есть только одна или очень мало этих сред, поэтому по мере роста организации это становится узким местом, замедляющим цикл разработки. Войдите в эфемерные среды – теперь у вас есть безграничный набор сред, которые вы можете использовать для тестирования. Поскольку каждая ветвь кода содержится в собственной изолированной среде, она становится собственной средой интеграции, поэтому вам больше не нужна единая среда тестирования и интеграции для объединения всего кода перед его запуском в производство.
- обеспечение ранней и частой обратной связи: чем раньше в цикле разработки вы обнаружите проблемы с качеством, тем больше вы сможете уменьшить количество доработок и повысить скорость разработки. Эфемерные среды помогают свести к минимуму переделки, позволяя всем заинтересованным сторонам участвовать в процессе разработки. Например, QA, дизайнеры, менеджеры по продуктам или даже клиенты больше не должны ждать, пока разработчик закончит кодирование, чтобы увидеть изменения, они могут предложить обратную связь по мере создания функции.
- ограничение доработки, тем самым увеличивая скорость разработки: непрерывная интеграция (CI) фокусируется на идее, что вы должны постоянно тестировать свой код по мере его продвижения. Проблема в том, что большинство систем CI выполняют только модульные тесты (они тестируют небольшие блоки кода, а не всю систему), в то время как интеграционные и дымовые тесты (которые тестируют систему в целом) остаются до тех пор, пока код не будет объединен с основной веткой. в постановочной среде. Если на этом этапе будут обнаружены какие-либо проблемы, то уже слишком поздно; вам потребуется доработка, чтобы исправить их. Более того, если доступна только одна промежуточная среда, это создаст узкие места. Эфемерные среды позволяют запускать интеграционные и дымовые тесты сразу после создания среды, что гарантирует их выполнение так же часто, как и модульные тесты, и позволяет находить проблемы на ранних этапах процесса разработки.
- позволяя экспериментировать с инфраструктурой: изменения инфраструктуры дороги как с точки зрения денег, так и времени, и они могут снизить скорость работы вашей команды. Но в эфемерных средах тестирование новой инфраструктуры можно проводить изолированно, поэтому это не влияет на других разработчиков.
- они обеспечивают Agile/Scrum: сегодня многие организации следуют практикам Agile/Scrum, но их инфраструктура и технологии не всегда адаптированы для итеративной разработки программного обеспечения. Эти рабочие процессы ориентированы на раннюю и частую обратную связь, а эфемерные среды – идеальный инструмент для этого.
Как развернуть эфемерные среды
Мы настоятельно рекомендуем вам использовать инфраструктуру как (IaaS)? заказать которую можно по ссылке https://www.cantep.ru/iaas, виртуальные машины (ВМ) и/или контейнеры, поскольку они упрощают использование эфемерных сред. В качестве альтернативы существуют также платформы «Среда как услуга», которые могут автоматически создавать для вас новые тестовые среды по мере добавления кода. Сохраняя воспроизводимость вашей инфраструктуры как кода и ресурсов, вы можете многократно воссоздавать одни и те же среды и сохранять идентичную конфигурацию ваших сред.
Создание эфемерной среды
Обычно создание новой эфемерной среды запускается, когда разработчик помещает код в ветку и запускает модульные, интеграционные и/или функциональные тесты. Если код проходит все тесты, его можно объединить с основной веткой и развернуть в производственной среде. Наиболее распространенными типами развертывания являются сине-зеленые развертывания, темные запуски, канареечные запуски и флаги функций.
После слияния эфемерная (тестовая) среда больше не нужна и может быть отброшена вместе с использованными ресурсами.
Постоянно нужны новые эфемерные среды: как насчет EaaS?
Поскольку вам постоянно нужно тестировать новые функции и изменения кода, создание и удаление сред может занять много времени. Но с помощью решения EaaS вы можете повысить скорость создания и готовности новых сред, а также интегрировать функциональные ветви, снизить затраты и позволить вашим разработчикам сосредоточиться на коде, а не на среде.