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
アプリ開発初挑戦のチームでアプリ運用の自動化した話
Search
Yosuke Fujii
August 16, 2017
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプリ開発初挑戦のチームでアプリ運用の自動化した話
第10回大阪Jenkins勉強会の発表資料です。
Yosuke Fujii
August 16, 2017
More Decks by Yosuke Fujii
See All by Yosuke Fujii
arap_osaka_1
syousa1982
1
420
アプリ開発初心者が Androidアプリを作っている話
syousa1982
0
2.2k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How to Ace a Technical Interview
jacobian
281
24k
Building Adaptive Systems
keathley
44
3.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
New Earth Scene 8
popppiees
3
2.3k
Six Lessons from altMBA
skipperchong
29
4.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
4 Signs Your Business is Dying
shpigford
187
22k
Transcript
アプリ開発初挑戦のチームで アプリ運用の自動化した話 @syo_sa1982
目次 • お前誰? • プロダクトの説明 • 運用方法の変遷とやった事とか • 今後改善したいこと •
所感とかまとめ
お前誰よ? • 名前:藤井陽介(@syo_sa1982) • 仕事:株式会社テクロスのエンジニア • PC・スマホ向けブラウザゲームの運用開発など • フロントエンドからバックエンドまで浅く広い器用(?)貧乏 •
インフラは苦手 • Jenkinsをまともに触り始めたのはつい最近の話。
プロダクトの説明 • 神姫Project • 2017/04/20�アプリ版リリース • iOS、Android(GooglePlay版、DMM版)にて配信中 • 元々はDMM GAMESで配信中のPC向けブラウザゲーム
質問タイム
普段からJenkinsを 業務で使いこなしてる人
スマホアプリの開発を リリースまで経験している人
アサイン当初
None
None
ʊਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹɹɹԹ͔Έͷ͋Δɹɹɹʻ ʼɹखಈϏϧυˍσϓϩΠɹʻ ʉ:?:?:?:?:?:?:?:?:?:?:ʉ
None
• ビルド自体はスクリプト化されていたとはいえ当然ながらオペミスが発生し易い • 各テスト環境に向けたビルド設定が存在しているため、それに合わせてパラメータを変える必要がある • iOS,Android共に両方ビルドする必要がある • しかもAndroid版はプロダクトの性質上2つ有るので実質3つ同時。 • 手元でビルドすると重くて最悪の場合、何もできなくなる
• 特にiOS • 図では省いてるけど、審査の提出も手動 • DMMを介してGoogle,Appleに提出してる • と言うか、完全に属人化してる
Jenkins使用初期
None
Good • ビルドスクリプトをJenkinsから実行することでオペミスは減った。 • 環境の指定などの引数はJenkins上で選択できるようにした。
Bad • DeployGateへの反映はまだ手動のまま • 相変わらずビルド中は重い。 • 特にiOS • 結局ローカル上でビルドしてるので属人化から抜け出せてない
ビルドマシン& Fastlane導入初期
その前に… Fastlaneって何よ?
• Ruby製のタスクランナー • 主にiOS/Androidアプリのビルド、テスト、デプロイを行う事ができる • 今のプロジェクトではビルド・デプロイ・Slack通知に使ってる
None
Good • ここからやっと属人化から解き放たれた • エンジニアのやる事はコードレビューとタスク実行だけ • タスク実行自体はエンジニアだけでなくデバッガーも可能に • 最近はデバッガーがタスク実行してることの方が多い
Bad • DeployGateへの反映はまだ手動のまま • Jenkinsのジョブをメンテし直す必要が発生するケースが有る
ビルドマシン導入後期(最近)
• 審査提出までのフローを一部自動化 • 前提として、DeployGateに上げるわけには行かなかった。 • タスクを実行すると共有のGoogleDriveに吐き出されるようにした。 • 結果、プランナーだけで提出作業が完結した。 • アプリのバージョン情報の管理
• 必ずタスクを介して更新するように整備 • Slackの通知周りを整備 • ビルド時のブランチ・環境・バージョンなどを通知に • 主にデバッガーの作業が楽に
今後改善していきたい事 • ビルド時に実行するgit操作をshellで泥臭く書いてしまっているので、 Gitの操作はJenkinsの機能で完結させたい。 • 一部のパラメータは選択式にしてるけど、運用が進むに連れて パラメータの選択肢に対するメンテが発生するので、動的生成させたい • ビルド対象のbranchとか。 •
プルリクエストのマージからビルドまでの自動化 • ただ、マージの頻度が多いので自動化して良いものか悩ましい
所感とかまとめとか • スマホアプリの開発には自動化必須(当たり前だけど) • 但し、自動化はあくまでツール。 • まずは運用フローを整備して、 それに合わせた自動化環境を整備していくべきだと思う。 • エンジニアが居なくても回るようにすることも必要だけど、
他セクションの仕事が楽になることも考慮して行くと良い。
お約束ですが、最後に…
テクロスではエンジニアを募集しています。 • いずれかに該当する人が居れば是非声をかけてください。 • パフォーマンスチューニングや自動化に興味ある人 • サーバーサイド又はフロントエンドが得意な人 • 実現したいことに対しての周囲を巻き込みながら動ける人 •
コンシューマ/ ソーシャル問わずゲーム好きな方