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
マイナビニュースがチーム開発をするためにやってきたこと / What Mynavi News ...
Search
Mynavi System
November 20, 2019
Technology
0
2.4k
マイナビニュースがチーム開発をするためにやってきたこと / What Mynavi News did to do team development
マイナビ Tech Night #3 でのマイナビニュースの登壇資料です。
https://mynavi.connpass.com/event/151607/
Mynavi System
November 20, 2019
Tweet
Share
More Decks by Mynavi System
See All by Mynavi System
マイナビの全社データ基盤の モダナイズ/Developers-Summit-2024-Mynavi
mynavi_sys
0
180
マイナビ学生の窓口 半内製化の取り組みを振り返る / A retrospective investigation of our effort of semi-insourcing
mynavi_sys
0
1.6k
ライフメディアにおけるプライベートDMPの取り組み / mynavi-dmp-lifemedia
mynavi_sys
0
400
マイナビのシステム部門のご紹介 / Introduction of Mynavi Engineering Teams
mynavi_sys
0
490
CI環境としてのAWS CodeBuild / AWS CodeBuild as a CI software
mynavi_sys
0
1.5k
Webページ・スピード改善 / Webpage speed improvement
mynavi_sys
0
100
マイナビミドルシニアのプロダクトたち / Mynavi Middle Senior products
mynavi_sys
0
230
マイナビクラウドとその中の人たち / Mynavi Cloud and Insider
mynavi_sys
0
940
若手エンジニアと行くマイナビ賃貸のクラウド化への道 / Mynavi Chintai Cloudization with Young Engineer
mynavi_sys
0
400
Other Decks in Technology
See All in Technology
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
390
TypeScript、上達の瞬間
sadnessojisan
43
12k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
6
2.3k
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
350
인디 앱 개발자와 Flutter
tinyjin
0
160
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
150
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
0
270
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
300
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
320
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
230
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
520
Amazon CloudWatch Network Monitor のススメ
yuki_ink
0
170
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.2k
Unsuck your backbone
ammeep
668
57k
Fireside Chat
paigeccino
33
3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
A better future with KSS
kneath
238
17k
Code Review Best Practice
trishagee
64
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Transcript
マイナビニュースが チーム開発をするためにやっ てきたこと 岡部恭平 / Mynavi Corporation 2019.11.20 マイナビ Tech
Night #3
岡部恭平 @okabeeeat Webアプリケーションエンジニア IT戦略事業部 IT開発統括部 開発2部 ニュース開発1課
最近(というか結構前) ISUCON9 に参加しました!
本日の目標 以下の内容を知ってもらえるよう頑張ります • マイナビニュースについて • チーム開発をする上での課題と取り組み • これからやっていくこと
マイナビニュースとは?
None
マイナビニュース ・ビジネスパーソンのON/OFF、男女を問わず、 幅広いジャンルの情報を提供する総合ニュース メディア ・ニュースに限らず、役立つノウハウや体験レ ポート、まじめなレビュー、柔らかい記事から硬 派な記事まで網羅 その先を伝える総合情報サイト
https://www.youtube.com/watch?v=bu9yJ7wcpXc ガチャピンが紹介してバズった記事も https://news.mynavi.jp/article/20190108-753067/
チーム構成 ディレクター エンジニア エンジニア(リモート) ニュースメディア事業部 IT戦略事業部 開発ベンダー エンジニア インフラ・マーケティングチーム
システム統括部 編集・制作・事業推進・営業など 120人規模
マイナビニュースを支える技術 開発言語 コミュニケーション・情報共有 開発支援 インフラ
開発の雰囲気
チーム開発,割とできている のでは?
NO!!!
入社時はこんな状態ではな かった・・・
チーム開発をする上での 課題と取り組み
入社時(2019年1月)の課題 • プルリクエストの情報が GitHub 上に無い • え!誰が今どの環境でデプロイしてるの? • システムリニューアル時の流れで使っている Git-flow
入社時(2019年1月)の課題 • プルリクエストの情報が GitHub 上に無い • え!誰が今どの環境でデプロイしてるの? • システムリニューアル時の流れで使っている Git-flow
プルリクエストの情報が GitHub 上に無い え!?プルリクエストが紐付いてない? (master に直接 push している??) 入社して数日後のこと...
プルリクエストの情報が GitHub 上に無い 原因 • 開発ベンダー側は自社の GitLab で開発を進めて いた •
リニューアル時に実装した主要なロジックの意図 を commit のみで探るのが辛い・・・
プルリクエストの情報が GitHub 上に無い 解決方法 マイナビの GitHub に統合する
やったこと 開発フローの整備
やったこと CI 環境の構築 ◦ マイナビ側では CircleCI 利用していた ◦ 開発メンバーが増えるため契約コンテナ数が 足りない!?
CI 環境の構築 https://speakerdeck.com/mynavi_sys/aws-codebuild-as-a-ci-software 詳しくはこちらにまとめました
結果 • プルリクエストがわかるようになった • 全員でコードレビューができるようになった
入社時(2019年1月)の課題 • プルリクエストの情報が GitHub 上に無い • え!誰が今どの環境でデプロイしてるの? • システムリニューアル時の流れで使っている Git-flow
え!誰が今どの環境でデプロイしてるの? リリースだ! エンジニア
え!誰が今どの環境でデプロイしてるの? 次のタスクやろう ディレクター あいつ今日リリース予 定って聞いたけどちゃ んとリリースしたの か? エンジニア エンジニア
リリース したの? してないの? Slack などで報告・共有を忘れる...
え!誰が今どの環境でデプロイしてるの? 解決方法 Capistrano プラグインの導入
やったこと capistrano-github-releases の導入 • 本番リリース時にプルリクエストへのコメントの自動化と Tags ・ Releases を自動生成
やったこと capistrano-releases-notification の導入 • デプロイ時に Slack に通知するようにした
結果 • 報告・共有が自動化された • リリースノートができた!! リリースだ! ディレクター リリースされた! エンジニア
エンジニア リリース された!!
入社時(2019年1月)の課題 • プルリクエストの情報が GitHub 上に無い • え!誰が今どの環境でデプロイしてるの? • リニューアル時の流れで使っている Git-flow
リニューアル時の流れで使っている Git-flow master ← develop ← feature • リニューアル時から続いているブランチ構成
• 切り戻し(複数の feature ブランチを取り込んだ develop ブランチ)に時間が掛かる • リニューアル後,Git-flow にする理由は特に見当 たらなかった
解決方法 GitHub Flow に変更 リニューアル時の流れで使っている Git-flow
• develop ブランチの廃止 • 開発フローの整備 やったこと
• git 操作の作業量とミスが削減した • 開発速度が上がった • 開発フローがよりシンプルになった 結果
その他の効果 • issue や プルリクエストに開発業務の証跡を残す 習慣がチームに身についてきた • マイナビと開発ベンダーで開発チームとしての一 体感が増した ラフなやり取りもできるようになった!
一旦は色々整った (まだ色々できそうだけど)
これからやっていくこと
サーバーサイド プロダクトのグロースと変化により対応できる構成へ • 新機能・運用負荷軽減のため機能開発 ◦ CMS の機能追加・改修 ◦ Slack
bot・アプリの開発 • モノリシックリポジトリの分離 ◦ ニュース・CMS・API を機能毎に分離 ◦ 変化に対応しやすくする
フロントエンド コンポーネント管理ができるフロントエンド開発へ • E2Eテストの導入 • jQuery から Vue.js への移行
◦ Vue.js は一部は入っている ◦ jQuery のコードはまだまだ多い ◦ 単一ファイルコンポーネント使いたい!
インフラ インフラのコード化と最適化 • CloudFormation のリファクタリング ◦ テンプレートファイルの分割 • Terraform
の検証・導入 ◦ CloudFormation とのハイブリット構成の検討 • AWS リソースのコスト最適化 ◦ リソースの見直し ◦ リザーブドインスタンス化
他にもやりたいことがいっぱ いある!!!
まとめ • マイナビニュースと開発チームについて紹介した • チーム開発をする上での課題と解決方法をお話 した ◦ GitHub への統合 ◦
Capistrano プラグインの導入 ◦ GitHub フローへの変更 • これからやっていくことがとにかく沢山ある
参考 • capistrano-github-releases ◦ https://github.com/linyows/capistrano-github-releases • capistrano-releases-notification ◦ https://github.com/kimromi/capistrano-releases-notification
ご清聴ありがとうございました