Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CircleCI の有料プランを導入するためにやったこと/What I did to introduce CircleCI's paid plan
Search
bake0937
November 24, 2021
Technology
0
1.2k
CircleCI の有料プランを導入するためにやったこと/What I did to introduce CircleCI's paid plan
【オンライン】【自動化何でもLT大会編】CircleCI コミュニティミートアップ での登壇資料です。
https://circleci.connpass.com/event/228801/
bake0937
November 24, 2021
Tweet
Share
More Decks by bake0937
See All by bake0937
GASを使って非エンジニアが AWS Step Functions を 操作できる仕組みの紹介 / Introducing how non-engineers can operate AWS Step Functions using GAS
bake0937
0
290
FlutterアプリのiOSビルドとアーカイブを CircleCI で自動化してみた / Tried automating the iOS build and archive of the Flutter app with CircleCI
bake0937
0
1.1k
Probot で学ぶ TypeScript / Learn with Probot TypeScript
bake0937
0
130
Amazon ECR を利用していたと思ったら、Docker Hub を利用し続けていた / If I thought I was using Amazon ECR, I continued to use Docker Hub
bake0937
0
790
Jest + Puppeteer によるE2Eテストで確認作業を短縮してみた / End-to-end testing by Jest + Puppeteer shortened the confirmation work
bake0937
0
590
所属企業の Advent Calendar を初めて作った時に学んだこと / What I learned when I first created my company's Advent Calendar
bake0937
1
720
Notion 📚 へ移行して 3ヶ月経った振り返り / Looking back at Notion after 3 months
bake0937
0
5.7k
Bot開発でRubyを学ぶ / Learn Ruby with Bot Development
bake0937
0
380
小さく始めるOSS活動
bake0937
0
94
Other Decks in Technology
See All in Technology
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
180
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.3k
Azure Pipelinesを使用したCICDベースラインアーキテクチャ実践
yuriemori
0
190
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
エンジニア向け会社紹介資料
caddi_eng
14
220k
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
大規模ドラレコデータ収集・機械学習基盤を支える AWS CDK 〜導入・運用事例紹介〜
pemugi
0
110
頼られるのが大好きな 皆さんへ - 支援相手との期待の合わせ方、突き放し方 -/For_people_who_like_to_be_relied_on
naitosatoshi
1
290
Amazon FSx for NetApp ONTAPのパフォーマンスチューニング要素をまとめてみた #cm_odyssey #devio2024
non97
0
220
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
270
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Web Components: a chance to create the future
zenorocha
307
41k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
189
16k
BBQ
matthewcrist
82
9k
How to Think Like a Performance Engineer
csswizardry
4
590
Art, The Web, and Tiny UX
lynnandtonic
291
20k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
2.9k
Raft: Consensus for Rubyists
vanstee
134
6.5k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Six Lessons from altMBA
skipperchong
24
3.2k
Being A Developer After 40
akosma
72
580k
Practical Orchestrator
shlominoach
185
10k
Transcript
CircleCI の有料プランを 導入するためにやったこと 岡部恭平 / CO-OP Sapporo 2021.11.24 / 【オンライン】【自動化何でも
LT大会編】CircleCI コミュニティミートアップ
自己紹介 生活協同組合コープさっぽろ デジタル推進本部 システム部 エンジニア 岡部恭平 @okabeeeat Webアプリケーションエンジニア
最近 Advent Calendar、実施します!!! https://adventar.org/calendars/6263
本日話すこと • CircleCIの有料プランをどのようにチーム・部内で提案し、導入したのかをお話ししま す • 本発表の主な対象者 ◦ CI/CDサービスに興味がある方 ◦ 有料のサービス・ツールを導入しようにも何をすれば良いのかわからない方
• 話さないこと ◦ CircleCI の具体的な機能やTipsについて
つまりこういう人が対象 自分 そろそろ CircleCI を 有料プランにしたいなぁ ... まぁ偉い人が良い感じに やってくれるだろう...
つまりこういう人が対象 自分 え!? 私が導入するんですか !? 何すれば良いかわからない ...
目次 • 背景 • 導入までにやったこと • 所感・今後 • まとめ
背景 • CI/CDとして CircleCI を利用している • プランは Free (2021年4月当時) ◦
週に 2,500 分のビルドが可能 ◦ iOSのビルドは不可 CI/CDとは? ※継続的インテグレーションと継続的デリバリーまたは継続的デプロイ のいずれかを組み合わせたプラクティスを指す。 CI / CDは、アプリケーションの構築、テスト、および展開の自動化を実施することにより、開発および 運用アクティビティとチームの間のギャップを埋める。 ※引用: CI/CD(Wikipedia)
沢山テスト・ビルド・リリースやってます リリース テスト 実行 リリース リリース リリース
ある日... Free プランの使用量を越える ...
つまり...
None
つまり...
みたいなものを作る...!?
そして1件のメールが... CircleCI Japan です。 有料プランいかがですか?
色々あって私が導入を進めることに... こういうのやったこと無いけど ...まぁ...何 とかなるしょ!!
導入までにやったこと 1. 実現したいことの整理 2. チーム内で合意を得る a. CI/CDサービスの調査 b. CircleCI Japan
とのMTG c. GitHub リポジトリの調査 d. その他調査したこと e. チームへ提案する 3. 部内で合意を得る(稟議に相当するもの) a. 上長に軽く相談 b. 部内向けの提案資料を作成 c. 部内で提案・申請する 4. 有料プランを申し込む ※実際の部内のルール(進め方)・資料の内容は本ミートアップ用に一部変更しております
実現したいことの整理
実現したいことの整理 テキストや GitHub の issue などで整理する
チーム内での合意を得る
CI/CDサービスの調査 • 候補となるCI/CDサービスを調査 ◦ CircleCI と GitHub Actions Team(プラン) を比較
CircleCI Japan とのMTG MTGで以下の内容を確認・質問をした • Freeプランと有料プランの違い ◦ ビルド時間 ◦ ビルドできるOSの種類
◦ 利用できるコンピュートエンジンの違い • 有料プランの種類 ◦ Performanceプラン(従量課金) ◦ Performanceプラン(年間プラン) ▪ 年間1千万クレジット(使用量)が利用できる ▪ $6,000/年 • 他に質問した内容 ◦ 「クレジット」・「アクティブユーザー」の定義の確認 ◦ 直接の契約と代理店経由での契約の違い ◦ 1アクティブユーザあたりの消費クレジット数の確認
従量課金か年間プランか ウチはどっちが良いでしょうか ...? CircleCI Japan なんとも言えないですね ... 他社さんではCTOの方が良い感じに 決めているとよく聞きます ...
とりあえず1ヶ月試す方向で検討することに... (え...そうなの!?)判断につい ての知見などはヒアリングさ れていますでしょうか? わからないですね... あ!1ヶ月トライアルで動かしてみて決 めるのはいかがでしょう? ただし、1ヶ月のトライアルは有料プラ ンの契約が前提となります CircleCI
Japan わかりました
• CircleCIでの想定される消費クレジット数などを見積もるために GtiHub オーガニゼーションで主 に以下を確認 ◦ リポジトリ数や直近のコントリビューター数 ◦ CircleCI を設定しているリポジトリ数
◦ GitHub API(octokit.rb を利用)利用し、リポジトリ数や利用している言語や設定ファイルの 利用状況を確認 • わかったことはスプレッドシートにメモし、グラフを作成 (以下は例) 利用プログラミング言語・ファイルの割合 GitHub リポジトリの調査 ・ ・ ・ グラフ化
GitHub リポジトリの調査 ・ ・ ・ グラフ化 グラフ化 月毎のリポジトリ作成数 CircleCI の設定リポジトリ数
その他調査したこと • 利用するチームメンバー数の確認 ◦ 直近3〜6ヶ月で新しく入るメンバーも含める • チームメンバーのCI/CD利用経験・スキルなどの確認
CI/CDサービスを選定 調査したことに加え、下記の観点でCI/CDサービスは CircleCI に決定 • 主に(現時点での)開発で利用する言語・ファイルのビルドの時間 ◦ Node.js, yml, Python
• ダッシュボード機能がある ◦ 各リポジトリのデプロイ・リリース状況を把握できる • CircleCI の経験者の割合が多い • 社内のデプロイツールを有効活用できる
チームへ提案する • 今までに調査したことをドキュメントにまとめる ◦ ADR(Architecture Decision Records)のフォーマットを 参考にした • ある程度まとまったらチームへ提案し、合意を得る
◦ フィードバックがあれば修正する
大事なのはここから...
部内で合意を得る
• 部内で提案・申請前に上長(キーマンになりそうな人)にここまでやったことの共有と 相談を軽くしておく • 1on1や雑談(通りかかった際)などを上手く利用する 上長に軽く相談 CircleCI というCI/CDサービス の有料プランを導入したいと 思っておりまして...
本部長
上長に軽く相談 そうなんだ!全然良いんだけど提案する時は ちゃんと「数字」を使ってね!! 「ROI」とかがキーワードになるかな 本部長
上長に軽く相談 数字!?...すうじ? 「ROI」はちょっと聞いたことある ... 本部長
ROI(投資利益率) 企業の収益性を測る指標のひとつで、投下資本に対する利益の割合のこと。 英語表記「Return on Investment」の略でROIともいいます。 投資に見合った利益を生んでいるかを判断します。 ※引用: わかりやすい用語集 解説:投資利益率(とうしりえきりつ) |
三井住友DSアセットマネジメント
つまりこのままだと... 提案しま〜す 本部長 部内メンバー
おそらくこうなる そんな〜 違う、そうじゃない 本部長 部内メンバー 違う、そうじゃない なんかすごくて便利そうな のはわかるけど ...
ここらへんで挫折しかける... どうしよう... 別にCI/CDサービスを導入しても 儲かるわけじゃないからな ...
ググってもあまりわからず...
たまたま弊協の note を眺めていると... 引用: https://dx.sapporo.coop/n/n45cbc47c059e
これだ!
「作業時間」に着目する ROIの「利益」の部分を「作業時間」に置き換えて考えてみる アプリケーションのデプロイ作業の時間を計算してみる 1. 手動でのデプロイ作業の人数・手順・時間を算出 2. CircleCI を導入後のデプロイ作業の人数・手順・時間を算出 3. どれだけ時間短縮ができたかを計算
4. 1ヶ月にデプロイ作業が何回発生するかを数える 5. 12ヶ月で計算し、年間の作業時間を計算
絵でまとめてみる
さらに リポジトリ(35個) 期待できる年間でのリリース作業の削減時間 35リポジトリ × 220 分 × 12ヶ月 =
92400分 / 60分 =年間1540時間の削減 ※リポジトリ数は5(CircleCI を設定済みのリポジトリ数 ) + 6(「今後設定予定」及び「設定の検討予定」のリポジトリ数の合計 ) + 24 リポジトリ(1 年間で増えると想定したリポジトリ数 ) で計算。
結構すごい!?
部内向けの提案資料を作成 • 「背景」「目的」「効果」「料金プラン」「導入までのスケジュール」などをまとめたドキュ メントを書く ◦ 今までに調査したことや作成したドキュメント上手く利用する ◦ 従量課金プランか年間プランのどちらにするのかは 1ヶ月のトライアル期間で決める旨も記 入
• あくまで「ROI」を意識した資料を作る ◦ CircleCI の機能等の技術的な話はなるべく削る
作成した提案資料をもとに、再度相談した結果... 部内向けの提案資料を作成 ありがとうございます! (やったぜ!!) 内容わかりました 申請上げていいよー 本部長
部内での提案・申請も無事OKを貰った 部内向けの提案資料を作成 ありがとうございます! (やったぜ!!) OKです! 部内メンバー
1ヶ月のトライアルを実施 • 積極的にテスト・ビルド・リリースをするようチームメンバーへ連絡 • やりたいことを自由に検証する ◦ iOS のビルドの検証 ◦ 利用できるリソースクラスをMAXにし、実行時間が短縮されるかの確認
▪ 実行時間はあまり短縮されなかった ...
トライアルの結果を基にプランを決定 なるほど! CircleCI Japan この結果だと... 年間プランの方が合ってそう ですね!!
そして... 🎉無事、有料プランになりました🎉
所感・今後 所感 • サービスやツールを導入するのは大変! ◦ 部内向け資料は「何をすれば良いのかがわからない」からのスタートだった • 「数字」にすると色々なことがわかってくる ◦ 収益、作業時間、リードタイム、工数など様々
◦ 自分なりの考え方で良いので「数字」に落とし込んでみる ◦ 「辛い」・「楽」などの主観的な情報ではなく客観的な情報になる ◦ 新たな提案手法が身に付いた • エンジニアに関わらず「数字」に落とし込む力をもっと上げていきたい ◦ どのように皆さんが数字にする力訓練・学習しているか知りたくなった 今後 • CircleCI の利用リポジトリの拡大
まとめ • CircleCI のFreeプランの利用枠を越えた • 有料のCI/CDサービスについて調査をした • CircleCI の有料プラン導入をチームと部へ提案した ◦
提案資料は「数字」を意識した • CircleCI の有料プラン(年間プラン)を導入した
参考 • octokit.rb • https://github.com/octokit/octokit.rb • Architectural Decision Records •
https://adr.github.io/
ご清聴ありがとうございました