Эфемерная среда — это среда, предназначенная для длительного времени, в течение которого Определение эфемерного это «длится очень короткое время» . Количество времени может быть таким же коротким, как жизненный цикл трубопровода CI/CD или до недели, но ключевым компонентом является то, что в конечном итоге окружающая среда исчезает. Некоторые другие имена для эфемерных среда могут быть «средами по требованию», «динамические среды» или «временные среды». Независимо от названия, вариант использования одинаково: среда создается, используется в течение короткого периода времени, а затем удаляется без последствий.
Теперь, когда у нас есть представление о том, что такое эфемерные среды, давайте рассмотрим некоторые из их характеристик.
Эфемерные среды должны выглядеть как производство
Одним из наиболее важных факторов для успешного рабочего процесса эфемерной среды является то, что среда выглядела как можно ближе к реплике производства. Для начала, если вы используете изображения Docker, то же изображение, которое вы развертываете в эфемерной среде, должны иметь право на развертывание на вашем производственном сервере. Размышляя о памяти в качестве одного примера, если производственный сервер выделяется 2 ГБ памяти, то эфемерная среда тоже должна быть. Если в эфемерной среде меньше памяти, скажем, только 1 ГБ, а интенсивная часть памяти не удается, теперь неясно, не будет ли эта часть приложения не удастся, если одно и то же изображение будет развернуто для производства.
В качестве еще одного немного другого примера, если в приложении используется база данных, производственная версия должна разговаривать с постоянной базой данных, например, RDS Amazon, в то время как эфемерная среда может разговаривать с контейнерной версией, но имея обе базы данных в одинаковой версии, обеспечивает обеспечение обеспечения оборудования. Новый код не случайно использует функцию базы данных, которая недоступна для производства.
Каждое приложение отличается, и мы не можем охватить каждую возможную функцию, которая должна выглядеть одинаково здесь, предпосылка остается такой же, что каждая эфемерная среда должна выглядеть как можно ближе к вашей производственной среде.
Эфемерные среды автоматизированы и по требованию
Теперь, когда мы знаем, что наши эфемерные среды должны выглядеть как наша производственная среда, следующим шагом является автоматизация их создания, чтобы соответствовать этим критериям. Такие продукты, как Terraform, AWS CloudFormation или Selepry Semplate приложения, являются тем, что мы называем «средами кода», чтобы гарантировать, что эфемерные среды создаются каждый раз.
После создания шаблона эфемерные среды должны быть настроены для автоматического создания на определенных событиях, например, когда открывается запрос на привлечение. Они также должны быть в состоянии создавать по требованию вручную (не через процесс, управляемый событием) в случае, если новая среда потребуется по любой причине.
Эфемерные среды реплицировали данные
Ранее мы упоминали, что использование той же версии базы данных было требованием, чтобы наши эфемерные среды выглядели как производство. Мало того, что они должны выглядеть так же, но у них должны быть очень похожие наборы данных, доступные для них изолированным образом. Это означает, что база данных, прикрепленная к эфемерной среде, не будет передана никакой другой среде. Поскольку база данных также будет удалена как часть процесса очистки окружающей среды, это делает идеальное место для проверки разрушительных действий, не беспокоясь о том, чтобы влиять на что -либо еще. Несколько способов достижения этой изолированной репликации было бы использовать контейнер с начальным файлом или использование подхода на основе моментальных снимков RDS, таких как наборы данных Release.
Эфемерные среды общины
Возможность видеть эфемерную среду и код меняется самостоятельно — это здорово, но получение обратной связи от других еще более важно. Эфемерные среды сияют, когда несколько заинтересованных сторон, таких как менеджеры по продуктам, команда QA или даже клиенты, могут предварительно просмотреть изменения, прежде чем они обычно будут доступны. Ранний цикл обратной связи помогает инженерной команде набрать их изменения и достигается путем проживания эфемерной среды на уникальном и общем URL. При выпуске каждая среда получает рукоятку в виде «TED» + 4 буквенно -цифровых символов, и каждая услуга в этой среде имеет общий URL, такой как https://backend-teda1b2.releasehub.com .
Имея в виду все эти характеристики, мы можем теперь рассказать о том, как эфемерные среды можно использовать практически в трубопроводе CI/CD.
Интеграция с инструментами сотрудничества
Последней характеристикой, о которой мы говорили, была возможность поделиться ссылкой на эфемерную среду с другими людьми. Один из способов достижения этой общей работы без руководства по отправке ссылки на каждого — это настроить интеграцию с инструментами совместной работы, такими как GitHub или Jira. Если создание эфемерной среды автоматизировано, например, когда открывается запрос на тягу, возвращение интеграции в GitHub для публикации общего URL -адреса является отличным способом для других инженеров обнаружить окружающую среду. GitHub предоставляет много способов поделиться URL, например, через комментарии, API статуса или развертывания.
Другим способом автоматизации совместного использования URL может быть подключение к JIRA и иметь соглашение об именах между номерами билетов Jira и названиями филиалов, которое позволяет автоматически добавлять URL -адрес в билет. Сотрудничество лежит в основе использования эфемерных сред, а облегчение обнаружения среды с помощью интеграции помогает добиться успеха команды.
Дымовые или интеграционные тесты
Модульные тесты являются основной частью жизненного цикла разработки, но одна вещь, которую могут пропустить модульные тесты, это то, как система ведет себя в целом вне этой единой единицы работы. Здесь могут сиять тесты на дым или интеграцию. Существует много разных подходов к этим тестам в зависимости от типа применения. Например, если приложение имеет только конечные точки API, сценарий с использованием команд Curl может быть достаточно для создания тестового набора. Однако, если приложение имеет веб -страницу, то такие инструменты, как Selenium, могут использоваться для создания тестового набора, который фактически посещает веб -сайт, гарантируют, что страницы работают. Любой подход извлекает выгоду из живой эфемерной среды для каждой тестируемой ветви или подразделения, потому что без него может быть линия ожидания, чтобы развернуть код на одном сервере для постановки или тестирования, чтобы увидеть, пройдут ли тесты, и никто не хочет ждать для этого!
Сделав все, о чем мы говорили вместе, мы можем начать рассказывать историю о том, как компания может начать с малого с эфемерной среды и продолжать масштабироваться по мере роста компании.
Масштабирование эфемерными средами
Вот вымышленная история ACME, Inc., основанная недавно на отличной идее создания полностью настраиваемых лосей лосей лосей и продажи их на своем веб -сайте. Эта история покажет, как эфемерные среды могут работать для компании любого размера, любой зрелости и с любым рабочим процессом.
Начало компании начинается с пары соучредителей, инженера и менеджера продукта. Соучредители решают, что использование эфемерных сред-хороший способ для инженера продемонстрировать работу для менеджера продукта и их потенциальных клиентов. Endeavour начинается только с нескольких эфемерных сред, поскольку инженерный соучредитель может совмещать только так много проектов одновременно. Они могут создать среду для одной задачи, поделиться ею с менеджером продукта и ждать обратной связи, перейдя на следующую задачу.
Компания находит несколько первоначальных клиентов и решает нанять дополнительных инженеров. Они также решают настроить автоматизированные эфемерные среды с каждым запросом на притяжение и получают слабые сообщения, когда каждая среда будет готова. Менеджер по продукту теперь может просмотреть каждое изменение продукта без необходимости, чтобы команда инженеров отправила им ссылку, и количество эфемерных сред, созданных одновременно, продолжает расти.
После успешного года работы соучредители решают, что они хотят нанять дополнительных менеджеров по продуктам и создать команду QA. С добавленной численностью персонала они вводят систему билетов для отслеживания работы от начала до разработки до обзора QA и, наконец, до развертывания. Чтобы согласовать использование эфемерных сред на протяжении всего этого процесса, в билет добавляются URL -адреса запроса и среды. Теперь менеджер по продукту и команда QA способны использовать ту же ссылку на среду в билете, чтобы оценить работу и предоставить обратную связь. Никто не должен ждать, пока окружающая среда будет освобождена для тестирования, чтобы завершить их работу.
После нескольких месяцев получения продукта и начальной загрузки процесса продаж, компания решает нанять команду по продажам, чтобы начать процесс приобретения клиентов. Члены команды по продажам узнают о продукте компании, но также представлены в эфемерных средах. Когда члену продаж необходимо продемонстрировать продукт для клиента, он может создать среду с чистым набором данных, который они могут использовать, чтобы продемонстрировать полную широту продукта, не беспокоясь о таких вопросах, как: «Могу ли я удалить это? » И «будет ли все сбросить для моей следующей демонстрации?», И «Кто -нибудь связывается с моей средой, пока я пытаюсь продемонстрировать это клиенту?» Этот уровень уверенности в их эфемерной среде позволяет им сосредоточиться на поле для клиента, а не танцевать вокруг функций, потому что использование этих функций может мешать кому -то другому или беспокоиться о том, что из предыдущих демонстраций может быть беспорядок.
На ранних стадиях компании, посредством роста и расширения команды продукта и инженерии, и, наконец, до фронта продаж и привлечения клиентов, эфемерные среды сыграли важную роль на каждом этапе. Без этого компании, возможно, затруднены инженеры, ожидающие времени в одной стадии, или менеджеров по продуктам и командного тестирования QA в разных средах и получения разных результатов, или команда продаж, пытающихся закрыть клиента и реализовать, что данные В их окружающей среде уже изменилась предыдущая демонстрация продаж.
Добавление эфемерных средств в ваш рабочий процесс
Надеемся, что мы показали некоторые убедительные функции для использования эфемерных сред в вашей (и вашей команде) рабочих процессах. Если вы согласны с тем, что эфемерные среды ценны, вы можете посмотреть, как мы облегчили их при выпуске.
Оригинал: «https://dev.to/tmcclung/what-is-an-ephemeral-environment-4jnd»