アプリ開発初挑戦のチームでアプリ運用の自動化した話

6e2c7867e96ea21953e6be4c6e1ee507?s=47 Yosuke Fujii
August 16, 2017
180

 アプリ開発初挑戦のチームでアプリ運用の自動化した話

第10回大阪Jenkins勉強会の発表資料です。

6e2c7867e96ea21953e6be4c6e1ee507?s=128

Yosuke Fujii

August 16, 2017
Tweet

Transcript

  1. アプリ開発初挑戦のチームで アプリ運用の自動化した話 @syo_sa1982

  2. 目次 • お前誰? • プロダクトの説明 • 運用方法の変遷とやった事とか • 今後改善したいこと •

    所感とかまとめ
  3. お前誰よ? • 名前:藤井陽介(@syo_sa1982) • 仕事:株式会社テクロスのエンジニア • PC・スマホ向けブラウザゲームの運用開発など • フロントエンドからバックエンドまで浅く広い器用(?)貧乏 •

    インフラは苦手 • Jenkinsをまともに触り始めたのはつい最近の話。
  4. プロダクトの説明 • 神姫Project • 2017/04/20�アプリ版リリース • iOS、Android(GooglePlay版、DMM版)にて配信中 • 元々はDMM GAMESで配信中のPC向けブラウザゲーム

  5. 質問タイム

  6. 普段からJenkinsを 業務で使いこなしてる人

  7. スマホアプリの開発を リリースまで経験している人

  8. アサイン当初

  9. None
  10. None
  11. ʊਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹɹɹԹ͔Έͷ͋Δɹɹɹʻ ʼɹखಈϏϧυˍσϓϩΠɹʻ ʉ:?:?:?:?:?:?:?:?:?:?:ʉ

  12. None
  13. • ビルド自体はスクリプト化されていたとはいえ当然ながらオペミスが発生し易い • 各テスト環境に向けたビルド設定が存在しているため、それに合わせてパラメータを変える必要がある • iOS,Android共に両方ビルドする必要がある • しかもAndroid版はプロダクトの性質上2つ有るので実質3つ同時。 • 手元でビルドすると重くて最悪の場合、何もできなくなる

    • 特にiOS • 図では省いてるけど、審査の提出も手動 • DMMを介してGoogle,Appleに提出してる • と言うか、完全に属人化してる
  14. Jenkins使用初期

  15. None
  16. Good • ビルドスクリプトをJenkinsから実行することでオペミスは減った。 • 環境の指定などの引数はJenkins上で選択できるようにした。

  17. Bad • DeployGateへの反映はまだ手動のまま • 相変わらずビルド中は重い。 • 特にiOS • 結局ローカル上でビルドしてるので属人化から抜け出せてない

  18. ビルドマシン& Fastlane導入初期

  19. その前に…
 Fastlaneって何よ?

  20. • Ruby製のタスクランナー • 主にiOS/Androidアプリのビルド、テスト、デプロイを行う事ができる • 今のプロジェクトではビルド・デプロイ・Slack通知に使ってる

  21. None
  22. Good • ここからやっと属人化から解き放たれた • エンジニアのやる事はコードレビューとタスク実行だけ • タスク実行自体はエンジニアだけでなくデバッガーも可能に • 最近はデバッガーがタスク実行してることの方が多い

  23. Bad • DeployGateへの反映はまだ手動のまま • Jenkinsのジョブをメンテし直す必要が発生するケースが有る

  24. ビルドマシン導入後期(最近)

  25. • 審査提出までのフローを一部自動化 • 前提として、DeployGateに上げるわけには行かなかった。 • タスクを実行すると共有のGoogleDriveに吐き出されるようにした。 • 結果、プランナーだけで提出作業が完結した。 • アプリのバージョン情報の管理

    • 必ずタスクを介して更新するように整備 • Slackの通知周りを整備 • ビルド時のブランチ・環境・バージョンなどを通知に • 主にデバッガーの作業が楽に
  26. 今後改善していきたい事 • ビルド時に実行するgit操作をshellで泥臭く書いてしまっているので、
 Gitの操作はJenkinsの機能で完結させたい。 • 一部のパラメータは選択式にしてるけど、運用が進むに連れて
 パラメータの選択肢に対するメンテが発生するので、動的生成させたい • ビルド対象のbranchとか。 •

    プルリクエストのマージからビルドまでの自動化 • ただ、マージの頻度が多いので自動化して良いものか悩ましい
  27. 所感とかまとめとか • スマホアプリの開発には自動化必須(当たり前だけど) • 但し、自動化はあくまでツール。 • まずは運用フローを整備して、
 それに合わせた自動化環境を整備していくべきだと思う。 • エンジニアが居なくても回るようにすることも必要だけど、


    他セクションの仕事が楽になることも考慮して行くと良い。
  28. お約束ですが、最後に…

  29. テクロスではエンジニアを募集しています。 • いずれかに該当する人が居れば是非声をかけてください。 • パフォーマンスチューニングや自動化に興味ある人 • サーバーサイド又はフロントエンドが得意な人 • 実現したいことに対しての周囲を巻き込みながら動ける人 •

    コンシューマ/ ソーシャル問わずゲーム好きな方