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
220
マイナビ学生の窓口 半内製化の取り組みを振り返る / 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
500
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
970
若手エンジニアと行くマイナビ賃貸のクラウド化への道 / Mynavi Chintai Cloudization with Young Engineer
mynavi_sys
0
420
Other Decks in Technology
See All in Technology
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
How to be an AWS Community Builder | 君もAWS Community Builderになろう!〜2024 冬 CB募集直前対策編?!〜
coosuke
PRO
2
2.8k
あの日俺達が夢見たサーバレスアーキテクチャ/the-serverless-architecture-we-dreamed-of
tomoki10
0
470
UI State設計とテスト方針
rmakiyama
2
650
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
shin1x1
1
420
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
140
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
170
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
850
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
570
Featured
See All Featured
Building Your Own Lightsaber
phodgson
103
6.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Adopting Sorbet at Scale
ufuk
73
9.1k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Bash Introduction
62gerente
608
210k
Done Done
chrislema
181
16k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
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
ご清聴ありがとうございました