Рубрики
Uncategorized

Смертные приложения и флаги развертывания Cloudbees

Откройте для себя, насколько просто используйте флаги функций в среде без сервеса, а почему Cloudbees Rollout — отличный вариант для него. Теги от мониторинга, безвероведочного, программирования, дежопами.

Безвесовые приложения (те, которые вы будете развернуть aws lambda или функции облаков Google или аналогичные), часто являются наиболее удобным способом отправить скромную часть функциональности: возможно, веб-приложение или обработчик событий.

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

Пример

Клонирование Это Пример от GitHub, вы можете развернуть его так же легко, как:

gcloud functions deploy my_function --trigger-http --runtime "python37"

Как только вы настроите свой идентификатор среды. Это даст вам URL-адрес HTTPS, который вы можете запустить, а затем управлять через эксперимент Flag Flag ( Cloudbees Разрешить QuickStart здесь ). В этом случае очень просто с функциями Google Cloud, но он тоже будет работать в другом месте.

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

Это то, что просто — и по большей части вы можете следовать этому шаблону, и это не намного больше.

Взгляните немного ближе, и эта образец функция в том, где вы настроиваете Cloudbees Rollout VS, где вы используете флаги:

В верхней части вашего функционального кода (который загружен наряду с требованиями. Atxt в этом случае) у вас есть импорт и код установки для инициализации разъема Cloudbees. Важно, чтобы это идет здесь, а не в функции ниже (что на самом деле делает интересную вещь и использует ваши флаги) — поскольку вы хотите инициализировать развертывание CloudBees один раз, когда функция инициализируется службой функции облака, которую вы используете. В Amazon Lambda это иногда называют Контекст исполнения — Это все вещи, которые должны быть загружены до того, как ваша функция может быть вызвана (и повторно используется между различными вызовами функции … Больше вы можете прочитать на этом ссылках позже, если вам интересно).

Это действительно все большинство людей, которых нужно знать — следуйте вышеуказанному шаблону, и вы будете хорошо использовать мошентивный шаблон вместе с флагами функций без каких-либо реальных недостатков.

Cloudbees Rollout Flag Config нагружает быстро

Одним из приятных аспектов дизайна службы отделения без гражданства является то, что при загрузке флагов в вашем приложении нет «вычисления», продолжающихся — флаги загружаются с сильно кэшированных и близлежащих узлов CDN (не на серверах разъема ). Это ускоряет и упрощает время загрузки. Следует ли флаги изменения, обновления нажаты в ваше приложение по мере необходимости.

Документы Cloudbees Rollout имеют довольно Комплексное руководство На «потоке обновления» для обновления флагов на клиенте:

На далеком праве — сервис хранения отката — который до сих пор не требует «вычисления» — так даже в случае, когда вы флаги, не хранятся на месте как-то, он все еще приходит из кэша, это «худший» случай (Что довольно хорошо!).

Так что для большинства людей пример выше в порядке. Существует небольшой (подземный) над головой в худшем случае для загрузки флагов, но если это слишком много для вас … Прочитайте дальше, мы можем сделать больше, чтобы оптимизировать.

На холод начинается и становится самым быстрым временем загрузки

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

Вариант 1: загрузить выдвигаться асинхронно

Это самый простой: удалить вызов «Результат ()» из загрузочного нагрузки, так что выглядит:

Rox.setup("..id here..")

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

Вариант 2: Используйте конфиг как код для встроенных экспериментов/флагов

Еще одна интересная возможность развертывания Cloudbees — это конфигурация в качестве кода: это означает, что в любое время вы изменяете состояние флагов в «эксперименте», изменение может быть сохранено обратно в репозиторий исходного кода. В Настройки приложения> Интеграции Вы настраиваете подключение к репозитории:

Флаги будут храниться в виде файлов (YAML) в вашем проекте (GitHub) (средняя среда для производства будет сохранена на главной ветке, если у вас есть постановка, она будет храниться на филиале постановки и т. Д.).

Каждое изменение флага может затем вызвать конвейер CI/CD для передачи вашей функции вместе с новыми настройками флага. Cloudbees развертывают это Встроенные эксперименты И есть плагины Build Tool от доступных для автоматического пакета копирования конфигурации разброса для вас, чтобы при этом, когда вы используете свои флаги, представляют собой время выполнения — он сначала выглядит локально для встроенного конфигурации.

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

Регистрация для Бесплатные Cloudbees развертывают испытание Отказ

Дополнительные ресурсы:

Оригинал: «https://dev.to/cloudbees/serverless-apps-and-cloudbees-rollout-feature-flags-5om»