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

CircleCI Server運用のポイント / Point of CirlceCI Server operation

dehio3
October 01, 2019

CircleCI Server運用のポイント / Point of CirlceCI Server operation

【東京】CircleCI ユーザーコミュニティミートアップ#7
https://circleci.connpass.com/event/147712/

dehio3

October 01, 2019
Tweet

More Decks by dehio3

Other Decks in Technology

Transcript

  1. CircleCI Server
    運用のポイント
    CircleCI ユーザーコミュニティミートアップ #7

    View Slide

  2. 自己紹介
    Tanaka Tomohide
    ● twitter: @dehio3
    ● blog:https://www.dehio3.com/
    ● 音響屋→インフラエンジニア
    ● CircleCI運用歴:10ヶ月
    2

    View Slide

  3. はじめに

    View Slide

  4. CircleCI Serverとは
    ● オンプレミス版のCircleCI
    ● CirlceCIから公開されているTerraformを利用して、AWS上に
    構築可能
    ○ https://github.com/circleci/enterprise-setup

    View Slide

  5. CircleCI Server 使ってる?✋

    View Slide

  6. CircleCI Server 検討してる?✋

    View Slide

  7. 今日話す内容
    ● オンプレ版の運用中に発生した課題から気づいた運用のポイ
    ント
    ● CircleCI Server 2.17.3時点での情報(9/30時点の最新)
    ○ https://circleci.com/server/changelog/

    View Slide

  8. CircleCI Server の 構成要素

    View Slide

  9. View Slide

  10. ビルドの詳しい仕組みは
    https://speakerdeck.com/kimh/circleci-2-dot-0wozhi-eru2tufalse-kontenakurasutatosre

    View Slide

  11. 永続リソースと
    一時リソースそれぞれのポイント

    View Slide

  12. 永続リソース

    View Slide

  13. View Slide

  14. スケーリングのタイミング
    ● nomad-clientはAutoScalingから起動する。
    ● AutoScalingでEC2インスタンス起動アクション後、nomad-clientでbuild処理可能
    な状態になるまで3,4分かかる。
    ● AutoScalingのアクションは自動では実行されない為、スケールリングアクションの
    契機は自分で実装する必要がある。
    ● キューの滞留を検知してからスケールリングすると、スケールリングしたタイミング
    では既にキューが捌け終わって、無駄なスケールになる事もある。
    ● スケジュールでの時間契機か、リソース状況契機か、利用状況に応じてスーリング
    の検討が必要。

    View Slide

  15. 一時リソース

    View Slide

  16. View Slide

  17. machine executorは冗長化未対応
    ● machine executorを動作させるサブネットは現状一つしか指定でない。
    ● 設定はWebコンソールから実施する為、AZを変更する場合は再起動が必要。
    ● 8/23のAZ障害はまさに直撃した・・ていうかこの時気づいた( ;∀;)
    ● 即サポートに連絡して改善要望!!

    View Slide

  18. machine executorインスタンスのゾンビ化
    ● “machine”と”setup_remote_docker”を利用すると、一時的なEC2インスタンスが
    新規に作成される。
    ● 本来であれば処理が終わるとインスタンスが削除されるが、バグ(2.14.01以前)や
    起動中のserviceboxの再起動によって、インスタンスが削除されずに残る事があ
    る。
    ● ゾンビインスタンは無駄なコストになるので、定期的なゾンビインスタンスのチェック
    が必要。

    View Slide

  19. DLCのキャッシュ保持期間
    ● “docker_layer_caching”を設定すると専用のEBSボリュームが作成され、都度マ
    ウントされる事で、キャッシュが実現される。
    ● “Inactivity period before clearing Docker cache storage volumes (days)”にて
    chacheの保持期間を設定でき、デフォルトの14日に設定される。
    ● 保持期間はEBSボリュームの作成日ではなく、最終利用日から14日保持される。
    ● EBSボリュームについては、未利用時であっても課金される為、利便性とコストの
    バランスで保持期間を設定する。

    View Slide

  20. まとめ

    View Slide

  21. まとめ
    ● 当然だがオンプレ版の場合はCircleCIのインフラも運用する
    必要がある。
    ● インフラの維持コストを抑える為に、状況の可視化と継続的な
    運用の改善が必要。
    ● まだまだ改善の余地はあるので、今後のCirlceCI Serverの開
    発に期待!!

    View Slide

  22. おまけ

    View Slide

  23. 前回のミートアップ
    https://speakerdeck.com/tomohide_tanaka/circleci-server-visualization-of-usage-status

    View Slide

  24. SaaS版のビルド情報を取得ツールを作成
    https://www.dehio3.com/entry/2019/09/23/115924

    View Slide

  25. Thank you!!
    25

    View Slide