Масштабирование действий GitHub на AWS с безопасностью Forgemt

Масштабирование действий 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

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

  1. Централизованная оркестровка:Решает, когда и где развернуть эфемерных бегунов (капсулы EC2 или Kubernetes).
  2. Мультитенантная изоляция:Изоляты каждого арендатора через выделенные учетные записи AWS или пространства имен Kubernetes, роли IAM и сетевые политики.
  3. Обеспечение безопасности:Применяет закаленные конфигурации бегуна, автоматизирует вращение эфемерных учетных данных и обеспечивает наименьшую привилегию.
  4. Масштабирование и оптимизация:Интегрируется с Карпентером и EC2 Autoscaling, чтобы масштабировать бегунов вверх/вниз с осведомленностью о спросе и затратах.
  5. Наблюдаемость и управление:Потоки журналов и метрики в 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Полем


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE