Рубрики
Без рубрики

Сравнение интеграции флагов функций между ConfigCat и Launchdarkly

Флаги Функции – это отличные детали программного обеспечения. Они дают вам контролируемый способ введения функций и … Помечено с функциональными элементами, Python, тестированием, начинающими.

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

Меня зовут Чарли, я новичок, чтобы функционировать флаги в целом и думать, что я бы пробежал через мой опыт первого рука о том, чтобы освободить их. Если вы не знакомы с использованием флагов функций, так же, как я, или просто ищу правильную услугу, чтобы поставить их использовать их, вы находитесь в нужном месте. Сегодня мы собираемся сравнить процесс интеграции между Configcat. и LaunchDarkly Используя простую программу, которую я создал с Python. Если вы хотите следовать, и Python не ваш язык выбора. Не беспокоиться! Обе компании предлагают много SDK.

Во-первых, давайте поговорим о том, что мы собираемся построить. Для тех, кто знаком с ConfigCat и их Функции Функции Раздел их сайта, шансы вы видели iscoolcatenabled Переключайтесь и думают «вау, если только я создаю что-то в качестве аккурата», хорошо, если так, вам повезло! Это именно то, что мы будем демонстрировать сегодня. Ну, вроде. Мы создаем программу, которая, когда наш флаг включен, будет импортировать изображение и инвертировать цвет, сохраняя результат в новый файл. И когда флаг выключен, наша программа удалит файл.

Теперь вы знаете, что вы, давайте посмотрим на интеграцию на стороне ConfigCat. Чтобы начать, войдите в свою учетную запись CONFIGCAT и выберите «Добавить флаг функции», создайте имя (в моем случае я пошел с «CatInvert»), затем нажмите «Добавить флаг функции». Да действительно, это так просто.

Отсюда нам нужно установить Configcat Библиотека, так что открыть свой терминал и введите.

pip install configcat-client

Если вы следуете наряду с этим постом, вам понадобится другая библиотека, поэтому идите вперед установите Подушка Библиотека с:

pip install Pillow

Теперь со всем установленным, мы можем попасть в веселые вещи. Откройте свою любимую IDE, создайте новый файл .py, добавьте изображение в одну и ту же папку (я решил в духе этого поста, чтобы пойти с логотипом ConfigCat), то мы можем начать! Для реализации ConfigCat просто введите следующие строки. Опять таки, Если ваше следующее вдоль я импортирую еще несколько библиотек, но это будет отражено, как вы прочитаете.

Мое импортное изображение

import  configcatclient
configcat_client = configcatclient.create_client_with_auto_poll( 'YOUR_SDK_KEY',poll_interval_seconds=10);
YOUR_FEATURE_FLAG = configcat_client.get_value('YOUR_FEATURE_FLAG', False)

Наша топ-лайн импортирует библиотеку, которую нам нужно. Наша вторая строка – это то, что определяет, как часто ConfigCat загрузится и хранит значения из вашей программы, есть четыре параметра, которые вы можете выбрать для того, как ConfigCat идет об этом, но мы пошли с опцией Polly_Interval. Финальная строка – это то, что позволяет получить доступ к флагам функциям и настройкам.

💡 Обратите внимание, что ваш ключ SDK и название флага функций будет автоматически добавлено. Для безопасности, пожалуйста, никогда не делитесь своим ключом SDK. Не волнуйтесь, мы удалили флаг нашего функции после того, как мы закончили с этим постом.

Теперь у нас есть это, давайте посмотрим на окончательную программу.

import configcatclient
from PIL import Image, ImageOps
import time
import os

configcat_client = configcatclient.create_client_with_auto_poll(
    '1uXXCAAgHzREa0_HhlhMIw/qLn4CgPtwEuTGys-Ropbmg', poll_interval_seconds=1); # <-- This is the actual SDK Key for your Production environment

while True:
    catinvert = configcat_client.get_value('catinvert', False)
    if catinvert:
        im = Image.open('logo.jpg') # imports file
        im_invert = ImageOps.invert(im) # inverts image
        im_invert.save('inverted-logo.jpg', quality=95) # saves new file
    else:
        try:
            os.remove('inverted-logo.jpg') # deletes created file
        except os.error:
            pass        
    time.sleep(1)

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

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

Имея все это путь, давайте перейдем к запуску и реализуем ту же программу. Все начинается аналогично, выберите «Создать флаг», выберите имя (я пошел с «DarklyinVertvert»), и выберите свой язык выбора, снова мы пошли на Python. Теперь создайте папку и файл .py. Таким образом, ManageDarkly может функционировать, нам нужно установить их библиотеку SDK, открыть терминал и введите следующую строку.

