Slide 1

Slide 1 text

1 CircleCI もくもく会 #10 Freeプラン拡大 2022年1月31日 12:00~12:50 感想・質問ハッシュタグ -> #CircleCIJp

Slide 2

Slide 2 text

2

Slide 3

Slide 3 text

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 クロージング ※時間配分は予定なく変更の可能性があります。 ※途中参加、途中退席も大歓迎! ゆるーく集まりましょう。チャットに入りました/出ますメッセージを残して  いただけるとありがたいですが、必須ではないです(無理なさらずに)。 ※昼食の時間です。飲食物の持ち込み・食べながらの参加は自由です。ただし、食べる音が大きい場合は、  音声を一時的にミュートにしてください。

Slide 4

Slide 4 text

4 CircleCIもくもく会とは ゆる~く集まって CircleCI をネタに 「もくもく」する会です。 食事や途中入退室自由、 顔出し・お話・チャットできない 状況ありの前提で進めましょう。

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

6 ということで...

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

内製化=顧客価値の実現を同じコードベース+CI/CDで実現 プラン コード ビルド テスト リリース デプ ロイ 運用 監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) エッセンシャル ワーカーに依存 非正常系は エッセンシャル ワーカーに依存 自動化できる 自社 同僚 パート ナー 私

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

10 テストの並列処理(1) 25並列でテストを実行

Slide 11

Slide 11 text

11 テストの並列処理(2) 1並列で処理した場合 4並列で処理した場合 (テストファイルは名前で分割) 4並列で処理した場合 (テストファイルは過去の動作時間で分割)

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

13 Dockerレイヤーキャッシュ (イメージビルドの高速化) Dockerレイヤーキャッシュ(DLC)は、CircleCI のジョブ中にビルドされた Docker イメージの 個々のレイヤーがキャッシュされます。その後で CircleCI を実行すると、イメージ全体が毎回 リビルドされるのではなく、未変更のイメージ レイヤーが再利用されます。 つまり、コミット間で Dockerfile の変更が少ないほど、イメージ ビルド ステップが短時間で完了します。 https://youtu.be/ZqpIXKMn0G4

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 ● ワークフローのメトリクスをインテリジェントに収 集・可視化 ○ ワークフローやジョブ別の内訳 ○ どのプロジェクト、ワークフロー、ジョブが失 敗し、最もクレジットを消費しているのか ○ 遅いテストワースト10 失敗するテストワースト10 ○ 成功・失敗が不安定なテストはどれか ○ テスト実行時のCPU/RAM使用推移 テスト インサイト

Slide 16

Slide 16 text

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時間

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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) 詳細はドキュメントをご参照ください

Slide 19

Slide 19 text

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) 詳細はドキュメントをご参照ください

Slide 20

Slide 20 text

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/

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

23 Orb - 効率化+品質/セキュリティ/コンプライアンスツールとの連携 効率化 セキュリティ/ コンプライアンス 効率化 品質 品質/ コンプライアンス 効率化

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

26 https://circleci.com/ja/signup/ https://support.circleci.com/hc/ja

Slide 27

Slide 27 text

4. さいごに

Slide 28

Slide 28 text

活用いただいているお客様+事例 https://discuss.circleci.com/t/advent-calendar-2021-circleci/42147

Slide 29

Slide 29 text

29 時は金なり 効率は生命なり ハードウェアのシリコンバレー 中国深圳では

Slide 30

Slide 30 text

CircleCIをもっと知りたい!人に... 最新の情報なら @CircleCIJapan をフォロー! #CircleCIJp タグつけて情報共有! イベント、セミナー、勉強会の情報なら connpassのCircleCIグループから! https://circleci.connpass.com/ 動画でCircleCIについて学ぶなら CircleCIチャンネルを登録! (日本語プレイリストもあり )

Slide 31

Slide 31 text

31 質疑応答

Slide 32

Slide 32 text

32 Thank you! 今後のイベント情報通知を登録して自動化しよう!→ https://circleci.connpass.com/