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
ACES Meet におけるリリース作業改善の取り組み
Search
Masashi Fukuzawa
October 02, 2024
Programming
0
160
ACES Meet におけるリリース作業改善の取り組み
Presenting at the following event on October 2, 2024
https://cybozu.connpass.com/event/328524/
Masashi Fukuzawa
October 02, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
カスタムしながら理解するGraphQL Connection
yanagii
1
1.3k
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
7
2.9k
CSC509 Lecture 09
javiergs
PRO
0
120
Why Spring Matters to Jakarta EE - and Vice Versa
ivargrimstad
0
1k
カラム追加で増えるActiveRecordのメモリサイズ イメージできますか?
asayamakk
4
1.6k
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
110
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
5
3.7k
Amazon Neptuneで始めてみるグラフDB-OpenSearchによるグラフの全文検索-
satoshi256kbyte
4
340
CSC509 Lecture 08
javiergs
PRO
0
110
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
140
Hotwire or React? ~Reactの録画機能をHotwireに置き換えて得られた知見~ / hotwire_or_react
harunatsujita
9
4.2k
CSC305 Lecture 13
javiergs
PRO
0
130
Featured
See All Featured
Producing Creativity
orderedlist
PRO
341
39k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Navigating Team Friction
lara
183
14k
GraphQLとの向き合い方2022年版
quramy
43
13k
What's in a price? How to price your products and services
michaelherold
243
12k
BBQ
matthewcrist
85
9.3k
Teambox: Starting and Learning
jrom
132
8.7k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
Agile that works and the tools we love
rasmusluckow
327
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Designing Experiences People Love
moore
138
23k
Transcript
ACES, Inc. AI ソフトウェア事業部 福澤 将史 ACES Meet における リリース作業改善の取り組み
2 CONFIDENTIAL 自己紹介 福澤 将史 Masashi Fukuzawa 所属: 株式会社ACES /
AIソフトウェア事業部 ポジション: サーバーサイドエンジニア / テックリード 出身: 福岡 好きなラーメン屋: 一九ラーメン (粕屋店) その他: 社会人学生としてCSを学び直し中
3 CONFIDENTIAL 会社紹介 / サービス紹介
4 CONFIDENTIAL AI研究と社会実装をリードする東大松尾研究室メンバーを中心に創業。 AIアルゴリズムという独自の視点から事業を創出 東大松尾研AIベンチャー …
5 CONFIDENTIAL 活用が困難だったお客様とのやり取りをデータベース化し、 営業力を強化する活動に活用できる営業支援AIツールです。 ACES Meetとは お客様とのやり取り お客様とのやり取りをDB化・活用する 営業支援AIツール 営業力の強化
DB スキルアップ・育成 商談記録・引継ぎ 勝ちパターン 活用
6 CONFIDENTIAL ACES Meet におけるリリース作業改善の取り組み
7 CONFIDENTIAL ACES Meet はまだプロダクトマーケットフィット (PMF) したとは言えない 高速にリリースを回し、フィードバックをもらう機会を増やすことが重要 前提: ACES
Meet の プロダクト状況について 出典: https://knowledge-bridge.info/marketing/2038/
8 CONFIDENTIAL PMF に向けてリリース頻度を上げていきたいが、リリース前準備が煩雑 リリース頻度が増えるとその分リリース作業に時間が奪われ、開発生産性が低下 リリース作業に関する課題感
9 CONFIDENTIAL 手作業で実施している リリース作業 様々な歴史的経緯で複雑化した運用を簡易化・効率化したいと考え、黄色の ハイライト箇所から改善に取り組み始めた ▪ デプロイ前 - リリース時の注意事項のリストアップ・確認
- PR 一覧の抽出 & 貼り付け => 改善1 - DB マイグレーションの有無 & 対象テーブルのレコード数の確認 => 改善2 - リポジトリ間のリリース順の確認 - AIのモデルアップデートの有無 - etc... ▪ デプロイ - 手動タグ打ち & Push による CI/CD のトリガー => 改善3 - Slack でデプロイ開始報告 => 改善3 ▪ デプロイ後 - リリース内容の共有 => 改善3
10 CONFIDENTIAL ▪ デプロイ前 - リリース時の注意事項のリストアップ・確認 - PR 一覧の抽出 &
貼り付け => 改善1 - DB マイグレーションの有無 & 対象テーブルのレコード数の確認 => 改善2 - リポジトリ間のリリース順の確認 - AIのモデルアップデートの有無 - etc... ▪ デプロイ - 手動タグ打ち & Push による CI/CD のトリガー => 改善3 - Slack でデプロイ開始報告 => 改善3 ▪ デプロイ後 - リリース内容の共有 => 改善3 手作業で実施している リリース作業 様々な歴史的経緯で複雑化した運用を簡易化・効率化したいと考え、黄色の ハイライト箇所から改善に取り組み始めた
11 CONFIDENTIAL 改善1: PR の洗い出し作業の 簡易化 Squash merge を強制 &
デプロイ用の PR を作成する運用に変更することで、リ リース対象を正しく・自動的にリストアップできるようにし、余計な作業を削減 before after
12 CONFIDENTIAL ▪ デプロイ前 - リリース時の注意事項のリストアップ・確認 - PR 一覧の抽出 &
貼り付け => 改善1 - DB マイグレーションの有無 & 対象テーブルのレコード数の確認 => 改善2 - リポジトリ間のリリース順の確認 - AIのモデルアップデートの有無 - etc... ▪ デプロイ - 手動タグ打ち & Push による CI/CD のトリガー => 改善3 - Slack でデプロイ開始報告 => 改善3 ▪ デプロイ後 - リリース内容の共有 => 改善3 手作業で実施している リリース作業 様々な歴史的経緯で複雑化した運用を簡易化・効率化したいと考え、黄色の ハイライト箇所から改善に取り組み始めた
13 CONFIDENTIAL 改善2: DB マイグレーションの 事前検知 元々、ALTER 文実行時のトラブル (*) を未然に防ぐために、変更対象のテーブルの
リストアップおよびデータ容量・レコード数を手動で確認していた デプロイ用 PR 作成時に、アラートコメントが自動生成されるようにした (*) 例えば、MySQL では ALTER 文を実行する時、テーブルのコピーが作られるが、この仕組みを知らずにデータ容量の多いテーブルに ALTER 文を実行してしまうと、 DB のストレージを一時的に枯渇させる危険がある。
14 CONFIDENTIAL 手作業で実施している リリース作業 様々な歴史的経緯で複雑化した運用を簡易化・効率化したいと考え、黄色の ハイライト箇所から改善に取り組み始めた ▪ デプロイ前 - リリース時の注意事項のリストアップ・確認
- PR 一覧の抽出 & 貼り付け => 改善1 - DB マイグレーションの有無 & 対象テーブルのレコード数の確認 => 改善2 - リポジトリ間のリリース順の確認 - AIのモデルアップデートの有無 - etc... ▪ デプロイ - 手動タグ打ち & Push による CI/CD のトリガー => 改善3 - Slack でデプロイ開始報告 => 改善3 ▪ デプロイ後 - リリース内容の共有 => 改善3
15 CONFIDENTIAL 改善3: CI/CD のアップデート デプロイ用 PR が特定のブランチにマージされたらタグ打ち・リリースノート生成・ デプロイ開始通知が実行される GitHub
Actions を実装 これにより、デプロイ自体の簡易化も実現
16 CONFIDENTIAL before / after まとめ リリース作業を簡易化することで作業時間を削減 リリース頻度が上がっても開発生産性を低下させないプロセスにアップデートできた
17 CONFIDENTIAL チームの反応 / 所感 ▪ チームの反応 (Slack / レトロスペクティブ)
▪ 所感 - 今回の改善を通じて、確認作業系は際限なくToDoを増やせるうえ、困ったときにはダブルチェックに逃げやすい性質が あることを改めて感じました。歴史を繰り返さないよう、今後は運用負荷を上げずに課題を解決できるアイデアを出し合 えるチームにしていきたいです。
None
19 CONFIDENTIAL (参考) テーブルのデータ容量・ レコード数を取得するSQL MySQL では information_schema.TABLES から各テーブルのメタデータの 取得が可能