К основному контенту

Unleash — магия флагов функций

Раскройте магию флага

Представьте себе, что вы тестируете новые функции в рабочей среде, экспериментируете с различными вариантами и принимаете обоснованные решения перед тем, как приступить к работе.
«Добро пожаловать в царство флагов функций».

Что такое Unleash Tool?

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

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

Он также предоставляет серверные SDK для ключевых языков (Java, Go, NodeJS, Python и т. д.), а также интерфейсные SDK (Android, IOS, JavaScript, React), которые должны взаимодействовать через Unleash Proxy.

Что такое переключение функций?

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

Чем будет полезен Toggle?

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

1. Контролируемое развертывание

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

2. Канарские релизы

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

3. Бета-версии

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

Кто может использовать Unleash - инструмент управления флагами функций?

Unleash может использоваться различными заинтересованными сторонами, участвующими в процессе разработки программного обеспечения, в том числе:

  1. Разработчики: Разработчики являются основными пользователями Unleash. Они используют его для управления видимостью и поведением функций, проведения контролируемого развертывания, а также включения/отключения функций в зависимости от конкретных условий.

2. Менеджеры по продуктам: Unleash предоставляет менеджерам по продуктам возможность управлять флагами функций, позволяя имуправлять выпусками функций, собирать отзывы пользователей с помощью A/B-тестирования и принимать решения на основе данных об итерациях и развертываниях функций.

3. Команды DevOps: Команды DevOps отвечают за развертывание приложений и управление ими в производственных средах. Команды DevOps могут использовать Unleash для мониторинга производительности функций и обеспечения плавного и стабильного развертывания.

Стратегия развязывания

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

1. Стандарт

Это базовая стратегия, что означает, что она «активна для всех». Эта стратегия имеет следующее имя модели: default. 

2. Идентификаторы пользователей

Он активен для пользователей, чей UserId определен в списке UserIds. Эта функция может быть включена для нескольких указанных разработчиков или ключевых лиц с назначенным идентификатором, прежде чем быть включенной для всех. 

Параметры

UserIds – Это относится к списку идентификаторов пользователей, для которых вы хотите включить переключатель функций. Эта стратегия имеет имя моделирования: UserWithId.

3. Постепенное развертывание

При таком подходе все стратегии постепенного развертывания объединены в один подход. Вы настраиваете, какой параметр должен быть «липким», а значение по умолчанию — UserId или SessionId. 

Параметры

Липкость: Этот процесс определяет, насколько последовательным будет постепенное развертывание новой функции. Получение одинаковых результатов при использовании одного и того же UserId и процента развертывания должно быть предсказуемым. Конфигурации, которые должны поддерживаться:

  • По умолчанию — Unleash выбирает первое значение, присутствующее в контексте, в определенном порядке userId, sessionId, random.
  • UserId — гарантированно липкий к userId. Если userId отсутствует, поведение будет ложным.
  • SessionId — гарантированно закрепляется на sessionId. Если sessionId отсутствует, поведение будет ложным.
  • Случайный - липкость не гарантируется. Для каждого включенного вызова он будет выдавать случайное значение true/false в зависимости от выбранного процента развертывания.

4. IP-адреса

Стратегия «Удаленный адрес» активирует переключатель функций для удаленных адресов, определенных в списке IP-адресов. Иногда мы используем эту стратегию, чтобы включить функцию только для IP-адресов в нашей офисной сети. 

Параметры

IP-адреса - Список IP-адресов, для которых включена функция. Имя моделирования этой стратегии в коде — RemoteAddress.

5. Имена хостов

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

Параметры

Имена хостов - Список имен хостов, для которых включена эта функция. Имя моделирования этой стратегии в коде — ApplicationHostName.

Начало работы с Unleash

Чтобы начать использовать Unleash, необходим экземпляр Unleash (в котором вы создаете и поддерживаете информацию, связанную с переключением), а пакет SDK используется для подключения пользователей к экземпляру.

Для настройки Unleash необходимы три вещи.

1. Postgres: Где Unleash сохраняет статус флага функции.
2. Unleash-server: предоставляет пользовательский интерфейс и конечную точку для запроса состояния флагов.

3. Unleash-client-node: Библиотека ресурсов, используемая для подключения к серверу Unleash и определения статуса флага.

Шаги по настройке Unleash

1. Создайте сеть Docker, используемую Unleash Instance

                  Docker Network Create Unleash.

2. Создайте экземпляр Postgres.

        docker run -e POSTGRES_PASSWORD=some_password \-e POSTGRESS_USER=unleash_user -e POSTGRESS_DB= unleash \ --network 
                 unleash –name postgres

3. Запустите Unleash Instance из образа Docker.

    docker run -p 4242:4242 \ -e DATABSE_HOST=postgres -e               DATABASE_NAME=unleash\-e POSTGRESS_USERNAME=unleash_user -e 
DATABASE_PASSWORD= some_password \-e DATABASE_SSL=false\--network 
              unleash unleashorg/unleash-server

4. После того, как экземпляр Docker будет запущен и запущен, доступ к пользовательскому интерфейсу Unleash можно будет получить на LocaHost.

Заключение

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

Комментарии

Популярные сообщения из этого блога

Опробование GPT4All в Arch Linux

10 способов использовать генеративный ИИ для продвинутого SEO

Как настроить Atom как Python IDE?

Yandex.Metrika counter