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
250
アプリ開発初挑戦のチームでアプリ運用の自動化した話
第10回大阪Jenkins勉強会の発表資料です。
Yosuke Fujii
August 16, 2017
Tweet
Share
More Decks by Yosuke Fujii
See All by Yosuke Fujii
arap_osaka_1
syousa1982
1
310
アプリ開発初心者が Androidアプリを作っている話
syousa1982
0
1.8k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
GraphQLとの向き合い方2022年版
quramy
33
12k
Become a Pro
speakerdeck
PRO
13
4.6k
How to train your dragon (web standard)
notwaldorf
75
5.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Faster Mobile Websites
deanohume
300
30k
GitHub's CSS Performance
jonrohan
1025
450k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
The Mythical Team-Month
searls
217
42k
Atom: Resistance is Futile
akmur
260
25k
Infographics Made Easy
chrislema
238
18k
Designing Experiences People Love
moore
136
23k
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とか。 •
プルリクエストのマージからビルドまでの自動化 • ただ、マージの頻度が多いので自動化して良いものか悩ましい
所感とかまとめとか • スマホアプリの開発には自動化必須(当たり前だけど) • 但し、自動化はあくまでツール。 • まずは運用フローを整備して、 それに合わせた自動化環境を整備していくべきだと思う。 • エンジニアが居なくても回るようにすることも必要だけど、
他セクションの仕事が楽になることも考慮して行くと良い。
お約束ですが、最後に…
テクロスではエンジニアを募集しています。 • いずれかに該当する人が居れば是非声をかけてください。 • パフォーマンスチューニングや自動化に興味ある人 • サーバーサイド又はフロントエンドが得意な人 • 実現したいことに対しての周囲を巻き込みながら動ける人 •
コンシューマ/ ソーシャル問わずゲーム好きな方