Save 37% off PRO during our Black Friday Sale! »

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

E598c2f9a8e5c94eea0e6505b4233d81?s=47 dehio3
October 01, 2019

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

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

E598c2f9a8e5c94eea0e6505b4233d81?s=128

dehio3

October 01, 2019
Tweet

Transcript

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

  2. 自己紹介 Tanaka Tomohide • twitter: @dehio3 • blog:https://www.dehio3.com/ • 音響屋→インフラエンジニア

    • CircleCI運用歴:10ヶ月 2
  3. はじめに

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

  5. CircleCI Server 使ってる?✋

  6. CircleCI Server 検討してる?✋

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

  8. CircleCI Server の 構成要素

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

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

  12. 永続リソース

  13. None
  14. スケーリングのタイミング • nomad-clientはAutoScalingから起動する。 • AutoScalingでEC2インスタンス起動アクション後、nomad-clientでbuild処理可能 な状態になるまで3,4分かかる。 • AutoScalingのアクションは自動では実行されない為、スケールリングアクションの 契機は自分で実装する必要がある。 •

    キューの滞留を検知してからスケールリングすると、スケールリングしたタイミング では既にキューが捌け終わって、無駄なスケールになる事もある。 • スケジュールでの時間契機か、リソース状況契機か、利用状況に応じてスーリング の検討が必要。
  15. 一時リソース

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

    • 即サポートに連絡して改善要望!!
  18. machine executorインスタンスのゾンビ化 • “machine”と”setup_remote_docker”を利用すると、一時的なEC2インスタンスが 新規に作成される。 • 本来であれば処理が終わるとインスタンスが削除されるが、バグ(2.14.01以前)や 起動中のserviceboxの再起動によって、インスタンスが削除されずに残る事があ る。 •

    ゾンビインスタンは無駄なコストになるので、定期的なゾンビインスタンスのチェック が必要。
  19. DLCのキャッシュ保持期間 • “docker_layer_caching”を設定すると専用のEBSボリュームが作成され、都度マ ウントされる事で、キャッシュが実現される。 • “Inactivity period before clearing Docker

    cache storage volumes (days)”にて chacheの保持期間を設定でき、デフォルトの14日に設定される。 • 保持期間はEBSボリュームの作成日ではなく、最終利用日から14日保持される。 • EBSボリュームについては、未利用時であっても課金される為、利便性とコストの バランスで保持期間を設定する。
  20. まとめ

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

    発に期待!!
  22. おまけ

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

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

  25. Thank you!! 25