Next.js は、現代の Web 開発シーンを席巻している比較的最近の強力な JavaScript フレームワークであるリポジトリです。 Next.js は、サーバー側レンダリング、静的サイト生成、SEO 最適化により React を強化します。
開発者はその多用途性を気に入っており、数字がそれを物語っています。最近の調査では、開発者の 60% が、デプロイとスケーラビリティの容易さから、本番環境に対応したアプリケーションの構築には Next.js を好むと回答しました。デプロイ時間を比較すると、Next.js は速度と効率の点で React を常に上回っており、シームレスなビルド プロセスを目指す開発者にとって頼りになる選択肢となっています。
このケーススタディは、OpenSource Next.js リポジトリに焦点を当てており、特にその例外的なデプロイ頻度に焦点を当てています。
動的な e コマース サイトや迅速に起動するブログを構築するために Next.js をいじってきた開発者として、私たちは不思議に思わずにはいられませんでした -- 彼らはどのようにしてこのような伝説的なリポジトリをこれほど効率的に作成し、管理したのでしょうか?そこで、ミドルウェア オープンソースを使用してさらに詳しく調査しました。
これらの洞察をさらに調査し、他のエンジニアリング リーダーとつながることに興味がある場合は、 The Middle Out Community に参加するか、限定のニュースレターを購読してください。事例紹介など!
しかし、まず最初に。 Dora メトリクスとは何かを理解しましょう。
Dora メトリクスは、ソフトウェア配信におけるプロジェクトの開始から最終運用までの進行効率を示す重要な指標です。 Dora Metrics と、Dora Metrics がエンジニアリング プロセスにどのように役立つかに関する詳細なブログをぜひお読みください。
デプロイメント頻度: コードが本番環境にヒットする頻度。
変更のリードタイム: コミットが有効になるまでにかかる時間。
平均復元時間 (MTTR): 障害から回復するまでにかかる時間。
変更失敗率: そのうちの何件が何かを壊します。
全員が同じ認識を持ったので、Next.js がどのように機能するかを見てみましょう。
OpenSource Next.js リポジトリは、業界標準をはるかに上回る、その並外れたデプロイ頻度で際立っています。過去 3 か月間、リポジトリはチームの効率性と自動化の能力を反映して、一貫して大量のデプロイメントを推進してきました。
2024 年 6 月には 247 件の導入があり、7 月には 261 件、8 月には 279 件という驚異的な数字が続きました。これらの数字は、リポジトリの継続的統合と迅速な機能リリースへの取り組みを強調しており、オープンソース コミュニティにおけるデプロイ頻度のベンチマークとなっています。
これは、ほぼ 3 時間に 1 回の導入に相当します。この高頻度の展開は単なる見せ物ではありません。それにより、プロジェクトは驚くべきスピードで進化し続けます。彼らはどうやってそれを行うのでしょうか?いくつかの重要な要素が際立っています:
自動化された CI/CD パイプライン: 自動化を導入すると、デプロイメントが迅速かつスムーズになり、まるで魔法のようです。
頻繁で小規模な PR: 変更を一口サイズのプル リクエストに分割することで、より少ないリスクでより迅速にマージおよびデプロイできます。
迅速な問題解決: バグはすぐに潰され、展開の失敗はほとんどありません。
デプロイ頻度が高いにもかかわらず、リポジトリではサイクル タイムに顕著な変動が見られ、変更の全体的なリード タイムに影響を及ぼします。サイクル タイムにはすべての PR が含まれますが、リード タイムには利用可能な導入データを含む PR のみが含まれます。 2024 年 6 月の平均サイクル タイムは約 3.5 日で、7 月には 3.6 日とわずかに増加し、8 月には 5.3 日まで急増しました。
サイクルタイムは増加傾向にあり、3.5 日から 5.3 日へと増加しており、開発プロセスに多少の遅れがあることを示しています。コードレビュー、テスト、または手動タスクのいずれにおいてもボトルネックを特定し、自動テストを実装するか、スプリント計画を改善することで、これを軽減できる可能性があります。
2024 年 6 月の平均初回応答時間は 1.6 日 (38.4 時間) で、Next.js リポジトリの問題とプル リクエストが迅速かつ効率的に処理されたことを示しています。 2024 年 7 月までに、この時間はわずかに増加して 1.8 日 (43.2 時間) となり、おそらく問題数の増加またはチームの可用性の低下が原因で、若干の遅れが生じる可能性を示唆しています。
ただし、2024 年 8 月には 2.6 日 (62.4 時間) に大幅に増加しており、おそらく作業負荷の増加、レビュー担当者の割り当てのボトルネック、または休暇によるチーム メンバーの減少が原因で、顕著な遅延が発生していることを示唆しています。
初回応答時間を改善するには、最近増加している遅延に対処するためのいくつかの戦略を実装できます。問題やプル リクエストの通知を自動化すると、レビュー担当者への割り当てが迅速化され、待ち時間が短縮されます。
応答時間に関する SLA (サービス レベル アグリーメント) を導入すると、説明責任が生まれ、より迅速な対応が促進される可能性があります。さらに、チームの割り当てと作業負荷の分散を見直すことは、特に需要が高い時期や休暇などチームの可用性が低下している時期に、責任のバランスを取るのに役立つ可能性があります。
部門間のコラボレーションを促進すると、チーム全体に負荷がより均等に分散され、より迅速な対応が可能になる可能性もあります。これらの変更により、応答時間が効果的に短縮され、効率が維持される可能性があります。
2024 年 6 月から 8 月にかけて、Next.js リポジトリの変更のリードタイムは 3.3 日から 4.1 日へと徐々に増加しました。 6 月には 3.3 日という比較的短い納期は、スムーズな調整による効率的なワークフローを反映しています。 7 月までに、これはわずかに増加して 3.6 日になり、コード レビューが長くなったり、タスクがより複雑になったりしたため、わずかな非効率があったことを示唆しています。
しかし、8 月までにリードタイムは 4.1 日に達し、作業負荷の増加、レビューのボトルネック、または休暇によるチーム能力の低下が原因で発生した可能性が高い、より大幅な遅延を示しています。この傾向は、プロセスを最適化し、さらなる速度低下を防ぐ必要があることを示唆しています。
理由?
レビュー時間が延長されました。例: PR #67498
綿密な精査とテストを伴う複雑なタスク。 PR #67391
最初の応答時間の変動(1.6 日から 2.6 日)により、レビューの開始時間が不均一になり、進捗が遅れます。
OpenSource Next.js リポジトリには、機能のアップグレードやバグ潰しからドキュメントの改善やテストの改良に至るまで、さまざまなアクティビティが含まれています。いくつかの重要な洞察の内訳は次のとおりです:
機能と改善: パフォーマンスの最適化 (PR #67397)、新機能 (PR #67215) を含むオーバーホール。
ドキュメント: ドキュメントへの大幅な貢献により、明確さと容易な採用が保証されます (PR #67056)。
バグ修正: 41.5 時間 (~1.7 日) の再作業時間 (PR #67022) によって強調される、重大なバグ修正に対処します。
パフォーマンスの最適化: フレームワークの速度と効率を強化します (PR #67065)。
これらのアップデートにより、Next.js は Web 開発のリーダーとしての地位を確立します。ただし、サイクル タイム、最初の応答、リード タイムなど、改善が必要な領域の多くは、テスト、コード レビュー、通知の自動化を強化することで恩恵を受けることができます。
さらに最適化するために、コードレビュー、テスト、デプロイ中にボトルネックが発生したかどうか、パイプライン内のボトルネックを追跡し、それらの領域をターゲットにして全体のパフォーマンスを向上させることができます。また、より頻繁なスタンドアップや振り返りを通じて継続的なフィードバックを促進することは、摩擦点を特定して解決するのに役立ちます。これらの戦略に焦点を当てることで、より効率的かつ合理化された開発および展開パイプラインを作成できます。
内部貢献者にとって、迅速な導入サイクルは夢のようなものです。機能と修正は迅速に展開されるため、チームはほぼリアルタイムでフィードバックを得ることができます。ただし、リードタイムが長いため、投稿者によっては自分の作品が公開されるのを待っている長い列に入れられていると感じる可能性があります。
外部貢献者にとって、これらのボトルネックを理解することで、より明確な期待を設定できます。 Next.js に貢献している場合は、デプロイメントが頻繁に行われる場合でも、PR のマージに少し時間がかかっても驚かないでください。
自動化への投資: 堅牢な CI/CD パイプラインにより、水のようにデプロイを継続できます。
小規模で頻繁な PR を奨励します: 複雑さが軽減されるということは、迅速なレビューと迅速な導入を意味します。
サイクル タイムのボトルネックに対処する: リード タイムが遅れている場合は、手戻りやレビュー時間など、遅れの原因を掘り下げます。
Next.js は驚異的なデプロイ頻度を実現しており、その頻度は急上昇していますが、リード タイム、サイクル タイム、最初の応答時間には注意が必要になる可能性があります。いくつかの戦略的調整を行うことで、Google の年次 Dora レポートの上位の企業に対して強力な競争相手となる可能性があります。
Next.js はデプロイ効率の新たなベンチマークを設定し、オープンソースの世界で注目される存在となっています。スピード、品質、絶え間ない革新の比類のない融合により、競合他社が追いつく余地はほとんどありません。あなたが積極的な貢献者であっても、好奇心旺盛な傍観者であっても、この先駆的なリポジトリからは賞賛し、学ぶべきことがたくさんあります。
Next.js は進化を続けていますが、Web の要求に応えるだけではありません。それが彼らを形作っているのです。オープンソースの卓越性を再定義する、さらなる画期的なアップデートに備えてください!
これらの洞察をさらに調査し、他のエンジニアリング リーダーとつながることに興味がある場合は、 The Middle Out Community に参加してください。特別なケーススタディなどを入手できるニュースレターを購読してください!
Next.js は 2016 年に Vercel (旧 Zeit) によって作成され、サーバー側でレンダリングされる React アプリケーションを構築するための強力な機能によりすぐに人気を博しました。静的サイト生成 (SSG) とサーバー側レンダリング (SSR) の両方をサポートしているため、開発者にとって柔軟な選択肢となります。 Netflix、Twitch、GitHub などの大手企業は、自社の Web アプリを強化するために Next.js を使用し、その信頼性とスケーラビリティを実証しています。
ミドルウェアとDoraのメトリクス
継続的インテグレーション ガイド
Dora メトリック手法
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3