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
0
300
アプリ開発初挑戦のチームでアプリ運用の自動化した話
第10回大阪Jenkins勉強会の発表資料です。
Yosuke Fujii
August 16, 2017
Tweet
Share
More Decks by Yosuke Fujii
See All by Yosuke Fujii
arap_osaka_1
syousa1982
1
400
アプリ開発初心者が Androidアプリを作っている話
syousa1982
0
2k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Producing Creativity
orderedlist
PRO
346
40k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Adopting Sorbet at Scale
ufuk
77
9.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
4 Signs Your Business is Dying
shpigford
184
22k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Docker and Python
trallard
44
3.5k
Thoughts on Productivity
jonyablonski
69
4.7k
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とか。 •
プルリクエストのマージからビルドまでの自動化 • ただ、マージの頻度が多いので自動化して良いものか悩ましい
所感とかまとめとか • スマホアプリの開発には自動化必須(当たり前だけど) • 但し、自動化はあくまでツール。 • まずは運用フローを整備して、 それに合わせた自動化環境を整備していくべきだと思う。 • エンジニアが居なくても回るようにすることも必要だけど、
他セクションの仕事が楽になることも考慮して行くと良い。
お約束ですが、最後に…
テクロスではエンジニアを募集しています。 • いずれかに該当する人が居れば是非声をかけてください。 • パフォーマンスチューニングや自動化に興味ある人 • サーバーサイド又はフロントエンドが得意な人 • 実現したいことに対しての周囲を巻き込みながら動ける人 •
コンシューマ/ ソーシャル問わずゲーム好きな方