Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CircleCIのSnyk Orbを使ったCI/CDのセキュリティスキャンへの組み込み
Search
Masahiko Funaki(舟木 将彦)
September 14, 2022
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CircleCIのSnyk Orbを使ったCI/CDのセキュリティスキャンへの組み込み
Masahiko Funaki(舟木 将彦)
September 14, 2022
More Decks by Masahiko Funaki(舟木 将彦)
See All by Masahiko Funaki(舟木 将彦)
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
250
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
650
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
170
202605-進化し続けるUIに追従.pdf
mfunaki
0
59
mablの要素選択を完全理解〜壊れないテストを作るための技術選択
mfunaki
0
80
知って得するmabl活用Tips〜「こんな時どうする?」実践機能ガイド
mfunaki
0
88
20260422-mablで変わるテスト自動化_品質_速さ_コストの三角形を崩す5つのアプローチ.pdf
mfunaki
0
140
手順(プロンプト)だけで テストを自動作成~テスト作成エージェントを使いこなすための 実践プロンプト術
mfunaki
0
210
「見た目」と「意味」をAIが判定 ~ビジュアルアサーションで変わる テストの守備範囲~
mfunaki
0
100
Other Decks in Technology
See All in Technology
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
850
omasushiというライブラリを作った
polidog
PRO
0
220
事業課題から技術的負債に向き合う
sansantech
PRO
2
530
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
140
GoCon2026 - Open Source, Open World
sanposhiho
4
3.5k
消えない 動かない 効かない
yama3133
1
120
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
3
290
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.8k
Claude Code本って、 読む必要あるの?
oikon48
2
430
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
120
なぜJMBC(Japan MCP Business Community)? MCPってどう活用できるの?
cdataj
0
110
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
Raft: Consensus for Rubyists
vanstee
141
7.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
990
Unsuck your backbone
ammeep
672
58k
Crafting Experiences
bethany
1
330
Mind Mapping
helmedeiros
1
350
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
350
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
The Language of Interfaces
destraynor
162
27k
Transcript
1 舟木 将彦 (@mfunaki) Principal Developer Advocate / CircleCI CircleCI
の Snyk Orb を使った CI/CD へのセキュリティスキャンの 組み込み CircleCI + Snyk でセキュアなアプリケーション/サービスを実現する
2 舟木 将彦(@mfunaki) CircleCI合同会社 Principal Developer Advocate ビジネスを支えるソフトウェアが お客様やマーケットに合わせて 継続して進化していくために不可欠な
・CI(継続的インテグレーション) ・CD(継続的デリバリ/デプロイ) の意義や価値、進め方を 技術、ビジネス、経営の言葉で お届けしています。 2000~ ◦ AppleのSiriの前身となるDejima社にて 特許出願を含む製品開発 (車載、家電での音声対話操作) 2003~ ◦ データベースベンダー(Sybase)による買収に伴い 自然言語でのデータベース検索や モバイル環境での対話型検索の開発 2013~ ◦ ERPベンダー(SAP)による買収に伴い ERPのモバイル対応や、 自動車関連(電装パーツ、タイヤ、自動車、 再生可能エネルギー)のイノベーション促進 2018~ ◦ 自動車や小売り、製造、金融といった業界に 対して、 アイデア~コード~プロト~製品/サービス 間の時間差を最小限に 2020~ • アイデア~エンジニアによる実装 ~アプリやサービスの間を自動化で結び、 フィードバックループを高速に回すため、 CircleCI にて Developer Advocate に 自己紹介
CircleCIってどんな会社 • 世界最大規模のクラウドCI/CD(継続的インテグレーション/継続的デプロイ)サービス ◦ 22,000以上の組織の 100万以上の開発者が実行する 毎月7億以上のジョブを支えるサービス • ミッション: Manage
change So software teams can innovate faster (変化をマネージしよう、そうすれば ソフトウェアチームはより速くイノベーションできる ) • 2011年設立、サンフランシスコに本社 2021/05/11 にSeries Fで1億ドルを調達 (これまでに$315Mの投資、$1.7Bの企業価値) • 600+人の社員 (米国、日本、英国、オランダ、フランス+ リモートワーク)
4 Agenda DevOps とソフトウェア デリバリーの成熟度 自動化された10分で開発効率と質を両立 【デモ】セキュリティスキャンの自動化への組み込み 終わりに
5 DevOps とソフトウェア デリバリーの成熟度
6 デリバリー成熟度に関わる4つの主要な指標 4つの指標 US/Japanの CircleCIユーザー中央値 CircleCIが考える 目標値 1. ワークフロー実行時間 3.82分(US)
3.54分(Japan) 10分 (🙅10分以内) 2. スループット (ワークフロー実行回数) 1.67回/日(US) 1.00回/日(Japan) プルリクエストの数+ 自動実行数 3. 平均リカバリ所要時間 80.01分(US) 68.50分(Japan) 1時間以内 4. ワークフロー成功率 (master / main ブランチ) 77%(US) 75%(Japan) 90%以上
7 デリバリー成熟度を上げるためのポイント〜自動化 プラン コード ビルド テスト リリース デプ ロイ 運用
監視 継続的インテグレーション (CI) 継続的 デプロイ (CD) 自動化できない 非正常系は 自動化できない 自動化できる→継続的であるために自動化すべき 1. ワークフロー実行時間 (10分) 2. スループット 3. 平均リカバリ所要時間 - 変更をキャンセル - 変更で生じた問題を修正 4. ワークフロー成功率 (デフォルトブランチマージ時の の割合)
8 ビルド〜デプロイを自動化し、現況を見える化する 実行回数 成功確率 実行時間 クレジット消 費量 復旧時間
9 自動化された10分で開発効率と質を両立
10 縦に伸ばす(自動化実行環境のスペックを上げる) リソースクラスと消費クレジット 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時間 https://circleci.com/docs/ja/using-docker#available-docker-resource-classes
11 横に広げる(並列化) 1 5 50 5 45 40 100 60
1 0 30 20 100 1 5 50 60 20 1 0 45 40 30 5 100 50 1 0 45 1 5 60 20 5 40 30 1並列 3並列 5並列 1’44” 1’14” 1’09” 1’14” 1’15” 6:20 64クレジット (¢3.84相当) 2’09” 2’09” 2’09” 74クレジット (¢4.44相当) 81クレジット(¢ 4.86相当) https://circleci.com/docs/ja/parallelism-faster-jobs#test-splitting-to-speed-up-pipelines
12 横に広げる(並列化) 1 5 50 5 45 40 100 60
1 0 30 20 100 1 5 50 60 20 1 0 45 40 30 5 100 50 1 0 45 1 5 60 20 5 40 30 1並列 3並列 5並列 1’44” 1’14” 1’09” 1’14” 1’15” 6:20 64クレジット (¢3.84相当) 2’09” 2’09” 2’09” 74クレジット (¢4.44相当) 81クレジット(¢ 4.86相当) https://circleci.com/docs/ja/parallelism-faster-jobs#test-splitting-to-speed-up-pipelines
13 10分の中で量(効率)+CircleCI Orbで質の向上をしっかり盛り込む
14 セキュリティスキャンの自動化への組み込み
15 【デモ1】 ソースコードの修正を起点としたスキャン
16 1. ベースとなるワークフロー この名前でイメージをビルド、プッシュ Node Orb, Docker Orbを使い、簡潔な定義+キャッシュ適用で高速化 以前使用したDockerレイヤーのイメージをキャッシュ、再利用し 高速化
package-lock.jsonファイルが未更新ならキャッシュしたライブラリを 使用 Dockerの - アカウントをチェック (ログインできなければエラー ) - Dockerfileをlintし (記述ミスがあればエラー ) - イメージをビルドし - Docker Hub(コンテナイメージリポジトリ )にPush テスト ビルド リリース
17
18 2. Slackによる結果通知を追加 Slack Orb を追加 CircleCIによる実行結果が - fail(失敗)なら basic_fail_1
テンプレートを使い - pass(成功)なら basic_success_1 テンプレートを使い メッセージを送信する メッセージ送信先は、コンテクスト slack-secrets の中で定義された 環境変数 SLACK_ACCESS_TOKEN, SLACK_DEFAULT_CHANNEL で指定
19
20 3. Snyk Orbを使ってイメージをスキャン Snyk Orbを追加 docker build でビルドしたイメージ ($IMAGE_NAME)をスキャンし
- 問題がなければ、引き続き Docker Hub に PUSH - 問題があれば、 Docker Hub に PUSH せず Slackで失敗メッセージを通知する Snykを使用する際に当たって必要な API Token は、 コンテクスト snyk-secrets の中で定義された 環境変数 SNYK_TOKEN で指定
21
22 【デモ2】 パイプラインのスケジュール実行によるスキャン
23 パイプラインのスケジュール実行 https://circleci.com/docs/ja/scheduled-pipelines
24 終わりに
25 • 単に「早く」「簡単に」開発するだけでなく、 バグを修正する、さまざまな機能を盛り込むという「量」と 利用者が安心して使えるという「質」の両立が重要 • ビルド、テスト、リリース(CI)、デプロイ(CD)は自動化+高速化可能 ◦ 適切なマシンスペックの選択 +
並列化の活用 • バグが生まれるのはコード開発時 →問題があるのであれば、できるだけ早く(10分以内)気づけば、 コードの記憶が鮮明なうちに修正に取り掛かれ、より効率的 • 自動化+高速化で10分以下にすることがゴールではなく、 「質」に関わる取り組みを CircleCI Orb を使い、自動化に組み込む 今日お伝えしたかったこと
Thank you. 26
27 ソースコードを GitHubなどの ソースコード 管理システムで管理 日時や週次で テストやビルドを 自動実行する コードが追加・修正 されるたび、
テストやビルドを 自動実行する ソースコードを 共有フォルダ等で 取りまとめる Linux/Windows/iOS /Android/GPU環境 向けビルドを(クラウド で)一元管理 テスト時間を短縮す ることで、作った記憶 がホットなうちに修正 可能に 必要に応じた スペックのビルド環境を 選択可能(縦に伸ばす) 直列実行だけでなく、 並列実行が簡単に 設定可能(横に広げる) レベル1 コード 共有 + 手作業の 自動化 レベル2 コード 履歴共有 + 手作業の 自動化 (巻戻可) レベル3 スペックや 多重度が 変化する 自動化 (高速化= 速く気づき 速く直す) ソフトウェア開発の現況 〜 今の立ち位置を知り、直近のゴールを定める 協力会社からは全体が見えない (見せない)+類似製品間で ほとんど同じコードを手動で仕向け CI/CDが自動化され、常に動くモノが ある状態だが伸びしろが見えない (語学学習で言う「中級者にはなっ たがもっと上達する気がしない」 ) 速さで Qualityと Quantity と 進化を両 立
28