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
350
マイナビ学生の窓口 半内製化の取り組みを振り返る / 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
Tirez profit de Messenger pour améliorer votre architecture
tucksaun
1
150
コンソールで学ぶ!AWS CodePipelineの機能とオプション
umekou
2
120
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
730
頻繁リリース × 高品質 = 無理ゲー? いや、できます!/20250306 Shoki Hyo
shift_evolve
0
160
[CATS]Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
150
「家族アルバム みてね」を支えるS3ライフサイクル戦略
fanglang
1
240
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
13
4k
AIエージェント完全に理解した
segavvy
4
270
問題解決に役立つ数理工学
recruitengineers
PRO
7
2.2k
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略
ryu955
2
490
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.5k
Featured
See All Featured
Faster Mobile Websites
deanohume
306
31k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Site-Speed That Sticks
csswizardry
4
450
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Become a Pro
speakerdeck
PRO
27
5.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Statistics for Hackers
jakevdp
798
220k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Code Review Best Practice
trishagee
67
18k
Designing for Performance
lara
606
69k
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
ご清聴ありがとうございました