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
Agile that works and the tools we love
rasmusluckow
329
21k
Unsuck your backbone
ammeep
671
58k
It's Worth the Effort
3n
184
28k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Bash Introduction
62gerente
614
210k
A Tale of Four Properties
chriscoyier
159
23k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
YesSQL, Process and Tooling at Scale
rocio
172
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Writing Fast Ruby
sferik
628
61k
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とか。 •
プルリクエストのマージからビルドまでの自動化 • ただ、マージの頻度が多いので自動化して良いものか悩ましい
所感とかまとめとか • スマホアプリの開発には自動化必須(当たり前だけど) • 但し、自動化はあくまでツール。 • まずは運用フローを整備して、 それに合わせた自動化環境を整備していくべきだと思う。 • エンジニアが居なくても回るようにすることも必要だけど、
他セクションの仕事が楽になることも考慮して行くと良い。
お約束ですが、最後に…
テクロスではエンジニアを募集しています。 • いずれかに該当する人が居れば是非声をかけてください。 • パフォーマンスチューニングや自動化に興味ある人 • サーバーサイド又はフロントエンドが得意な人 • 実現したいことに対しての周囲を巻き込みながら動ける人 •
コンシューマ/ ソーシャル問わずゲーム好きな方