Upgrade to Pro — share decks privately, control downloads, hide ads and more …

有志で組織横串に挑む - GitLab CI Runnerカイゼン -

bbrfkr
October 10, 2021

有志で組織横串に挑む - GitLab CI Runnerカイゼン -

bbrfkr

October 10, 2021
Tweet

More Decks by bbrfkr

Other Decks in Technology

Transcript

  1. 有志で組織横串に挑む
    - GitLab CI Runnerカイゼン -
    株式会社アイリッジ
    斎藤辰徳

    View full-size slide

  2. 斎藤辰徳 (HN: bbrfkr)
    Hello!
    2
    所属:株式会社アイリッジ
    ミッション
    ● OMOモバイルアプリ実行基盤開発
    ○ バックエンド
    ○ クラウドインフラ (主にAWS)

    View full-size slide

  3. 自キー沼のご紹介
    3

    View full-size slide

  4. ?
    ◉ 事業
    ○ OMO(Online Merges with Offline)ソリューション開発
    ○ OMOアプリの企画・開発
    ◉ 技術
    ○ インフラ開発・運用 → AWS × コンテナ がメイン
    ○ Managed Serviceを積極活用したCloud Architecture
    ○ ECS CLI v1 の国内トップレベルでの利用
    AWS Fargate
    4
    Amazon ECS Amazon ECR Amazon Aurora
    Amazon Cognito
    AWS Lambda

    View full-size slide

  5. Agenda
    5
    ◉ 弊社GitLabおよびCI環境の課題
    ◉ 有志で構成された横串プロジェクトのご紹介
    ◉ GitLab Runnerカイゼン
    ◉ 弊社GitLabの今後の展望
    ◉ まとめ

    View full-size slide

  6. 弊社GitLabおよびCI環境の課題
    6

    View full-size slide

  7. All in One問題
    7
    ◉ ほぼ全てのコンポーネントが一つのVMに?!
    gitaly gitlab-rails sidekiq
    static-data nginx postgresql
    redis
    何故かredisだけ
    外出し?!

    View full-size slide

  8. Runner非効率問題
    8
    ◉ 社内共有Runnerの管理者が不在

    View full-size slide

  9. ◉ 各PJで大小様々な、固有Group Runnerが乱立
    共有Runner
    Runner非効率問題
    9
    A PJ
    B PJ
    X PJ
    Y PJ

    View full-size slide

  10. ◉ All in One問題
    ◉ Runner非効率問題
    弊社GitLabおよびCI環境の課題
    10
    今回はこちらに対応した話

    View full-size slide

  11. 有志で構成された
    横串プロジェクトのご紹介
    11

    View full-size slide

  12. Development Crossover PJ
    12
    ◉ 課題感
    ○ 担当案件の知見を社内での共有知に中々ならない
    ○ 共有資産の責任所在と管理主体が曖昧になりがち
    組織横断の課題に
    開発者として挑む!

    View full-size slide

  13. DC PJでやってきたこと
    13
    ◉ PM陣へ向けた技術資料作成
    ○ Slackインテグレーションの設定と仕組み解説
    ○ CloudWatchの分析ノウハウまとめ
    ◉ OpenAPI仕様準拠のモックサーバテンプレート
    ◉ 社内共有GitLab Runnerの集中管理・ビルド速度改善

    View full-size slide

  14. GitLab Runnerカイゼン
    14

    View full-size slide

  15. 解決したい課題とやったこと
    15
    ◉ 課題
    ○ 社内共有Runnerの管理者不在
    ○ PJ固有Group Runnerの乱立
    ◉ やったこと
    ○ 社内共有Runnerの運用・管理簡素化
    ○ 社内共有Runnerの管理主体のコミットメント

    View full-size slide

  16. 具体的には。。。
    16

    View full-size slide

  17. 工夫したところ
    17
    ◉ コスト最適化
    ◉ Runnerの障害検出
    ◉ Runner破棄の事前処理
    ◉ Docker Storageの性能最適化

    View full-size slide

  18. コスト最適化
    18
    ◉ 地味だけど大事なこと
    ○ Spot Instanceの利用とリタイア対応
    ○ 営業日以外の縮退スケジュール
    (EventBridge)

    View full-size slide

  19. Runnerの障害検出
    19
    ◉ Docker Storageが一杯になるとRunnerが無応答に...
    ○ Root VolumeにDocker Storageを割り当てない
    ◉ Disk容量が一杯になりjobを捌けなくなる...
    ○ RunnerにStorageのメトリクスを送らせる
    ○ 容量が一定割合を超えたらRunner破棄
    ○ 一定期間メトリクスが来なかったらRunner破棄

    View full-size slide

  20. Runner破棄の事前処理
    20
    ◉ Runnerはお行儀よく死ぬ必要がある
    ○ 自分に対応するCloudWatchアラームの削除
    ○ 自分をGitLab上から登録解除
    ○ Slackに生きた証を残す

    View full-size slide

  21. Docker Storageの性能最適化
    21
    ◉ インスタンスストアの活用
    ○ お高いインスタンスじゃないと容量が足りない...
    ○ もう、普通にEBSでよくないかと思い始めた...

    View full-size slide

  22. 弊社GitLabの今後の展望
    22

    View full-size slide

  23. SaaSに移行したい
    23

    View full-size slide

  24. 健全運用可能な状態を作る
    24
    ◉ 構成図の作成
    ◉ 運用タスクの洗い出し
    ○ version upなど
    ◉ 運用タスクのドキュメンテーション

    View full-size slide

  25. データサーバの分離
    25
    ◉ Aurora for PostgreSQL使いたい...けど...

    View full-size slide

  26. GKE化
    26
    ◉ gitlab-railsなどの可用性担保
    ◉ Kubernetes Executer

    View full-size slide

  27. まとめ
    28
    ◉ 弊社のGitLab、CIで考えていることのご共有
    ○ 横串Projectの存在
    ○ VM Runnerカイゼン(VM辛い...
    ○ 今後のGitLabの展望
    ◉ もっとこうすれば...? というご意見お待ちしてます!

    View full-size slide

  28. ご質問はお気軽にどうぞ !
    ◉ twitter: bbrfkr
    ◉ mail: [email protected]
    Thanks!
    29

    View full-size slide