Рубрики
Uncategorized

Делать непрерывную доставку? Создайте непрерывный изменение с AWS и Jira

Как вы управляете нотами выпуска с CI/CD? С автоматическим изменением, конечно!. Tagged с помощью AWS, CICD, без сервера, DevOps.

Итак, вы решили пойти CI/CD. Вы читаете Все об изменении орг Поймите тонкости и выходы в области разработки и почувствуйте уверенность, что сможете это сделать.

Поздравляю!

После того, как вы настраиваете свои трубопроводы, документируйте свои практики разработки и начните настаивать на PROD, все еще существует основная часть головоломки, которая нуждается в решении. Чанэлог Анкет

Как ты это делаешь? Вы добавляете технического писателя в свою команду разработчиков, которая может идти в ногу с 5, 10, 20 подтасовками до производства в день? Вы могли бы, да. Но что, если есть способ автоматизировать его?

У вас уже есть система отслеживания проблем. Мы используем Джиру в моем офисе. Используете ли вы Джира , GitHub , или Трелло Чтобы отслеживать проблемы, у всех них есть одна общая вещь — Webhooks Анкет

Каждая из этих систем запускает события, когда в системе происходят определенные действия. И мы собираемся использовать их для автоматизации нашего ChangeLog.

Архитектура

В игре есть три системы для непрерывной изменчивости:

  • Система отслеживания вопросов (в этом прохождении, Jira)
  • API задняя часть, чтобы собрать, хранить и забрать ChangeLog (встроенный в AWS)
  • Пользовательский интерфейс

В нашей автоматизации события текут так:

  1. Dev Team перемещает выпуск Jira в Готово статус. Джира публикует в веб -крючок, содержащий подробную информацию о закрытом выпуске.
  2. AWS API Gateway Прокси непосредственно к Dynamodb хранить детали.
  3. Конец пользователя загружает страницу ChangeLog. Страница делает запрос на загрузку последних изменений.
  4. AWS API Gateway Прокси непосредственно к Dynamodb Чтобы загрузить детали из базы данных и вернуть их в ответ.

Казаться простым? Это!

Это та интеграция, которая в конечном итоге окупается в 1000x. Это низкая стоимость для реализации, высокой интеграции стоимости.

Конфигурация AWS

В My GitHub Repo Я предоставляю источник для развертывания микросервиса с архитектурной диаграммы выше. Он использует AWS API Gateway и DynamoDB в качестве двух основных служб для хранения и получения данных.

Задняя часть имеет только две конечные точки, одну для создания элемента в измене, а другая для загрузки элементов из него.

  • Получить -/Подробности
  • Сообщение -/Подробности

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

Поскольку мы не хотим, чтобы вредоносные пользователи обнаруживали наш API и публикующие поддельные или неуместные изменения в нашем изменении, нам нужно добавить ключ API. Мы не можем добавить стандартную Auth, чтобы проверить наших пользователей, поскольку эти запросы будут проходить через веб -крючок.

Jira предоставляет возможность включать заголовки при публикации в WebHook, поэтому мы воспользуемся этим и включим ключ API API. Этот ключ включен в сценарий CloudFormation в репозитории.

Если вы следите за ReadMe в репо GitHub, вы будете работать с минимальными усилиями. Он поступает в предварительно проводных, поэтому настройка не требуется, кроме развертывания в вашей учетной записи AWS.

Конфигурация JIRA

Теперь, когда у нас есть наш API и запущен, пришло время настроить JIRA для подачи данных ChangeLog.

Добавить пользовательское поле

Нам нужно добавить пользовательское поле в наши проблемы JIRA. Изнутри Джира перейдите к Настройки> Администрация JIRA> Проблемы Анкет

Как только вы просмотрите страницу «Администраторы», перейдите к Поля> Пользовательские поля> Добавить пользовательское поле Анкет

Описания изменений-режима могут стать немного многословными, поэтому выберите текстовое поле (многослойное), дайте ему имя Изменение и добавьте описание, которое позволяет пользователям узнать формат, который они должны ввести в свои данные об изменении.

Далее выберите свои экраны, на которых вы хотите, чтобы поле изменяемости было видно. Если вы хотите это во всех своих проектах JIRA, выберите их все!

Создайте веб -крюк

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

В вашем проекте Jira перейдите к Настройки проекта> Автоматизация проекта> Создать правило Анкет

Выберите Выпуск перешел Тип триггера и при желании установить Из статуса и К статусу На следующем экране.

Примечание — К статусу Поле должно быть установлено на любой окончательный статус в вашем рабочем процессе. В моем проекте наш последний статус рабочего процесса — Готово Анкет

Как только вы настроили триггер, пришло время настроить действие для Джиры. Нажмите на Новое действие Чтобы поднять список вариантов.

Выберите Отправить веб -запрос Действие, чтобы вызвать экран конфигурации.

Получите детали вашего API от AWS

Теперь нам нужно отправиться обратно в консоль AWS. Во -первых, нам нужно получить URL -адрес снятого нами веб -крючка.

  1. Перейдите к API Gateway Console и выберите Изменение API
  2. Нажмите на Этапы Ссылка на левой навигации, затем Dev сцена.
  3. Будет Вызове URL в верхней части страницы. Возьмите это значение и добавьте его в Webhook URL поле в Джире. Обязательно добавьте /Детали в конце.
  4. Далее нажмите на Ключи API ссылка на левой навигации, тогда * CICD-APIKEY … ценность.
  5. Нажмите на Показать Ссылка и скопируйте значение, отображаемое на экране.
  6. Вернувшись в Джиру, добавьте заголовок x-api-key и вставьте ключ API в поле значения.
  7. Далее настройте тело веб -кхука, чтобы соответствовать изображению ниже и нажмите Сохранить Анкет

Дайте вашей автоматизации значимое имя на следующем экране и нажмите Включите это Кнопка, чтобы завершить интеграцию!

Посмотреть свой новый изменение изменений

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

Как только у вас возникнут некоторые проблемы, давайте взглянем на то, как это выглядит. Я предоставил скелетный угловой передний конец в GitHub Repo Таким образом, вы можете сразу же просматривать изменение.

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

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

Получите поддержку вашей организации

Я мог бы вырезать вас прямо здесь, но каким ответственным блоггером я был бы, если бы я не говорил об организационном управлении, необходимом для этого?

Следуя этому маршруту оставляет несколько вопросов, которые вам нужно ответить на вашу организацию:

  • Кто пишет детали изменений? Технические писатели? Разработчики?
  • Нужно ли рассмотреть детали изменений в соответствии с тем, как закрыть проблему?
  • Можете ли вы доверять разработчикам написать заметки, обращенные к клиенту?
  • Какие типы проблем вы хотите включить в ChangeLog?
  • Стоит ли вы показывать основные функции по -разному?

Это для вас и вашей организации, чтобы выяснить. Конечно, легче всего позволить разработчикам добавить детали и быть сделанными, но это самое безопасное? Вы хотите, чтобы все изменения были зарегистрированы для общественности?

Попробуй это!

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

Вы делаете что -то подобное? Вы делаете что -то совершенно другое? Дайте мне знать свои мысли и мнения!

Нравится этот контент? Найдите оригинальную статью и еще больше мой блог !

Оригинал: «https://dev.to/allenheltondev/doing-continuous-delivery-build-a-continuous-changelog-with-aws-and-jira-3kc2»