
Масштабирование действий GitHub на AWS с безопасностью Forgemt
13 августа 2025 г.Введение
Действия GitHub-это инструмент для CI/CD для многих команд. Но когда ваша организация ежедневно работает в тысячи трубопроводов, настройка по умолчанию ломается. Вы достигаете ограничений по масштабу, безопасности и управлению - плюс стремительно растущие расходы.
Бегуны с GitHub, проведенные простыми, но дорогими и не отвечают строгим потребностям соблюдения. Существующие самостоятельные решения, такие как модули контроллера бегуна (ARC) или Terraform EC2, не полностью решают мультитенантную изоляцию, автоматизацию или централизованное управление.
Forgemt, построенный внутри бизнес -группы Cisco, заполняет этот пробел. Это платформа AWS с открытым исходным кодом, которая управляет эфемерными бегунами с сильной изоляцией арендатора, полной автоматизацией и управлением корпоративным уровнем.
В этой статье объясняется, почему Forgemt имеет значение и как она работает, - это практическое взгляды на создание масштабируемых, надежных платформ бегущих действий GitHub.
Почему бегуны Enterprise CI/CD выходят из строя в масштабе
В крупных организациях масштабируют github actions, бегущие сталкиваются с четырьмя ключевыми узкими местами:
- Фрагментированная инфраструктура: команды самостоятельно выбирают свои инструменты CI/CD: Jenkins, Travis, Circleci или самостоятельные бегуны, которые ускоряют локальную доставку, но создают дублированные усилия, дрейф на конфигурацию и фрагментированный мониторинг. Без единой платформы, масштабируемость, безопасность и надежность ухудшаются.
- Слабая изоляция арендатора: бегуны запускают нерешенное код между командами. Без сильной изоляции одна скомпрометированная работа может утекать полномочия или эскалатные атаки на арендаторов. Плохой аудиторский след, медленное обнаружение нарушения и препятствуют соответствию.
- Пределы масштабируемости: статические пулы IP вызывают истощение IPv4 и задержки с ручным задержкой. Без упругого масштабирования ресурсы потрачены впустую или в очередь за трубопроводы, убивая скорость разработчика.
- Накладные расходы на техническое обслуживание и управление: неравномерное исправление ослабляет безопасность, инфраструктурный дрейф усложняет устранение неполадок, а аудиты становятся дорогими и подверженными ошибкам. Безопасное масштабирование требует централизованного управления, последовательного обеспечения политики и автоматизации.
Короче говоря, предприятия не могут масштабировать бегуны с GitHub без платформы, которая:
- Централизует многоцелевое
- Автоматизирует управление жизненным циклом
- Обеспечивает наблюдение за корпоративным уровнем и управлением
Но будьте осторожны-за пределами централизации может убить гибкость и представить новые проблемы.
Почему действия GitHub - и почему этого недостаточно в масштабе предприятия
Действия GitHub популярны, потому что он предлагает:
- Глубокая интеграция GitHub:Триггеры на PRS, филиалы и теги без дополнительных логин, а также автоматическое секрет и обработку артефактов.
- Расширяемая экосистема:Тысячи действий на рынке упрощают создание рабочего процесса.
- Гибкие бегуны:Бегуны с GitHub, проведенные для удобства или самостоятельно для контроля, экономии средств и соответствия.
- Гранулярная безопасность:Приложения нативного GitHub, токены OIDC и мелкозернистые разрешения обеспечивают наименьшую привилегию.
- Быстрое масштаб:Трубопроводы на уровне репо или Org обеспечивают плавный рост CI/CD.
Тем не менее, только Github Does не может соответствовать требованиям предприятия. Предприятия требуют:
- Сильная изоляция арендаторов и централизованное управление на тысячах трубопроводов.
- Единая платформа, позволяющая избежать фрагментированной инфраструктуры и масштабирования узких мест.
- Мелкозернистая идентичность, управление сетью и соблюдение требований.
- Автоматизация для адаптации, исправления и аудита, чтобы уменьшить эксплуатационные накладные расходы.
Облачные провайдеры, такие как идентификация снабжения AWS, сетевые и автоматические строительные блоки-IAM/OIDC, сегментация VPC, EC2, EKS (необходимо для создания безопасных, масштабируемых, мультитенантных платформ CI/CD).
Существующие решения и почему они терпят неудачу
Действие контроллер бегуна (ARC)Запускает эфемерные капсулы Kubernetes в качестве бегунов Github, динамически масштабируя с помощью декларативной конфигурации и коренной интеграции Kubernetes. Но:
- Сама по себе пространства имен Kubernetes не обеспечивают сильную изоляцию безопасности.
- Нет местной интеграции AWS IAM/OIDC.
- Не хватает автоматизации управления и аудита.
- Управление сетевой политикой является ручным, увеличивая эксплуатационные накладные расходы.
Terraform AWS Github Runner модульПоложения EC2 самостоятельно управляемые бегунами с настраиваемыми AMI, хорошо интегрируясь с трубопроводами IAC. Однако:
- Обычно развернуто на команду, вызывая фрагментацию.
- Нет местной мультитенантной изоляции.
- Требуется ручная настройка IAM и настройки аккаунта.
- Нет автоматизации.
Коммерческий бегун-как услугаПараметры предлагают простое UX, автоматическое масштабирование и обслуживание, управляемое поставщиками с SLA, но:
- Высокие затраты в масштабе.
- Поставщики заблокируют риски.
- Ограниченная мультитенантная изоляция.
- Часто не соответствуют строгим требованиям соответствия.
Где Forgemt вписывается в
Forgemt объединяет лучшие из этих подходов для доставки готовой к предприятию платформы:
- Оркестрает эфемерных бегунов плавно.
- Использует AWS-присутствующую идентичность и изоляцию сети (IAM/OIDC).
- Встроенное управление с полной автоматизацией жизненного цикла.
- Предназначен для крупных, ориентированных на безопасность организаций.
Forgemt не изобретает модули ARC или EC2, но расширяет их:
- Строгая мультитенантная изоляция:Каждая команда работает в отдельной учетной записи AWS, чтобы содержать радиус взрыва. IAM/OIDC обеспечивает наименьшую привилегию. Calico CNI управляет сегментацией сети Kubernetes.
- Полная автоматизация:Арендатор на адаптацию, исправление бегуна, централизованный мониторинг и повторное восстановление происходит автоматически, разрезают ручной труд и ошибки.
- Централизованная плоскость управления:Одна приборная панель надежно управляет всеми арендаторами с управлением, журналами аудита и готовой к соблюдению отслеживания.
- Оптимизация затрат:Точечные экземпляры, теплые бассейны и автомассалирование на основе показателей в реальном времени и спотовых цен снижают затраты без жертвы.
- Прозрачность с открытым исходным кодом:100% с открытым исходным кодом-без блокировки поставщика, без лицензионных сборов, полная свобода настройки.
Обзор архитектуры
По своей сути, Forgemt - это централизованная плоскость управления, которая организует эфемерную подготовку и управление жизненным циклом для нескольких арендаторов, работающих как на EC2, так и на Kubernetes.
Ключевые компоненты
- Terraform Module для бегунов EC2-Положения эфемерных бегунов EC2 с автоматическим, точечным/по требованию и эфемерным жизненным циклом.
- Действие контроллер бегуна (ARC)-Управляет бегунами на основе EKS как капсулы Kubernetes с изоляцией пространства имен арендатора.
- Opentofu + Terragrunt- Инфраструктура как код, управляющий арендатором/счетом/регионом, декларативно.
- IAM TRUST POLICIES - Безопасный доступ к бегуне с эфемерными учетными данными посредством предположения о роле.
- Splunk & Observication - централизованные бревен и метрики на арендатора.
- Teleport - безопасный доступ SSH к эфемерным бегунам для аудита и отладки.
- EKS + Calico CNI - масштабируемая сеть стручков с сильной сегментацией арендатора и минимальным использованием IP.
- Eks + karpenter-Узел, управляемый спросом, автомассалируется с точечными и по требованию, плюс теплые бассейны.
Плоскость управления Forgemt
Плоскость управления - это мозг платформы - управление проводницей бегуна, жизненным циклом, безопасности, масштабированию и наблюдаемой наблюдаемой.
- Централизованная оркестровка:Решает, когда и где развернуть эфемерных бегунов (капсулы EC2 или Kubernetes).
- Мультитенантная изоляция:Изоляты каждого арендатора через выделенные учетные записи AWS или пространства имен Kubernetes, роли IAM и сетевые политики.
- Обеспечение безопасности:Применяет закаленные конфигурации бегуна, автоматизирует вращение эфемерных учетных данных и обеспечивает наименьшую привилегию.
- Масштабирование и оптимизация:Интегрируется с Карпентером и EC2 Autoscaling, чтобы масштабировать бегунов вверх/вниз с осведомленностью о спросе и затратах.
- Наблюдаемость и управление:Потоки журналов и метрики в Splunk; Обеспечивает аудиторские маршруты и мониторные панели соответствия.
Типы бегунов и использование
Изоляция арендатора
Каждое развертывание Forgemt является односменным и специфичным для региона. IAM Роли, политики, VPC и услуги подходят исключительно для этой пары-арендаторов. Эта жесткая граница предотвращает доступ к перекрестному делу, упрощает соответствие и сводит к минимуму радиус взрыва.
Бегуны EC2
- Эфемерные виртуальные машины загружены с предоставленной кузницей или арендатором Amis.
- Задачи работают непосредственно на виртуальных машинах или внутри контейнеров.
- IAM Ролевая предположение заменяет статические полномочия.
- Завершено после каждой работы, чтобы избежать дрейфа или утечек.
EKS Runners
- Управляется ARC как капсулы Kubernetes в пространствах имен арендаторов.
- Изображения, вытащенные из репозиториев ECR Forge или арендатора.
- Шкалы динамически для взрыва рабочих нагрузок.
Теплые бассейны и ограничения
Forgemt поддерживает теплые бассейны преинициализированных бегунов, чтобы минимизировать задержку холодного запуска, особенно полезно для бегунов EC2 с более медленным временем загрузки.
Заражающие ограничения обеспечивают соблюдение:
- Макс одновременный бегуны
- Warm pool size
- Срок службы бегуна (автоминция после рабочих мест)
Эти элементы управления предотвращают злоупотребление ресурсами и сохраняют затраты предсказуемыми.
Арендатор на борьбе
Развертывание нового арендатора является простым и полностью автоматизированным через один декларативный файл конфигурации, например:
gh_config:
ghes_url: ''
ghes_org: cisco-open
tenant:
iam_roles_to_assume:
- arn:aws:iam::123456789012:role/role_for_forge_runners
ecr_registries:
- 123456789012.dkr.ecr.eu-west-1.amazonaws.com
ec2_runner_specs:
small:
ami_name: forge-gh-runner-v*
ami_owner: '123456789012'
ami_kms_key_arn: ''
max_instances: 1
instance_types:
- t2.small
- t2.medium
- t2.large
- t3.small
- t3.medium
- t3.large
pool_config: []
volume:
size: 200
iops: 3000
throughput: 125
type: gp3
large:
ami_name: forge-gh-runner-v*
ami_owner: '123456789012'
ami_kms_key_arn: ''
max_instances: 1
instance_types:
- c6i.8xlarge
- c5.9xlarge
- c5.12xlarge
- c6i.12xlarge
- c6i.16xlarge
pool_config: []
volume:
size: 200
iops: 3000
throughput: 125
type: gp3
arc_runner_specs:
dind:
runner_size:
max_runners: 100
min_runners: 1
scale_set_name: dependabot
scale_set_type: dind
container_actions_runner: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/actions-runner:latest
container_requests_cpu: 500m
container_requests_memory: 1Gi
container_limits_cpu: '1'
container_limits_memory: 2Gi
volume_requests_storage_type: gp2
volume_requests_storage_size: 10Gi
k8s:
runner_size:
max_runners: 100
min_runners: 1
scale_set_name: k8s
scale_set_type: k8s
container_actions_runner: 123456789012.dkr.ecr.eu-west-1.amazonaws.com/actions-runner:latest
container_requests_cpu: 500m
container_requests_memory: 1Gi
container_limits_cpu: '1'
container_limits_memory: 2Gi
volume_requests_storage_type: gp2
volume_requests_storage_size: 10Gi
Введите полноэкранную режим выхода из полноэкранного режима
Платформа Forgemt использует эту конфигурацию:
- Предоставление счетов AWS и ресурсов AWS.
- Установите свои роли с наименее привилегированной политикой доверия.
- Настройте спецификации интеграции GitHub и бегуна.
- Обеспечение ограничений арендаторов и типов бегунов.
Эта автоматизация позволяетНоль натягиваниябез ручной настройки AWS или GitHub, требуемой арендатором.
Расширяемость
Forgemt позволяет арендаторам настраивать свои среды и управляющий бегун.
- Пользовательский амисДля бегунов EC2 с инструментом для конкретного арендатора.
- Частные репозитории ECRдля размещения изображений контейнеров для виртуальных машин или kubernetes.
- Арендатор IAM РолиС политикой доверия, так что бегуны Forgemt считают их безопасно без статических ключей.
- Расширенные шаблоны доступаКак и цеполо, допущения или политики на основе ресурсов для сложных потребностей.
Это позволяет каждой команде настраивать стоимость, безопасность и производительность независимо, не влияя на стабильность основной платформы.
Модель безопасности
Фондом Forgemt является сильной изоляцией и эфемерным исполнением для снижения риска:
- Выделенные роли, пространства имен и учетные записи AWSна арендатор.
- Нет видимости перекрестного возраста или доступа.
- Эфемерные бегуныуничтожен сразу после завершения работы, чтобы предотвратить учетные данные или утечка данных.
- Временные полномочия через предположение о роле IAMЗамените статические ключи AWS.
- Мелкозернистый контроль доступаНастраивается арендаторами для разрешений на ресурсы.
- Полный аудиторский след предоставления, выполнения и выключения, зарегистрированного через CloudWatch → Splunk.
- Встречает контрольные показатели CIS и политики внутренней безопасности.
Отладка в безопасном, эфемерном мире
Эфемерные бегуны означают, что постоянная отладка невозможна дизайна, но Forgemt предлагает:
- Живая отладка с телепортом:Держите бегунов временно с помощью настройки рабочих процессов, чтобы позволить SSH работать.
- Воспроизводимые повторы:Неудачные рабочие места могут быть повторены идентично из пользовательского интерфейса GitHub.
- Устранение неполадок на основе журнала:Доступ к телеметрии, системным журналам и журналам заданий по центру без воздействия инфраструктуры.
- Поддержка Kubernetes:Те же механизмы отладки применимы к бегунам EKS, сохраняя изоляцию и аудиторство.
Заключение
Forgemt, вероятно, излишне для небольших команд. Начните просто с эфемерными бегунами (EC2 или ARC), действиями GitHub и автоматизацией Terraform. Расширение только тогда, когда вы нажимаете на настоящие болевые точки. Forgemt сияет в условиях нескольких команд, где изоляция арендаторов, управление и автоматизация платформы критически важны. Для сольных команд это просто добавляет ненужную сложность.
Forgemt решает основные предприятия, связанные с управлением бегунами действий GitHub в масштабе, предоставляя:
- Сильная мультитенантная изоляция
- Полное автоматизированное управление жизненным циклом и управление
- Гибкие типы бегунов с автомассалированием и теплыми бассейнами
- Безопасные, эфемерные среды, которые отвечают потребностям соблюдения требований
- Расширяемая платформа с открытым исходным кодом для настройки
Для организаций, пытающихся надежно и эффективно масштабировать самостоятельных бегунов на AWS, ForgeMt предоставляет проверенную в битве прозрачную платформу, которая сочетает в себе лучшие практики AWS с удобной разработчиком автоматизацией.
Погрузиться в проект Forgemt
Идеи дешевые - казни - это то, что имеет значение. Исходный код Forgemt публично - проверьте это:
👉 https://github.com/cisco-open/forge/
⭐ Если вы найдете это полезным, не забудьте бросить звезду!
🤝 Подключите
Давайте подключимся кLinkedInиGitHubПолем
Оригинал