Сегодня мы представляем вам второй пост этой серии технических статей, касающихся разработки с помощью гиперлледжера.
В прошлый раз, когда мы говорили о том, как мы тестируем наш код цепочки, сегодня мы идем еще на шаг вперед, и мы покажем вам, как мы развертываем код автоматически.
CI/CD Является ли комбинированная практика автоматизации тестирования нашего приложения и развертывания приложения на наши серверы.
Наш рабочий процесс интегрирует различные платформы в нашем трубопроводе, Github, Gitlab CI и IBM Blockchain. Мы храним код в GitHub, когда мы нажимаем код, чтобы автоматически переходить в Gitlab CI, где выполняются автоматические тесты. Если все идет хорошо, мы автоматически развертываем код в IBM.
Непрерывная интеграция — это практика, которая требует от разработчиков интегрировать код в общий репозиторий несколько раз в день. Каждый раз, когда код выдвигается в репозиторий кода, автоматические тесты выполняются.
Есть много крутых сервисов CI, и мы использовали несколько из них, прямо сейчас мы довольны Gitlab CI, очень простыми в настройке и полными возможностей!
На нашем процессе CI/CD есть две фазы: тестирование и развертывание Вы можете иметь несколько фаз параллельно, на этапе испытаний мы запускаем три процесса, бэкэнд, фронт и тестирование цепного кода. Когда тесты проходят и если правила соблюдены, приложение и цепный код являются развернуто Анкет:-)
Здесь мы покажем вам конфигурацию для цепного кода, только так как остальная часть приложения хорошо документирована повсюду (мы используем отраслевые стандарты, такие как Django, React и т. Д. И т. Д.).
На этапе тестирования мы запускаем тесты цепного кода с помощью этой конфигурации, шаги задокументированы в фрагменте кода:
Каждое изменение, которое проходит автоматизированные тесты, автоматически развертывается в производстве, поэтому, когда тесты проходят время, пришло время развертываться!
Этот этап выполняется только в двух конкретных случаях, для Постановка и Производство Окружающая среда:
- Постановка : Когда мы продвигаем изменения в Мастер в git
- Производство : Когда мы толкаем изменения с помощью git тег Анкет Мы используем следующие форматы для тегов vyyyy.mm.dd (Год. Месяц. День)
Каждое развертывание состоит из двух вызовов API. Первый используется для Установите цепный код на платформе , второй на создать создание цепного кода в одном из наших каналов Анкет
Вы можете прочитать IBM Blockchain API документация Чтобы знать, что вы можете отправить на эти вызовы API.
Переменные, используемые в Gitlab CI, являются:
- Network_id : network_id в сети IBM реквизиты для входа
- Network_key : ключ в Учетные данные IBM Network
- Network_pass : Секрет в IBM Network реквизиты для входа
- Канал_ {среда} _id : канал — это имя, которое мы добавили, когда создали канал для этого проекта ( defaultChannel по умолчанию на IBM Blockchain)
См. Весь пример рецепта к ткани CI/CD Hyperledger на IBM Blockchain Анкет
IBM Blockchain Платформа, безусловно, является самым простым способом, которым мы использовали для создания сети тканей Hyperledger, у нее также есть хороший API для удаленного взаимодействия с ним, она экономит много времени и боли, не нуждающаяся в применении каких -либо типичных компонентов в ткани сеть. Есть только некоторые детали, которые мы должны учитывать при его использовании:
- Когда мы развертываем несколько интеллектуальных контрактов с тем же именем, может быть трудно понять, что является последним развернутым, не существует группировки цепного кода по имени.
- Невозможно архивировать старый выпуск цепного кода, поэтому мы получим много версий цепного кода в списке цепных кодов.
- Невозможно сказать IBM Blockchain, что мой умный контракт, встроенный в GO, имеет внешнюю зависимость.
- Регистрация не интегрирована в платформу, она открывает для нас приборную панель Kibana, чтобы увидеть журналы (я не уверен, что это хорошо или плохо, но опыт странный).
После того, как CI/CD хорошо настроен, создание и создание Cheap -Code на IBM Blockchain — это бриз, но есть некоторые предостережения, которые мы должны преодолеть, чтобы получить большую часть их платформы.
Этот пост был написан на моем блог .
Оригинал: «https://dev.to/wealize/ci-cd-on-a-hyperledger-fabric-project-83b»