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