---
title: Engineer Enabling！2000名超のエンジニアを支えるGitOps運用ノウハウを大公開　～GitHub Actionsセルフホステッドランナーを完全プライベートEKSで実現～
tags:  #cloudnativedayswinter2024 #cicd #aws #github  
author: [シンプレクス株式会社](https://www.docswell.com/user/Simplex)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/YJ9KWKPYJ3.jpg?width=480
description: CloudNative Days Winter 2024イベントで登壇する「Engineer Enabling！2000名超のエンジニアを支えるGitOps運用ノウハウを大公開　～GitHub Actionsセルフホステッドランナーを完全プライベートEKSで実現～」の公開資料です。
published: November 28, 24
canonical: https://www.docswell.com/s/Simplex/KWW4JG-simplex_nishiyama01
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/YJ9KWKPYJ3.jpg)

Engineer Enabling！
2000名超のエンジニアを支える
GitOps運用ノウハウを大公開
GitHub Actionsセルフホステッドランナーを
完全プライベートEKSで実現
2024/11/28
シンプレクス株式会社
© 2024 Simplex Inc.


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GJ8RNRDK7D.jpg)

目次
• 会社紹介、自己紹介
• 今回の視聴ターゲットおよびポイントについて
• システムの全体概要
• 完全プライベートなセキュリティ環境（Amazon EKS）
• 運用者目線での効率化（GitOps）
• ユーザ体験を重視した設計（Enabling）
• 今後の展望
• まとめ
1
© 2024 Simplex Inc.


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LJLKPKMP7R.jpg)

シンプレクス 会社紹介
金融事業領域を中心にテクノロジーパートナーとしてお客様の収益力強化、生産性向上を支援しています。
近年は官公庁、製造業といった非金融領域に対してもシステム・ソリューションを提供しています。
シンプレクス・ホールディングス
社名
シンプレクス株式会社
事業内容
• コンサルティングサービス
• システム開発
• 運用保守
• ASPサービス提供 等
代表取締役社長
金子 英樹
創業年月日
1997年9月16日
資本金
4,750 百万円（2024年3月31日現在）
連結従業員数
1,554名（2024年4月1日現在）
株主
シンプレクス・ホールディングス株式会社
テックファーム
本社所在地
東京都港区虎ノ門1-23-1 虎ノ門ヒルズ森タワー19階
1997年創業
（東証プライム：4373）
シンプレクス
クロスピア
ビジネスプラットフォームの構築
“IDC FinTech Rankings”に13年連続で選出
DXビジネス戦略の立案
コンサルファーム
2021年創設
AWSパートナーネットワークにおける認定
2
© 2024 Simplex Inc.


# Page. 4

