Github Actions をフル活用しあらゆる作業を自動化
ポート株式会社 / 簗田信緯
メンバー / SRE / 従業員規模: 501名〜1,000名 / エンジニア組織: 51名〜100名
ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|
51名〜100名 | 2023年4月 | B to B B to C |
ツールの利用規模 | 51名〜100名 |
---|---|
ツールの利用開始時期 | 2023年4月 |
事業形態 | B to B B to C |
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
- 利用ツール増加に伴う管理コストの肥大化
どのような状態を目指していたか
- ツールの集約化
- コスト削減
比較検討したサービス
- CircleCI
比較した軸
- コスト
- エコシステム
- ツールの柔軟性
- Github との親和性
選定理由
- Github との親和性
- Github Enterprise 契約に伴う Github Actions 無料枠の拡大
導入の成果
改善したかった課題はどれくらい解決されたか
Github Actions の様々な機能を活用することで、外部ツールに依存することなく様々なユースケースに対応することができた。
どのような成果が得られたか
Github との親和性が非常に高く当初予定していた CI/CD の自動化だけではなく、各種開発フローの自動化やGithubへの操作をトリガーとした外部サービスの操作等、様々な種類の自動化を実現することができ、開発者のマニュアルオペレーションを削減に大きく貢献できました。
導入時の苦労・悩み
- Github Actions 導入前に活用していた CI ツールから Github Actions への書き直し
- テスト並列化の最適化
導入に向けた社内への説明
上長・チームへの説明
Github Enterprise 契約に伴う Github Actions 無料枠の拡大、依存外部サービスの低減、Github との親和性等、導入に伴うメリットは既に上長・チームも把握しておりスムーズに導入することができました。
活用方法
- 各チームで毎日実施されるCI/CD
- 日々の開発フローの自動化(リリースPRの作成・PRのAssignee の自動設定等)
- Github への Push、PR への操作等を契機とした外部ツール連携の自動化
よく使う機能
- reusable workflow
- composite actions
- Github Environments(本番・ステージングなどの各環境毎で worklfow を利用可能にする機能、workflow の承認機能等)
- Control the concurrency of workflows and jobs (workflowの同時実行制御)
- matrix strategy(Jobの並列化)
- scheduled workflow (定期実行)
ツールの良い点
- workflow が書きやすい
- エコシステムが充実している
- セキュリティ要件の解決に self hosted runner が利用できる
- 機能が豊富でやり方次第で様々なユースケースに対応した workflow を作成することができる
ツールの課題点
- circleci の test splitting 機能がないため自前で用意する必要がある
- workflow の実行権限を柔軟に制御する方法が提供されていない(github environments 等で実現することは可能)
- workflow の ローカルデバッグが若干むずかしい(act などのツールは存在する)
- 定期実行で指定した時刻から最大 30 分程度遅れる場合がある
- 定期実行の頻度は 5 分間隔が限界で、それ以上の高頻度の定期実行は起動に遅れが発生するなど等で推奨されていない
ツールを検討されている方へ
開発フローにおける様々なオペレーションの自動化や、ワークフローの共通化による各プロジェクトへの展開などにより多くの開発体験向上を実現することができました。 サードパーティ actions も利用することでやれることが格段に広がるのですが、セキュリティ観点で気をつけるべき事項がいくつかあるので、Github 公式ドキュメントの Security hardening for GitHub Actions を参考に実装していくのがおすすめです!
今後の展望
主にテストやビルドによる CI 実行時間が Github Actions のコストの大部分を占めており改善の余地が十分にあるため、Arm化や CI 最適化を実践していきたいです。
ポート株式会社 / 簗田信緯
メンバー / SRE / 従業員規模: 501名〜1,000名 / エンジニア組織: 51名〜100名
よく見られているレビュー
ポート株式会社 / 簗田信緯
メンバー / SRE / 従業員規模: 501名〜1,000名 / エンジニア組織: 51名〜100名