Kraken CI (3 часть серии)
Кракен СИ является новым непрерывным интеграционным инструментом. Это современный, с открытым исходным источником, система CI/CD, которая очень масштабируется и сосредоточена на тестировании. Он лицензирован по лицензии Apache 2.0. Его исходный код доступен на Страница Github Crake CI Отказ
В этом руководстве является третьим взносом серии статей о Kraken CI. Часть 1, Kraken CI, новый ребенок на блоке CI, представил установку Kraken. Вторая часть покрыла, как приготовить рабочий процесс для простого проекта Python.
На этот раз мы хотели бы показать последнюю функцию, которая была разработана в Kraken CI: AutoScaling.
вступление
Поддержание фиксированного количества машин для Kraken CI может быть дорогостоящим. Если нет высокого трафика строящихся, то некоторые машины сидят холостыми и уходами. Решение этой проблемы — это аутокалирование IE. Нерестовые машины с агентами Craken динамически в зависимости от текущих потребностей в Kraken CI. Если есть представление нового потока со множеством рабочих мест зданий или тестирования, то новые машины появляются. Когда поток завершается, машины прекращаются, и расходы не понесены.
В настоящее время krake CI AutoScaling поддерживает виртуальные машины AWS EC2.
Следующие главы показывают, как настроить доступ к AWS, то как настроить параметры и поведение резвидных машин. В конце концов, использование в определениях работы представлено.
Подробности о конфигурации можно найти в Docs kraken. .
Глобальные облачные настройки
Во-первых, глобальные настройки должны быть установлены, чтобы разрешить доступ к данному поставщику облака. В веб-пользовательском интерфейсе на странице Kraken -> Настройки на вкладке Облака есть форма для сбора учетных данных к облачным провайдерам:
В случае AWS требуется Ключ доступа
и Секретный ключ доступа
. После заполнения значений и сохранения настроек можно проверить, работает ли он, нажав Тестовый доступ
кнопка.
Подготовка облачных окружающей среды
В случае AWS также требуется назначать правильные разрешения, чтобы Kraken может создавать или уничтожить экземпляры EC2. Список всех требует разрешений выглядит следующим образом:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateKeyPair", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteKeyPair", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus" "ec2:DescribeInstanceTypeOfferings", "ec2:DescribeRegions", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs", "ec2:RunInstances", "ec2:TerminateInstances", ], "Resource": "*" } ] }
Конфигурация в группах агентов
Установив учетные данные к облачным поставщикам, теперь можно настроить аспекты нерестищих новых машин. Это может быть сделано по kraken -> агентам -> группам группы. Давайте создадим новую группу агентов, нажав Добавить новую группу
Кнопка и называя это AWS-T2-Micro
Отказ Вновь созданные детали будут представлены на отдельной вкладке. На этой вкладке есть раздел Развертывание агентов
. Таким образом, развертывание может быть ручным (по умолчанию) или автоматизирован до определенного облачного провайдера. В случае веб-сервисов Amazon есть следующие параметры, которые можно установить:
Выберите любой регион, который подходит вам. Предел экземпляров может быть установлен на 2. Это не позволит иметь больше беговых машин, чем 2. На данный момент по умолчанию AMI может быть пустым.
Тогда в VM-вариантах давайте придерживаться бесплатного уровня AWS и выберите T2.Micro
Тип экземпляра. Остальные флажки остаются пустыми. Сценарий init также может быть пустым.
Чтобы убедиться, что висячие экземпляры не едят наш бюджет, давайте установим параметры в разделе «Универсация» на 1 рабочую силу и 10 минут. Таким образом, появившаяся машина будет прекращена после выполнения 1 задания. И даже тогда, если он сидит на холостом ходу более 10 минут, он также будет уничтожен.
Определение работы
Теперь, чтобы использовать определенное AWS-T2-Micro
Группа агентов, нам нужно подготовить проект с филиалом и сценой. Подробнее о том, что можно найти в Вводное руководство Отказ Итак, давайте сосредоточимся сейчас на определении работы.
{ "parent": "root", "triggers": { "parent": True }, "configs": [], "jobs": [{ "name": "hello", "timeout": 500, "steps": [{ "tool": "shell", "cmd": "echo 'hello world'" }], "environments": [{ "system": "ami-0967f290f3533e5a8", "agents_group": "aws-t2-micro", "config": "default" }] }] }
Большое различие существует сравнение с обычными вакансиями Kraken. Работа имеет определенные среды раздел, где мы указываем на OUT AWS-T2-Micro
Группа агентов. Что нового — это Система
поле, которое указывает на AMI
Идентификатор — это указывает на изображение AWS EC2.
Бегать
Теперь, когда работа назначена в группу агентов с настроенными агентами развертывания агентов, то новая машина будет выречена для этой работы, если агенты недоступны в Kraken.
Давайте изменим представление представления результатов филиала и вызвать новый поток, нажав Беги поток
кнопка. На странице Run, список рабочих мест показывает нашу работу AWS:
Вот и все!
Kraken CI (3 часть серии)
Оригинал: «https://dev.to/godfryd/autoscaling-ci-with-kraken-ci-jij»