![Page Image](https://bcdn.docswell.com/page/47M242Y27W.jpg)

登壇者紹介
DevOpsエンジニアとして様々なプロジェクトのCI/CD導入を推進し、開発者の生産性向上を支援。
社内の共通基盤としてのGitHubを始めとする、CI/CDに欠かせないサービスの運営を中心に活動中。
経歴
• インフラ領域のエンジニアとして下流から上流工程までを幅広く経験
• GitやCIツールが無い開発現場に0から環境を構築、4000行に及ぶビルド用シェルを解析し
Ansibleに置き換え、保守性を高めながらリリースサイクルを従来の3分の1まで圧縮
• 近年は社内コーポレートIT部門として、現場のプロジェクトにかかるセキュリティや
監査の負荷を軽減しつつ、ガバナンスを強化するためのCI/CD基盤施策に従事
西山健太郎
クロスフロンティア・ディビジョン
リード
3
© 2024 Simplex Inc.


# Page. 5

![Page Image](https://bcdn.docswell.com/page/P7RMWM95J9.jpg)

組織体制と自チームのご紹介
Mission :社内のプロジェクトが利用する開発用プラットフォームの維持/運用がメインミッション！
シンプレクス株式会社
Division1：リテール金融
コーポレートIT/情報セキュリティユニット
・情報システム、CSIRT/SOC
Division2：キャピタルマーケット
クラウドDXユニット
Division3：保険ソリューション
・クラウドインテグレーション事業
Division4：エンタープライズDX
金融インフラユニット
ERP全般/モーゲージバンク/SaaS
Employee Enabling Unit
DevSupport
・金融事業向け基盤サービス
インフラ＆DX推進グループ
運用中社内向けサービス一覧
主な業務
・ GitHub Enterprise Server
・左記サービス群の運用、保守、機能拡張
・ GitHub Enterprise Cloud
・開発プロジェクトのCI構築、導入支援
・ GitHub Actions セルフホステッドランナー
・利用者へのCIに関するサポート
・ Jenkins
・ Nexus3
など
4
© 2024 Simplex Inc.


# Page. 6

![Page Image](https://bcdn.docswell.com/page/PJXVPVQXEX.jpg)

今回の視聴ターゲットおよびポイントについて
主な視聴ターゲット層
説明Point
特にCI/CD共通基盤を運営している方
また、CI/CDツールを構築している開発者の方
弊社のノウハウを是非ご参考ください！
5
１
完全プライベートなセキュリティ環境
on Amazon EKS !
2
運用者目線での効率化
by GitOps !
3
ユーザ体験を重視した設計
for Enabling !
© 2024 Simplex Inc.


# Page. 7

![Page Image](https://bcdn.docswell.com/page/3JKQDQ99JD.jpg)

システムの全体概要
DevSupport
チーム発足以前
各々のプロジェクトが自前でSVNやGitLab、Jenkins等を構築していた。
一部有志メンバーでタスクフォースチームを結成、CI/CD環境の共通化に取り組む。
6
© 2024 Simplex Inc.


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LE3PRPW9J5.jpg)

システムの全体概要
DevSupport
チーム発足以前
2017年～
各々のプロジェクトが自前でSVNやGitLab、Jenkins等を構築していた。
一部有志メンバーでタスクフォースチームを結成、CI/CD環境の共通化に取り組む。
GitHub Enterprise Server（オンプレ）
ビルド環境であるサーバをプロジェクト毎に
およびJenkinsを共通基盤として提供開始
都度申し込みベースで追加作業を実施
7
© 2024 Simplex Inc.


# Page. 9

![Page Image](https://bcdn.docswell.com/page/8EDLYLK8JG.jpg)

システムの全体概要
DevSupport
チーム発足以前
2017年～
各々のプロジェクトが自前でSVNやGitLab、Jenkins等を構築していた。
一部有志メンバーでタスクフォースチームを結成、CI/CD環境の共通化に取り組む。
GitHub Enterprise Server（オンプレ）
ビルド環境であるサーバをプロジェクト毎に
およびJenkinsを共通基盤として提供開始
都度申し込みベースで追加作業を実施
GitHub Enterprise Cloud と併せて
2023.8月～
GitHub Actions
（セルフホステッドランナー）
リポジトリに
WF定義ファイルを配置するだけ
で利用可能
の提供を開始！
8
© 2024 Simplex Inc.


# Page. 10

![Page Image](https://bcdn.docswell.com/page/V7P262KW78.jpg)

システムの全体概要
DevSupport
チーム発足以前
2017年～
各々のプロジェクトが自前でSVNやGitLab、Jenkins等を構築していた。
一部有志メンバーでタスクフォースチームを結成、CI/CD環境の共通化に取り組む。
GitHub Enterprise Server（オンプレ）
ビルド環境であるサーバをプロジェクト毎に
およびJenkinsを共通基盤として提供開始
都度申し込みベースで追加作業を実施
GitHub Enterprise Cloud と併せて
2023.8月～
GitHub Actions
（セルフホステッドランナー）
リポジトリに
WF定義ファイルを配置するだけ
で利用可能
の提供を開始！
CI利用までのハードルが下がった！
9
© 2024 Simplex Inc.


# Page. 11

![Page Image](https://bcdn.docswell.com/page/2JVD3DV9JQ.jpg)

システムの全体概要
従来
Jenkins 管理サーバ
個々のサーバを
メンテナンス
申請ベースで
ビルドサーバを追加
プロジェクト毎のビルドサーバが常駐
（100台以上）
10
© 2024 Simplex Inc.


# Page. 12

![Page Image](https://bcdn.docswell.com/page/5EGY3YL4EL.jpg)

システムの全体概要
従来
現在
Jenkins 管理サーバ
セルフホステッドランナー
on
Kubernetes
個々のサーバを
メンテナンス
申請ベースで
ビルドサーバを追加
GitHubが公式提供する
Actions Runner Cotroller
でビルド環境（ランナー）が
必要に応じてスケールする
リソースの効率的な利用！
プロジェクト毎のビルドサーバが常駐
（100台以上）
メンテナンスコスト大幅減！
11
© 2024 Simplex Inc.


# Page. 13

![Page Image](https://bcdn.docswell.com/page/4JQM5MYR7P.jpg)

システムの全体概要
一般的な利用
GitHub Actions, GitLab Runner など
SaaS各社のホステッドランナー
各社がホストする
ランナー上で実行
各社のネットワーク環境に依存するため
自社の通信統制を効かせることができない
12
© 2024 Simplex Inc.


# Page. 14

![Page Image](https://bcdn.docswell.com/page/K74V9VWQJ1.jpg)

システムの全体概要
一般的な利用
弊社の環境
GitHub Actions, GitLab Runner など
SaaS各社のホステッドランナー
自社環境に構築するビルド環境である
セルフホステッドランナー
各社がホストする
ランナー上で実行
弊社
セキュリティポリシー
各社のネットワーク環境に依存するため
自社の通信統制を効かせることができない
自社内のセキュアな環境を利用！
13
© 2024 Simplex Inc.


# Page. 15

![Page Image](https://bcdn.docswell.com/page/LJ13K3YL7G.jpg)

完全プライベートなセキュリティ環境
① プロキシ+SSLインスペクションによる
セキュアな社内環境
② Amazon EKSクラスターの
各リソースをプロキシ経由にする
ビルド環境も社内ネットワークと同等の
各種リソースをプロキシを経由させる
セキュリティ基準を満たす
ためには様々な考慮が必要
14
© 2024 Simplex Inc.


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GJWPDPGQ72.jpg)

完全プライベートなセキュリティ環境
① プロキシ+SSLインスペクションによるセキュアな社内環境
Point
• 社内環境からインターネットにアクセスする際は、プロキシサーバを経由。全トラフィックを検査してセキュリティ担保。
弊社のセキュリティポリシーの基本：
社内環境
SSLインスペクション
プロキシ
サーバー
利用者
インターネット
FWでのアクセス制御
15
© 2024 Simplex Inc.


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4EZKGKL3E3.jpg)

完全プライベートなセキュリティ環境
① プロキシ+SSLインスペクションによるセキュアな社内環境
Point
• 社内環境からインターネットにアクセスする際は、プロキシサーバを経由。全トラフィックを検査してセキュリティ担保。
• インターネットGWを持たない、プライベートなVPCを社内環境と接続。最小限のポリシーでプロジェクトに提供。
弊社のセキュリティポリシーの基本：
社内ネットワークの延長として繋がるVPC：
社内環境
データセンター
VPC
Internet gateway
SSLインスペクション
プロキシ
サーバー
Virtual private
cloud (VPC)
インターネット
社内ネットワーク
利用者
FWでのアクセス制御
AWS Direct Connect
16
© 2024 Simplex Inc.


# Page. 18

![Page Image](https://bcdn.docswell.com/page/Y76QYQWZ7V.jpg)

完全プライベートなセキュリティ環境
完全プライベートEKSとは
Amazon EKSで管理されている EC2 インスタンスにプライベート IP アドレスのみを割り当てることにより
マネージドノードグループで完全なプライベートネットワーキングを行うこと
参考： https://aws.amazon.com/jp/about-aws/whats-new/2020/04/amazon-eks-managed-node-groups-allow-fully-private-cluster-networking/
Amazon EKS
Kubernetes APIサーバへの
インターネットアクセスが不可
VPC
Amazon S3
Private subnet
Private subnet
Amazon CloudWatch
17
© 2024 Simplex Inc.


# Page. 19

![Page Image](https://bcdn.docswell.com/page/G75RGRM9E4.jpg)

完全プライベートなセキュリティ環境
② Amazon EKSクラスターの各リソースをプロキシ経由にする
Point
• セキュリティポリシーを満たしつつ、コンテナイメージやCIで利用するライブラリ等の持ち込み管理の手間を省くことができる。
• 各種Podやノードのcontainerd, kubelet, yum等にプロキシの環境変数、SSLインスペクションのCA証明書を設定。
インターネット
Amazon EKS
データセンター
VPC
Private subnet
AWS Direct Connect
EC2 instance contents (Data Plane)
社内ネットワーク
simplex-runner actions-runnercontroller
cluster
autoscaler
aws-node
18
プロキシ
サーバー
© 2024 Simplex Inc.


# Page. 20

![Page Image](https://bcdn.docswell.com/page/9J2DYD95JR.jpg)

システムの全体概要
利用者はGitHubの操作さえできれば、セキュアなビルド環境をすぐに利用できる！
GitHub Enterprise Cloud
Simplexテナント
simplex-runners
社内環境
Active
Organization A
repository
Maven Central
Docker Hub
etc …
Active
Actions
Queue
Active
Organization B
Idle
repository
Actions
Queue
プロキシ
サーバー
Idle
Organization C
Idle
Actions
Queue
…
repository
インターネット
AWS
Azure
etc …
…
テナントのIP制限で
ランナーの登録自体も
社内環境に限定
Blue Cluster Green Cluster
19
© 2024 Simplex Inc.


# Page. 21

![Page Image](https://bcdn.docswell.com/page/DEY2G246EM.jpg)

システムの全体概要
利用者はGitHubの操作さえできれば、セキュアなビルド環境をすぐに利用できる！
GitHub Enterprise Cloud
Simplexテナント
simplex-runners
社内環境
Active
Organization A
repository
Maven Central
Docker Hub
etc …
Active
Actions
Queue
Active
Organization B
Idle
repository
Actions
Queue
プロキシ
サーバー
Idle
Organization C
Idle
Actions
Queue
…
repository
インターネット
AWS
Azure
etc …
…
社内NW管理下でのCI/CD
テナントのIP制限で
ランナーの登録自体も
社内環境に限定
Blue Cluster Green Cluster
20
© 2024 Simplex Inc.


# Page. 22

![Page Image](https://bcdn.docswell.com/page/VJN8G86178.jpg)

完全プライベートなセキュリティ環境
くろう Point：
• プロキシ設定で試行錯誤
Image
Docker Hub
Amazon ECR
etc …
HTTPS_PROXY
update-ca-trust
Instances
Instances
User data
cloud-init-per instance proxy_config cat &lt;&lt; EOF &gt;&gt;
/etc/environment
http_proxy=http://$PROXY
https_proxy=http://$PROXY
HTTP_PROXY=http://$PROXY
HTTPS_PROXY=http://$PROXY
EOF
Simplex
Runner
Cluster
Autoscaler
ARC
Manager
コンテナイメージを
インターネット経由でPull
21
© 2024 Simplex Inc.


# Page. 23

![Page Image](https://bcdn.docswell.com/page/YE9KWKLYE3.jpg)

完全プライベートなセキュリティ環境
くろう Point：
• プロキシ設定で試行錯誤
Image
Amazon S3
Instances
User data
HTTPS_PROXY
update-ca-trust
NO_PROXY
Instances
cloud-init-per instance proxy_config cat &lt;&lt; EOF &gt;&gt;
/etc/environment
http_proxy=http://$PROXY
https_proxy=http://$PROXY
HTTP_PROXY=http://$PROXY
HTTPS_PROXY=http://$PROXY
no_proxy=$VPC_CIDR,localhost,602401143452.dkr.ecr.apnortheast-1.amazonaws.com, …
EOF
aws-node
（vpc-cni）
coredns
kube-proxy
コンテナイメージを
VPCエンドポイント経由でPull
22
© 2024 Simplex Inc.


# Page. 24

![Page Image](https://bcdn.docswell.com/page/GE8RNRXKJD.jpg)

完全プライベートなセキュリティ環境
くろう Point：
• プロキシ設定で試行錯誤
ConfigMap経由で
プロキシおよび
CA証明書設定
containers:
- name: runner
image: &lt;ランナーイメージ&gt;:v1.1.0
volumeMounts:
- name: ca-configmap
mountPath: /etc/ssl/certs/ca.pem
subPath: ca.pem
envFrom:
- configMapRef:
name: proxy-environment-variables
volumes:
- name: ca-configmap
configMap:
name: ca-configmap
Simplex
Runner
Cluster
Autoscaler
ARC
Manager
各Podがプロキシ経由で
インターネットに出る
23
© 2024 Simplex Inc.


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LELKPK8PJR.jpg)

運用者目線での効率化
① GitOpsでのランナーデプロイ
② Blue/Greenデプロイメントによる
安全なクラスターアップグレード
運用者の作業効率を上げるだけでなく
認知負荷の軽減にも繋がる
ダウンタイムも0になり
利用ユーザにもメリットがある
24
© 2024 Simplex Inc.


# Page. 26

![Page Image](https://bcdn.docswell.com/page/4JM24262JW.jpg)

運用者目線での効率化
CIOpsの概要：
GitOpsの概要：
CIとCDで権限を分離
Git上のマニフェストと同期
CIの延長としてCDを実施
CIツール側に権限を集約
code
repository
repository
CI
CI/CD
CI
Credential
25
manifest
repository
Credential
© 2024 Simplex Inc.


# Page. 27

![Page Image](https://bcdn.docswell.com/page/PJRMWMP5E9.jpg)

運用者目線での効率化
CIOpsの概要：
GitOpsの概要：
CIとCDで権限を分離
Git上のマニフェストと同期
CIの延長としてCDを実施
CIツール側に権限を集約
code
repository
repository
CI
CI/CD
CI
Credential
manifest
repository
Credential
GitOps
Gitを使ってシステムの状態を管理することで、システムの状態をGitの状態と一致させることを目指す運用方法。
Infrastructure as Codeの考え方を応用したもの。代表的なツールはArgo CD
26
© 2024 Simplex Inc.


# Page. 28

![Page Image](https://bcdn.docswell.com/page/PEXVPV3X7X.jpg)

運用者目線での効率化
① GitOpsによるランナーのアップデート
code
repository
PR/レビュー
PRマージ
main
27
© 2024 Simplex Inc.


# Page. 29

![Page Image](https://bcdn.docswell.com/page/3EKQDQY9ED.jpg)

運用者目線での効率化
① GitOpsによるランナーのアップデート
PR/レビュー
code
repository
CI
manifest
repository
PRマージ
Image build
main
main
Trivy scan
Image push
Git push
28
© 2024 Simplex Inc.


# Page. 30

![Page Image](https://bcdn.docswell.com/page/L73PRP99E5.jpg)

運用者目線での効率化
① GitOpsによるランナーのアップデート
PR/レビュー
code
repository
CI
manifest
repository
PRマージ
Image build
main
main
Trivy scan
Image push
manifest
repository
Git push
PR/レビュー
PRマージ
prod
29
© 2024 Simplex Inc.


# Page. 31

![Page Image](https://bcdn.docswell.com/page/87DLYLG8EG.jpg)

運用者目線での効率化
① GitOpsによるランナーのアップデート
PR/レビュー
code
repository
CI
manifest
repository
PRマージ
Image build
main
main
Trivy scan
マニフェストリポジトリの
prodブランチの情報を
本番環境のArgo CDが同期
Image push
manifest
repository
Git push
PR/レビュー
Credential
PRマージ
prod
30
© 2024 Simplex Inc.


# Page. 32

![Page Image](https://bcdn.docswell.com/page/VJP2623WJ8.jpg)

運用者目線での効率化
① GitOpsによるランナーのアップデート
PR/レビュー
code
repository
CI
manifest
repository
PRマージ
Image build
main
main
Trivy scan
マニフェストリポジトリの
prodブランチの情報を
本番環境のArgo CDが同期
Image push
manifest
repository
Git push
PR/レビュー
Credential
PRマージ
prod
Point
• ランナーの更新作業がGit操作で完結。運用者の技術ハードルを下げることができる
• 変更証跡がGitのコミット履歴として残るため、トラブル時の原因調査等が容易
31
© 2024 Simplex Inc.


# Page. 33

![Page Image](https://bcdn.docswell.com/page/2EVD3D49EQ.jpg)

運用者目線での効率化
① GitOpsによるランナーのアップデート
PR/レビュー
code
repository
CI
manifest
repository
PRマージ
Image build
main
main
Trivy scan
マニフェストリポジトリの
prodブランチの情報を
本番環境のArgo CDが同期
Image push
manifest
repository
Git push
PR/レビュー
Credential
PRマージ
prod
一方デメリットも…（後述）
Point
• ランナーの更新作業がGit操作で完結。運用者の技術ハードルを下げることができる
• 変更証跡がGitのコミット履歴として残るため、トラブル時の原因調査等が容易
32
© 2024 Simplex Inc.


# Page. 34

![Page Image](https://bcdn.docswell.com/page/57GY3Y147L.jpg)

運用者目線での効率化
② Blue/Greenデプロイメントによる安全なクラスターアップグレード
Point
• 障害発生時やアップグレード作業のコンチプランとして前バージョンのクラスタを活用できる
• ダウンタイム0でのアップグレードが可能。平日日中でもユーザ影響無く実施でき、運用負荷も軽減
GitHub Enterprise Cloud
Simplexテナント
Ex. Kubernetes バージョン 1.29
Active
並行稼働して新クラスタが
問題無く稼働できたら
ノードサイズを0にする
Organization A
Idle
repository
Blue Cluster
Actions
Queue
Ex. Kubernetes バージョン 1.30
Organization B
bastion
Active
repository
Actions
Queue
Idle
33
Green Cluster
新クラスタ側で問題が発生したら
旧クラスタのノードサイズを増やし
新クラスタ側で原因調査等進める
© 2024 Simplex Inc.


# Page. 35

![Page Image](https://bcdn.docswell.com/page/4EQM5MDRJP.jpg)

運用者目線での効率化
くふう Point：
• ラベル変更パッチによって、ランナーPodが強制終了することなく安全に置き換わっていく
GitHub Enterprise Cloud
Simplexテナント
Ex. Kubernetes バージョン 1.29
simplex-runner
Organization A
repository
simplex-runner
Actions
Queue
Blue Cluster
Ex. Kubernetes バージョン 1.30
Organization B
simplex-runner
repository
Actions
Queue
simplex-runner
Green Cluster
jobs:
build-image:
runs-on: simplex-runner
34
© 2024 Simplex Inc.


# Page. 36

![Page Image](https://bcdn.docswell.com/page/KJ4V9VZQE1.jpg)

運用者目線での効率化
くふう Point：
• ラベル変更パッチによって、ランナーPodが強制終了することなく安全に置き換わっていく
GitHub Enterprise Cloud
Simplexテナント
Ex. Kubernetes バージョン 1.29
simplex-runner
Organization A
repository
simplex-runner
Actions
Queue
Blue Cluster
Ex. Kubernetes バージョン 1.30
Organization B
simplex-runner
repository
jobs:
build-image:
runs-on: simplex-runner
Actions
Queue
simplex-runner
Green Cluster
kubectl patch rdeploy simplex-runner -p
&#039;{&quot;spec&quot;:{&quot;template&quot;:{&quot;spec&quot;:{&quot;labels&quot;:
[“simplex-runner-disabled&quot;]}}}}&#039; --type merge
35
© 2024 Simplex Inc.


# Page. 37

![Page Image](https://bcdn.docswell.com/page/LE13K3RLJG.jpg)

運用者目線での効率化
くふう Point：
• ラベル変更パッチによって、ランナーPodが強制終了することなく安全に置き換わっていく
GitHub Enterprise Cloud
Simplexテナント
Ex. Kubernetes バージョン 1.29
simplex-runner-disable
Organization A
repository
simplex-runner
Actions
Queue
Blue Cluster
Ex. Kubernetes バージョン 1.30
Organization B
simplex-runner
repository
jobs:
build-image:
runs-on: simplex-runner
Actions
Queue
simplex-runner
Green Cluster
kubectl patch rdeploy simplex-runner -p
&#039;{&quot;spec&quot;:{&quot;template&quot;:{&quot;spec&quot;:{&quot;labels&quot;:
[“simplex-runner-disabled&quot;]}}}}&#039; --type merge
36
© 2024 Simplex Inc.


# Page. 38

![Page Image](https://bcdn.docswell.com/page/GEWPDP1QJ2.jpg)

運用者目線での効率化
くふう Point：
• ラベル変更パッチによって、ランナーPodが強制終了することなく安全に置き換わっていく
GitHub Enterprise Cloud
Simplexテナント
Ex. Kubernetes バージョン 1.29
simplex-runner-disable
Organization A
simplex-runner-disable
repository
Blue Cluster
Actions
Queue
Ex. Kubernetes バージョン 1.30
Organization B
simplex-runner
repository
jobs:
build-image:
runs-on: simplex-runner
Actions
Queue
simplex-runner
Green Cluster
kubectl patch rdeploy simplex-runner -p
&#039;{&quot;spec&quot;:{&quot;template&quot;:{&quot;spec&quot;:{&quot;labels&quot;:
[“simplex-runner-disabled&quot;]}}}}&#039; --type merge
37
© 2024 Simplex Inc.


# Page. 39

![Page Image](https://bcdn.docswell.com/page/47ZKGKP373.jpg)

運用者目線での効率化
くろう Point：
• Argo CDによってパッチ適用がリソースの変更として検出され、元のラベルに戻されてしまうので
クラスタ切り替え時にSyncPolicyを修正する必要がある
Manifest repository
Ex. Kubernetes バージョン 1.29
simplex-runner
Sync
Sync
Cluster A
SimplexRunner.yml
Blue Cluster
labels:
- simplex-runner
simplex-runner
Ex. Kubernetes バージョン 1.30
simplex-runner
Green Cluster
Sync
Sync
Cluster B
SimplexRunner.yml
labels:
- simplex-runner
simplex-runner
38
© 2024 Simplex Inc.


# Page. 40

![Page Image](https://bcdn.docswell.com/page/YJ6QYQMZJV.jpg)

運用者目線での効率化
くろう Point：
• Argo CDによってパッチ適用がリソースの変更として検出され、元のラベルに戻されてしまうので
クラスタ切り替え時にSyncPolicyを修正する必要がある
Manifest repository
Ex. Kubernetes バージョン 1.29
simplex-runner-disable
Un sync
Sync
Cluster A
SimplexRunner.yml
Blue Cluster
simplex-runner-disable
syncPolicy:
automated:
selfHeal: false
Ex. Kubernetes バージョン 1.30
simplex-runner
Green Cluster
Sync
Sync
Cluster B
SimplexRunner.yml
simplex-runner
39
syncPolicy:
automated:
selfHeal: true
© 2024 Simplex Inc.


# Page. 41

![Page Image](https://bcdn.docswell.com/page/GJ5RGRZ974.jpg)

運用者目線での効率化
メリット：
• リリース運用が簡略化される
• 切り戻し環境があることで、安心安全な
定期アップグレードができる
Manifest repository
Cluster A
SimplexRunner.yml
Blue Cluster
Cluster B
SimplexRunner.yml
Green Cluster
40
© 2024 Simplex Inc.


# Page. 42

![Page Image](https://bcdn.docswell.com/page/LE3PRP92J5.jpg)

運用者目線での効率化
メリット：
デメリット：
• リリース運用が簡略化される
• Blueクラスタは待機系として継続させるため
コントロールプレーンのコストが余計にかかる
• 切り戻し環境があることで、安心安全な
• 検証環境も合わせると合計4クラスタの
定期アップグレードができる
保守/管理が必要となる
Manifest repository
Prod
Dev
Blue Cluster
Blue Cluster
Green Cluster
Green Cluster
Cluster A
SimplexRunner.yml
Blue Cluster
Cluster B
SimplexRunner.yml
Green Cluster
41
© 2024 Simplex Inc.


# Page. 43

![Page Image](https://bcdn.docswell.com/page/8EDLYLG6JG.jpg)

ユーザ体験を重視した設計
① 高速なCIを支援するための
スペックチューニング
② 認知負荷を軽減するための
カスタムアクションサポート
GitHubホステッドの標準ランナーと
GitHub Actionsならではの
ジョブの共通処理化
使用感が大きく乖離しないように意識
42
© 2024 Simplex Inc.


# Page. 44

![Page Image](https://bcdn.docswell.com/page/V7P2628Z78.jpg)

ユーザ体験を重視した設計
従来
JOB
1
JOB
2
Organization A
JOB
3
JOB
4
Organization B
1サーバのリソースを複数JOBで共有
他JOBによってリソースが逼迫したり
ディスクフルやOOMに繋がることも…
43
© 2024 Simplex Inc.


# Page. 45

![Page Image](https://bcdn.docswell.com/page/2JVD3DNMJQ.jpg)

ユーザ体験を重視した設計
現在
従来
JOB
1
JOB
2
Organization A
JOB
3
JOB
4
JOB
1
JOB
2
JOB
3
JOB
4
Organization B
1サーバのリソースを複数JOBで共有
他JOBによってリソースが逼迫したり
ディスクフルやOOMに繋がることも…
PodのRequests/Limitの設計により
他JOBの影響を受けない均一なスペック
エフェメラルなランナーで安定した挙動
44
© 2024 Simplex Inc.


# Page. 46

![Page Image](https://bcdn.docswell.com/page/5EGY3YKXEL.jpg)

ユーザ体験を重視した設計
① 高速なCIを支援するためのスペックチューニング
Point
• CPUにはRequestのみを設定することで、リソースを確保しつつ、空きがあれば最大限活用する
• メモリにはRequest/Limitを設定することで、EvictやOOMによるPod強制終了を防いでいる
resources:
limits:
memory: 7Gi
requests:
memory: 7Gi
cpu: &#039;2&#039;
resources:
limits:
memory: 7Gi
requests:
memory: 7Gi
cpu: &#039;2&#039;
resources:
limits:
memory: 7Gi
requests:
memory: 7Gi
cpu: &#039;2&#039;
EC2 instance contents (Data Plane)
45
© 2024 Simplex Inc.


# Page. 47

![Page Image](https://bcdn.docswell.com/page/4JQM5MN57P.jpg)

ユーザ体験を重視した設計
① 高速なCIを支援するためのスペックチューニング
Point
• CPUにはRequestのみを設定することで、リソースを確保しつつ、空きがあれば最大限活用する
• メモリにはRequest/Limitを設定することで、EvictやOOMによるPod強制終了を防いでいる
46
© 2024 Simplex Inc.


# Page. 48

![Page Image](https://bcdn.docswell.com/page/K74V9VGVJ1.jpg)

ユーザ体験を重視した設計
くろう Point ：
• 様々なアプリケーションのCI/CDが動作するので、スペックを確定しづらい
• 特にメモリに関してはOOMを回避するため、Limitの設定が必須だった
Try① 数パターンのスペックの
ランナーを準備
simplex-runner
simplex-runner-medium
simplex-runner-large
大きいスペックのランナーばかり
使われてしまう
47
© 2024 Simplex Inc.


# Page. 49

![Page Image](https://bcdn.docswell.com/page/LJ13K3D47G.jpg)

ユーザ体験を重視した設計
くろう Point ：
• 様々なアプリケーションのCI/CDが動作するので、スペックを確定しづらい
• 特にメモリに関してはOOMを回避するため、Limitの設定が必須だった
Try① 数パターンのスペックの
ランナーを準備
Try② OOM報告が上がる度に
メモリLimitを増やす
simplex-runner
simplex-runner-medium
際限なくコストがあがってしまったり
simplex-runner-large
大きいスペックのランナーばかり
使われてしまう
JOB自体のメモリリークや
非効率な使い方を
改善する機会がなくなってしまう
48
© 2024 Simplex Inc.


# Page. 50

![Page Image](https://bcdn.docswell.com/page/GJWPDPYZ72.jpg)

ユーザ体験を重視した設計
くろう Point ：
• 様々なアプリケーションのCI/CDが動作するので、スペックを確定しづらい
• 特にメモリに関してはOOMを回避するため、Limitの設定が必須だった
Try① 数パターンのスペックの
ランナーを準備
Try② OOM報告が上がる度に
メモリLimitを増やす
Try③ そもそもメモリLimitなくす
simplex-runner
JOB
simplex-runner-medium
際限なくコストがあがってしまったり
JOB
simplex-runner-large
大きいスペックのランナーばかり
使われてしまう
JOB自体のメモリリークや
非効率な使い方を
改善する機会がなくなってしまう
49
同一ノードで動いている
他のJOBが強制終了
してしまう可能性がある
© 2024 Simplex Inc.


# Page. 51

![Page Image](https://bcdn.docswell.com/page/4EZKGKXLE3.jpg)

ユーザ体験を重視した設計
くふう Point：
• PodのQoS（Quality of Service）クラスを活用し、2種類のランナーを準備
• メモリ起因の強制終了の切り分けや、優先的なKillを許容できる場合に利用してもらう
simplex-runner
resources:
limits:
memory: 7Gi
requests:
memory: 7Gi
cpu: &#039;2&#039;
simplex-runner-besteffort
resources: 設定なし
ノードのリソースに空きがあれば
最大限使用できる
50
© 2024 Simplex Inc.


# Page. 52

![Page Image](https://bcdn.docswell.com/page/Y76QYQ4M7V.jpg)

ユーザ体験を重視した設計
くふう Point：
• PodのQoS（Quality of Service）クラスを活用し、2種類のランナーを準備
• メモリ起因の強制終了の切り分けや、優先的なKillを許容できる場合に利用してもらう
simplex-runner
resources:
limits:
memory: 7Gi
requests:
memory: 7Gi
cpu: &#039;2&#039;
クラス
削除優先度
割当て方法
3
全てのコンテナのメモリおよび
CPUにRequestとLimitが
等しい値で設定されている
Burstable
2
少なくとも1つのコンテナに
メモリまたはCPUのRequestか
Limitが設定されている
BestEffort
1
Request/Limit
何も設定しない
Guaranteed
simplex-runner-besteffort
resources: 設定なし
ノードのリソースに空きがあれば
最大限使用できる
51
© 2024 Simplex Inc.


# Page. 53

![Page Image](https://bcdn.docswell.com/page/G75RGRQQE4.jpg)

ユーザ体験を重視した設計
くふう Point：
• ビルド環境にキャッシュが残らない、公式のキャッシュ機構（actions/cache）もネットワーク距離があり速度が出
づらい課題に対し、プライベートネットワーク内のNexus3、Amazon S3を活用することで速度を向上している
Runner VPC
データセンター
Maven Central
Docker Hub
etc …
52
© 2024 Simplex Inc.


# Page. 54

![Page Image](https://bcdn.docswell.com/page/9J2DYDPWJR.jpg)

ユーザ体験を重視した設計
くふう Point：
• ビルド環境にキャッシュが残らない、公式のキャッシュ機構（actions/cache）もネットワーク距離があり速度が出
づらい課題に対し、プライベートネットワーク内のNexus3、Amazon S3を活用することで速度を向上している
Runner VPC
キャッシュがあれば
VPC内で完結
データセンター
Runner VPC
Nexus3 VPC
Proxy repo
データセンター
Maven Central
Docker Hub
etc …
Maven Central
Docker Hub
etc …
53
キャッシュ無ければ
インターネット経由でDL
© 2024 Simplex Inc.


# Page. 55

![Page Image](https://bcdn.docswell.com/page/DEY2G259EM.jpg)

ユーザ体験を重視した設計
② 認知負荷を軽減するためのカスタムアクションサポート
社内環境
プロキシ
サーバー
インターネット
CI
セキュアである一方
ビルド環境のプロキシ+CA証明書
の設定がハードルになりがち
Apache Maven /Gradle
npm / Yarn
etc…
54
© 2024 Simplex Inc.


# Page. 56

![Page Image](https://bcdn.docswell.com/page/VJN8G8ND78.jpg)

ユーザ体験を重視した設計
② 認知負荷を軽減するためのカスタムアクションサポート
社内環境
Cache
プロキシ
サーバー
プロキシ
サーバー
インターネット
CI
CI
セキュアである一方
ビルド環境のプロキシ+CA証明書
の設定がハードルになりがち
Apache Maven /Gradle
npm / Yarn
etc…
社内製カスタム
アクション
55
Actionsでよく使われる
処理はカスタムアクション
で共通化
© 2024 Simplex Inc.


# Page. 57

![Page Image](https://bcdn.docswell.com/page/YE9KWKR8E3.jpg)

ユーザ体験を重視した設計
② 認知負荷を軽減するためのカスタムアクションサポート
社内環境
Cache
プロキシ
サーバー
プロキシ
サーバー
インターネット
CI
CI
セキュアである一方
ビルド環境のプロキシ+CA証明書
の設定がハードルになりがち
Apache Maven /Gradle
npm / Yarn
etc…
社内製カスタム
アクション
Actionsでよく使われる
処理はカスタムアクション
で共通化
Point
• プロキシやCA証明書の設定方法がビルドツールによって異なる手間を、カスタムアクションとして整備することで改善
• 社内専用のキャッシュ基盤活用のためのカスタムアクションを準備して、ユーザが意識せず利用可能となる
56
© 2024 Simplex Inc.


# Page. 58

![Page Image](https://bcdn.docswell.com/page/GE8RNRWZJD.jpg)

今後の展望
利用者自身がカスタムアクションを
内製できるルール/仕組みを整備
社内製カスタム
アクション
利用者同士が自律的に
ノウハウを共有する文化を醸成
57
© 2024 Simplex Inc.


# Page. 59

![Page Image](https://bcdn.docswell.com/page/LELKPKN1JR.jpg)

今後の展望
利用者自身がカスタムアクションを
内製できるルール/仕組みを整備
ランナーのメトリクスを分析し
CIの改善ポイントを提案する仕組みを整備
社内製カスタム
アクション
PR
利用者同士が自律的に
ノウハウを共有する文化を醸成
PR
PR
PR
より高速かつ効果的なCIを提案し
更なる効率化を図る
58
© 2024 Simplex Inc.


# Page. 60

![Page Image](https://bcdn.docswell.com/page/4JM242X5JW.jpg)

まとめ
１
会社にあるセキュリティ強化の仕組みの延長で
完全プライベートなセキュリティ環境
on Amazon EKS !
セルフホステッドを構築するのがBest！
59
© 2024 Simplex Inc.


# Page. 61

![Page Image](https://bcdn.docswell.com/page/PJRMWMNZE9.jpg)

まとめ
１
完全プライベートなセキュリティ環境
on Amazon EKS !
会社にあるセキュリティ強化の仕組みの延長で
2
運用者目線での効率化
by GitOps !
トレードオフな点が多くあるが、多少コストかけても
セルフホステッドを構築するのがBest！
安全に運用保守できる仕組みを整えたい！
60
© 2024 Simplex Inc.


# Page. 62

![Page Image](https://bcdn.docswell.com/page/PEXVPVN17X.jpg)

まとめ
１
完全プライベートなセキュリティ環境
on Amazon EKS !
会社にあるセキュリティ強化の仕組みの延長で
2
運用者目線での効率化
by GitOps !
トレードオフな点が多くあるが、多少コストかけても
3
ユーザ体験を重視した設計
for Enabling !
基盤を作って終わりではなく、より開発者が
セルフホステッドを構築するのがBest！
安全に運用保守できる仕組みを整えたい！
開発に注力するための施策をうつのが大事！
61
© 2024 Simplex Inc.


# Page. 63

![Page Image](https://bcdn.docswell.com/page/3EKQDQNMED.jpg)

まとめ
１
完全プライベートなセキュリティ環境
on Amazon EKS !
会社にあるセキュリティ強化の仕組みの延長で
2
運用者目線での効率化
by GitOps !
トレードオフな点が多くあるが、多少コストかけても
3
ユーザ体験を重視した設計
for Enabling !
基盤を作って終わりではなく、より開発者が
セルフホステッドを構築するのがBest！
安全に運用保守できる仕組みを整えたい！
開発に注力するための施策をうつのが大事！
安全で効率的に、安定して運用できる基盤が整ったら
そこから捻出した時間を、よりEnablingな活動に注力していきましょう！
62
© 2024 Simplex Inc.


# Page. 64

![Page Image](https://bcdn.docswell.com/page/L73PRPV2E5.jpg)

Thank You ！
63
© 2024 Simplex Inc.