echo "launchdarkly-server-sdk==6.13.0" >> requirements.txt && pip install -r requirements.txt

Теперь давайте посмотрим на какие строки кода нам нужно реализовать.

import ldclient
if __name__ == "__main__":
  ldclient.set_sdk_key("YOUR_SDK_KEY")
user = {
  "key": "UNIQUE IDENTIFIER",
  "firstName": "Bob",
  "lastName": "Loblaw",
  "custom": {
    "groups": "beta_testers"
  }
}

show_feature = ldclient.get().variation("YOUR_FEATURE_FLAG", user, False)
ldclient.get().close()

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

💡 Ваш ключ SDK и флаг функции автоматически добавляются.

Как только мы сделали все это, мы можем сохранить и тестировать нашу программу. Здесь LaunchDarkly покажет вам в режиме реального времени, если они получили событие для вашего флага перед продолжением, что приятно убедиться, что все работает как предназначено.

Теперь давайте будем использовать ту же программу, прежде чем увидеть, как все работает. Ниже у нас есть полный программный код, чтобы вы могли посмотреть на то, что было изменено, запомнить, если вы следуете вдоль, вам нужно добавить изображение в одну и ту же папку, поэтому Leaddarkly может добраться до работы. Быть справедливым, давайте изменим наш образ на launchdarkly logo.

Мое импортное изображение

import ldclient
from PIL import Image, ImageOps
import time
import os

if __name__ == "__main__":
  ldclient.set_sdk_key("sdk-17e098af-f9df-417b-b846-a29d65144779")

user = {
  "key": "UNIQUE IDENTIFIER",
  "firstName": "Bob",
  "lastName": "Loblaw",
  "custom": {
    "groups": "beta_testers"
  }
}


while True:
    show_feature = ldclient.get().variation("darklyinvert", user, False)
    if show_feature:
        im = Image.open('logo.jpg') # imports file
        im_invert = ImageOps.invert(im) # inverts image
        im_invert.save('inverted-logo.jpg', quality=95) # saves new file
    else:
        try:
            os.remove('inverted-logo.jpg') # deletes created file
        except os.error:
            pass        
    time.sleep(1)

ldclient.get().close()

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

Основным отличием для этого на конец LaunchDarkly по сравнению с ConfigCat является то, что включить ваш флаг, вы должны ввести имя вашей производственной среды и комментарий.

Мой результат имиджа

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

  • CONFIGCAT предлагает 4 разных путя от битна для загрузки ваших значений, LaunchDarkly имеет варианты для этого, но вам нужно будет углубиться в их Документация по настройке настроить дополнительные вещи с их параметрами
  • LaunchDarkly Протестирует ваше соединение в процессе запуска, подскаженное вам попробовать еще раз, если подключение не удалось. Configcat дисплей Если ваш первоначальный запрос был успешным путем отображения сообщения «Последнее доступное доступное значение DateTime» ниже вашего функционального флага
  • LaunchDarkly требует дополнительной информации о пользователе в вашей программе. CONFIGCAT не требует этого шага
  • Переключение вашего флага на CONFIGCAT так же просто, как ON-OFF, LaunchDarkly требует, чтобы вы ввели дополнительную информацию

В то время как оба из программного обеспечения в конечном итоге стремятся обеспечить тот же результат реализации флагов функций, есть четкие плюсы и минусы либо. С Launchdarkly – лидером рынка, они предлагают больше вариантов поддержки, и у вас есть безопасность использования давнего продукта, однако, поскольку вы можете использовать только свою учетную запись на пробной основе, это может быть не идеально для студентов, или люди, которые просто пытаются попробовать OUT Флаги Функции, а также требуется еще несколько шагов для настройки. CONFIGCAT, с другой стороны, имеет тип бесплатного учета учетной записи, который вы можете использовать так долго, как вы видите FIT, с самым дешевым типом учетной записи также входит в дешевле, чем на Beackdarkly Spearch Scire. И эй, есть также милый кот, как логотип. Просто шучу, обе куски программного обеспечения великолепны в своих собственных заслугах, и я надеюсь, что эта статья дала некоторую дополнительную информацию, в которую вы должны использовать.

Оригинал: “https://dev.to/wardenscotland/comparing-integration-of-feature-flags-between-configcat-and-launchdarkly-2mie”