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
350
ACES Meet におけるリリース作業改善の取り組み
Presenting at the following event on October 2, 2024
https://cybozu.connpass.com/event/328524/
Masashi Fukuzawa
October 02, 2024
Tweet
Share
More Decks by Masashi Fukuzawa
See All by Masashi Fukuzawa
ACES Meet の「2025年」を振り返る
fukucheee
0
54
Other Decks in Programming
See All in Programming
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
高速開発のためのコード整理術
sutetotanuki
1
410
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.7k
CSC307 Lecture 06
javiergs
PRO
0
690
2026年 エンジニアリング自己学習法
yumechi
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
620
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
260
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
740
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
AI時代の認知負荷との向き合い方
optfit
0
170
SourceGeneratorのススメ
htkym
0
200
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
Thoughts on Productivity
jonyablonski
74
5k
Become a Pro
speakerdeck
PRO
31
5.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Fireside Chat
paigeccino
41
3.8k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Design in an AI World
tapps
0
150
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Building Adaptive Systems
keathley
44
2.9k
First, design no harm
axbom
PRO
2
1.1k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
300
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 から各テーブルのメタデータの 取得が可能