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.5k
マイナビニュースがチーム開発をするためにやってきたこと / 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
340
マイナビ学生の窓口 半内製化の取り組みを振り返る / 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
530
CI環境としてのAWS CodeBuild / AWS CodeBuild as a CI software
mynavi_sys
0
1.5k
Webページ・スピード改善 / Webpage speed improvement
mynavi_sys
0
110
マイナビミドルシニアのプロダクトたち / Mynavi Middle Senior products
mynavi_sys
0
250
マイナビクラウドとその中の人たち / Mynavi Cloud and Insider
mynavi_sys
0
1k
若手エンジニアと行くマイナビ賃貸のクラウド化への道 / Mynavi Chintai Cloudization with Young Engineer
mynavi_sys
0
480
Other Decks in Technology
See All in Technology
LINE API Deep Dive Q1 2025: Unlocking New Possibilities
linedevth
1
160
20250326_管理ツールの権限管理で改善したこと
sasata299
1
360
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
2
220
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
20k
LINEギフトのLINEミニアプリアクセシビリティ改善事例
lycorptech_jp
PRO
0
240
Road to SRE NEXT@仙台 IVRyの組織の形とSLO運用の現状
abnoumaru
0
380
年末調整プロダクトの内部品質改善活動について
kaomi_wombat
0
200
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.2k
ペアプログラミングにQAが加わった!職能を超えたモブプログラミングの事例と学び
tonionagauzzi
1
140
AWS CDK コントリビュート はじめの一歩
yendoooo
1
120
モンテカルロ木探索のパフォーマンスを予測する Kaggleコンペ解説 〜生成AIによる未知のゲーム生成〜
rist
4
1.1k
30代エンジニアが考える、エンジニア生存戦略~~セキュリティを添えて~~
masakiokuda
4
2k
Featured
See All Featured
Making Projects Easy
brettharned
116
6.1k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Site-Speed That Sticks
csswizardry
4
450
GraphQLとの向き合い方2022年版
quramy
45
14k
Automating Front-end Workflow
addyosmani
1369
200k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
Into the Great Unknown - MozCon
thekraken
36
1.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
4 Signs Your Business is Dying
shpigford
183
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
700
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
ご清聴ありがとうございました