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

CircleCIのFreeプランを最大限に活用しよう

 CircleCIのFreeプランを最大限に活用しよう

2021年1月からできること・使用可能時間が拡大されたCircleCIのFreeプラン。
CircleCIもくもく会にて、CircleCI Freeプランでご活用いただける機能や活用方法などを紹介した際のスライドです。

More Decks by Masahiko Funaki(舟木 将彦)

Other Decks in Technology

Transcript

  1. 2

  2. 3 アジェンダ 時間 内容 11:50- 開場(オンライン) 12:00-12:05 オープニング 12:05-12:25 CircleCIのFreeプランを最大限に活用しよう

    (Twitter #CircleCIJp でツイート または Zoom Chatにて) 12:25-12:45 質疑応答 (Twitter #CircleCIJp でツイート または Zoom Chatにて) 12:45-12:50 クロージング ※時間配分は予定なく変更の可能性があります。 ※途中参加、途中退席も大歓迎! ゆるーく集まりましょう。チャットに入りました/出ますメッセージを残して  いただけるとありがたいですが、必須ではないです(無理なさらずに)。 ※昼食の時間です。飲食物の持ち込み・食べながらの参加は自由です。ただし、食べる音が大きい場合は、  音声を一時的にミュートにしてください。
  3. 5 舟木将彦 (@mfunaki) CircleCI Senior Developer Advocate。 #CircleCIJp 中の人として、 -

    Twitter (https://twitter.com/CircleCIJapan) Facebook (https://www.facebook.com/groups/CircleCIJP) - Blog (https://circleci.com/ja/blog/author/masahiko-funaki/) - discuss (https://discuss.circleci.com/tag/ja-%E6%97%A5%E6%9C%A C%E8%AA%9E) やイベント等で発言を続ける。 Dejima(Siriの前身)でのプロダクト開発や、Sybaseでのサービス開発、 SAPやMicrosoftでのコンサルティングを経て、 CircleCIでは、 「やりたいことをソフトウェアとして早く+品質高く実現する」ことをご支援さ せていただいております。 Today’s MC
  4. 内製化=顧客価値の実現を同じコードベース+CI/CDで実現 プラン コード ビルド テスト リリース デプ ロイ 運用 監視

    継続的インテグレーション (CI) 継続的 デプロイ (CD) エッセンシャル ワーカーに依存 非正常系は エッセンシャル ワーカーに依存 自動化できる 自社 同僚 パート ナー 私
  5. 9 1. ビルドやテストを効率化する①〜無駄に待たない テストジョブの分析 ・過去100回のテストから、   成功率が低いテスト   実行時間が遅いテスト ・過去14日間のテストから   成功・失敗が不安定な   (Flakyな)5テスト

    ◎ ジョブ実行時のCPU/RAM   使用率をグラフ表示  (並列実行時はそれぞれに   ついて表示) Dockerコンテナの構築 ・開発環境や実行環境、  サーバレスなサービスなど  コンテナ構築が  CIのゴールに ・Dockerfile 作成のベスト  プラクティスを適用しても  まだ遅い(失敗はつらい) Docker レイヤー キャッシュで  変更箇所の前までは  3日間キャッシュ有 効 ◎ npmやpip, Yarnなどの  ライブラリもキャッシュ   可能) テストの分割 ・ファイル名を元に  ファイルの数を均等に ・ファイルサイズを元に  ファイルの大きさを均等に ・タイミングデータを元に  処理時間を均等に →30並列まで  同時並行実行可能 30並列実行 キャッシュ活用 テスト結果の分析
  6. 12 1. ビルドやテストを効率化する①〜無駄に待たない テストジョブの分析 ・過去100回のテストから、   成功率が低いテスト   実行時間が遅いテスト ・過去14日間のテストから   成功・失敗が不安定な   (Flakyな)5テスト

    ◎ ジョブ実行時のCPU/RAM   使用率をグラフ表示  (並列実行時はそれぞれに   ついて表示) Dockerコンテナの構築 ・開発環境や実行環境、  サーバレスなサービスなど  コンテナ構築が  CIのゴールに ・Dockerfile 作成のベスト  プラクティスを適用しても  まだ遅い(失敗はつらい) Docker レイヤー キャッシュで  変更箇所の前までは  3日間キャッシュ有効 ◎ npmやpip, Yarnなどの  ライブラリもキャッシュ   可能) テストの分割 ・ファイル名を元に  ファイルの数を均等に ・ファイルサイズを元に  ファイルの大きさを均等に ・タイミングデータを元に  処理時間を均等に →30並列まで  同時並行実行可能 30並列実行 キャッシュ活用 テスト結果の分析
  7. 13 Dockerレイヤーキャッシュ (イメージビルドの高速化) Dockerレイヤーキャッシュ(DLC)は、CircleCI のジョブ中にビルドされた Docker イメージの 個々のレイヤーがキャッシュされます。その後で CircleCI を実行すると、イメージ全体が毎回

    リビルドされるのではなく、未変更のイメージ レイヤーが再利用されます。 つまり、コミット間で Dockerfile の変更が少ないほど、イメージ ビルド ステップが短時間で完了します。 https://youtu.be/ZqpIXKMn0G4
  8. 14 1. ビルドやテストを効率化する①〜無駄に待たない テストジョブの分析 ・過去100回のテストから、   成功率が低いテスト   実行時間が遅いテスト ・過去14日間のテストから   成功・失敗が不安定な   (Flakyな)5テスト

    ◎ ジョブ実行時のCPU/RAM   使用率をグラフ表示  (並列実行時はそれぞれに   ついて表示) Dockerコンテナの構築 ・開発環境や実行環境、  サーバレスなサービスなど  コンテナ構築が  CIのゴールに ・Dockerfile 作成のベスト  プラクティスを適用しても  まだ遅い(失敗はつらい) Docker レイヤー キャッシュで  変更箇所の前までは  3日間キャッシュ有効 ◎ npmやpip, Yarnなどの  ライブラリもキャッシュ   可能) テストの分割 ・ファイル名を元に  ファイルの数を均等に ・ファイルサイズを元に  ファイルの大きさを均等に ・タイミングデータを元に  処理時間を均等に →30並列まで  同時並行実行可能 30並列実行 キャッシュ活用 テスト結果の分析
  9. 15 • ワークフローのメトリクスをインテリジェントに収 集・可視化 ◦ ワークフローやジョブ別の内訳 ◦ どのプロジェクト、ワークフロー、ジョブが失 敗し、最もクレジットを消費しているのか ◦

    遅いテストワースト10 失敗するテストワースト10 ◦ 成功・失敗が不安定なテストはどれか ◦ テスト実行時のCPU/RAM使用推移 テスト インサイト
  10. 16 1. ビルドやテストを効率化する②〜無駄に待たない ジョブ実行環境 ・ビルドやテストに合わせた  適切なリソースを割り当て  可能 →中〜低スペックで  並列実行  VS

     (並列実行のメリット小  なら)  高スペックで単独実行 実行環境 リソースクラスと消費クレジット Docker Executor クラス vCPUs RAM クレジット small 1 2GB 5クレジット/分 medium 2 4GB 10クレジット/分 medium+ 3 6GB 15クレジット/分 large 4 8GB 20クレジット/分 Freeプランでは30,000クレジット/月が無料で付与 (smallクラスなら6000分=100時間に相当) ※月20日換算で一日あたりのジョブ実行時間 5.0時間
  11. 17 2. 幅広いビルド環境をサポート 自分の用意した実行環境で CircleCIのジョブを実行 ・エージェントをインストー  ルすることで  CircleCIのジョブを実行 実行環境(サポート対象) ・Ubuntu

    18.04+(x86_64/ARM64) ・RHEL8 (x86_64/ARM64) ・Mac OS X 10.15+ (Intel) ・macOS 11.2+ (Apple M1) ・Docker (x86_64/ARM64) ・Kubernetes (x86_64) ・Windows Server 2019,2016 (x86_64) Dockerベースの実行環境 ・Linuxベースのコンテナを  実行可能 ・CircleCIからはCIに特化  した cimg/xxxxx イメージ  を提供 VMベースの実行環境 ・Linux(x86_64, aarch64) ・Windows ・macOS ・GPU(Linux/Windows with  Nvidia Tesla Tensor Core  GPU) Linux,Win,Mac ランナー x5
  12. 18 リソースクラス: マシンスペックのカスタマイズ • small (1vCPU, 2 GB RAM) •

    medium (2 vCPU, 4 GB RAM) • medium+ (3 vCPU, 6 GB RAM) • large (4 vCPU, 8 GB RAM) • xlarge (8 vCPU, 16 GB RAM) • 2xlarge* (16 vCPU, 32 GB RAM) • 2xlarge+* (20 vCPU, 40 GB RAM) 詳細はドキュメント をご参照ください Docker Linux (Machine) macOS • medium (2 vCPU, 7.5 GB RAM) • large (4 vCPU, 15 GB RAM) • xlarge (8 vCPU, 32 GB RAM) • 2xlarge* (16 vCPU, 64 GB RAM) • gpu-small* (4 vCPU, 15 GB RAM, 1 GPU, 8 GiB GPU RAM) • gpu-medium* (8 vCPU, 30 GB RAM, 1 GPU, 16 GiB GPU RAM) * カスタム年間プランが必須 詳細はドキュメントをご参照ください • medium (4 vCPU, 8 GB RAM) • large* (8 vCPU, 16 GB RAM) 詳細はドキュメントをご参照ください
  13. 19 リソースクラス: マシンスペックのカスタマイズ • arm.medium (2 vCPU, 8 GB RAM)

    • arm.large (4 vCPU, 16 GB RAM) Arm64のプレビューを開始する場合は下記の リンクをご覧ください。 Preview Docs Arm64 Linux Android + Emulator • Image for machine executor • Supports nested virtualization and x86 Android emulators • Also comes with Android SDK pre-installed 詳細な情報は下記のドキュメントをご 参照ください。 Preview Docs Windows • medium (4 vCPU, 15 GB RAM) • large (8 vCPU, 30 GB RAM) • xlarge (16 vCPU, 60 GB RAM) • 2xlarge* (32 vCPU, 128 GB RAM) • gpu-medium* (16 vCPU, 60 GB RAM, 1 GPU, 16 GiB GPU RAM) 詳細はドキュメントをご参照ください
  14. 20 2. 幅広いビルド環境をサポート 自分の用意した実行環境で CircleCIのジョブを実行 ・エージェントをインストー  ルすることで  CircleCIのジョブを実行 実行環境(サポート対象) ・Ubuntu

    18.04+(x86_64/ARM64) ・RHEL8 (x86_64/ARM64) ・Mac OS X 10.15+ (Intel) ・macOS 11.2+ (Apple M1) ・Docker (x86_64/ARM64) ・Kubernetes (x86_64) ・Windows Server 2019,2016 (x86_64) Dockerベースの実行環境 ・Linuxベースのコンテナを  実行可能 ・CircleCIからはCIに特化  した cimg/xxxxx イメージ  を提供 VMベースの実行環境 ・Linux(x86_64, aarch64) ・Windows ・macOS ・GPU(Linux/Windows with  Nvidia Tesla Tensor Core  GPU) Linux,Win,Mac ランナー x5 https://circleci.com/ja/blog/physical -computing-with-circleci-1/
  15. 21 3. チームでの開発生産性を高める セキュリティ認証 ・SOC 2 Type II 準拠 ・FedRAMP

    Tailored 認証 CircleCIの各種セキュリティに 関して https://circleci.com/ja/security/ Orb - 再利用可能な部品化 ・CircleCIでのCI/CDの定義は  コンフィグにYAML言語で  記述 ・コンフィグの一部分を切り  出し、他コンフィグで部品  と して使用可能(ノウハウ  共有) ・公開範囲はPublic(誰でも)  Private(組織内)を指定可能 誰もがプロジェクトに貢献 ・自分一人で始めることも、  組織のメンバーで始める  ことも、増減も自由 ・プロジェクトメンバー数に  上限はありません →アカウント共有のような  バッドノウハウ不要 ・OSSコミュニティには  毎月400,000クレジットを  無償付与 https://circleci.com/ja/open- source/ 無制限ユーザー 設定を社内共有 セキュアなCI/CD
  16. 22 3. チームでの開発生産性を高める セキュリティ認証 ・SOC 2 Type II 準拠 ・FedRAMP

    Tailored 認証 CircleCIの各種セキュリティに 関して https://circleci.com/ja/security/ Orb - 再利用可能な部品化 ・CircleCIでのCI/CDの定義は  コンフィグにYAML言語で  記述 ・コンフィグの一部分を切り  出し、他コンフィグで部品  と して使用可能(ノウハウ  共有) ・公開範囲はPublic(誰でも)  Private(組織内)を指定可能 誰もがプロジェクトに貢献 ・自分一人で始めることも、  組織のメンバーで始める  ことも、増減も自由 ・プロジェクトメンバー数に  上限はありません →アカウント共有のような  バッドノウハウ不要 ・OSSコミュニティには  毎月400,000クレジットを  無償付与 https://circleci.com/ja/open- source/ 無制限ユーザー 設定を社内共有 セキュアなCI/CD https://youtu.be/T9mr3LudDdQ
  17. 24 3. チームでの開発生産性を高める セキュリティ認証 ・SOC 2 Type II 準拠 ・FedRAMP

    Tailored 認証 CircleCIの各種セキュリティに 関して https://circleci.com/ja/security/ Orb - 再利用可能な部品化 ・CircleCIでのCI/CDの定義は  コンフィグにYAML言語で  記述 ・コンフィグの一部分を切り  出し、他コンフィグで部品  と して使用可能(ノウハウ  共有) ・公開範囲はPublic(誰でも)  Private(組織内)を指定可能 誰もがプロジェクトに貢献 ・自分一人で始めることも、  組織のメンバーで始める  ことも、増減も自由 ・プロジェクトメンバー数に  上限はありません →アカウント共有のような  バッドノウハウ不要 ・OSSコミュニティには  毎月400,000クレジットを  無償付与 https://circleci.com/ja/open- source/ 無制限ユーザー 設定を社内共有 セキュアなCI/CD
  18. 25 クラウドまたは専用環境のどちらかを選択可能 クラウド 開発者/ ユーザー VCS (GitHub.com または Bitbucket Cloud)

    データベース ビルドの
 フリート キャッシュ & 
 アーティファクト サーバー 顧客が管理するネットワーク内に 顧客専用のCircleCIをセットアップ 開発者/ ユーザー VCS (GitHub.com または GitHub Enterprise Server) データベース ビルドの フリート キャッシュ & アーティファ クト インスタンスのセットアップ、 セキュリティ、メンテナンスはすべて CircleCIが実施