BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Booking.comがDORAメトリックスとマイクロ・フロントエンドを使用して配信パフォーマンスを倍増させる

Booking.comがDORAメトリックスとマイクロ・フロントエンドを使用して配信パフォーマンスを倍増させる

原文リンク(2024-02-28)

Booking.comのフィンテック事業部のチームは、プラットフォームのバックエンドとフロントエンドにわたって一連の改善を実施し、DORAメトリクスで測定されるデリバリー・パフォーマンスを2倍にできた。さらに、マイクロフロントエンド(MFE)パターンを使用して、モノリシックなFEアプリケーションを複数の分解アプリに分割し、別々にデプロイできるようにした。

Booking.comでは2022年半ばに新しいエンジニアリングチームが結成され、ファイナンス領域内のいくつかのプロセスを担当することになった。このチームは、Vue Frameworkを使用してPerlとJavascriptで書かれたモノリシックなフロントエンドアプリケーションと、他の多くのマイクロサービスに依存するJavaバックエンドサービスで構成される、より広いプラットフォームアーキテクチャの一部を継承した。

チームの所有領域(出典:Booking.com Engineering Blog)

チームはすぐに、既存のコードベースに変更を加え、本番環境にデプロイすることはリスクが高く、時間がかかることを発見した。デリバリーの頻度を改善したいと考えたチームは、DORAが提案したカスタマイズされたDevOpsメトリクスを採用し、デリバリープロセスの主要なパフォーマンス指標を追跡することにした。エンジニアはベースラインを確立するために、デリバリースピードのメトリクス(デプロイ頻度と変更のリードタイム)を記録し始めた。また、DORAメトリクス(変更失敗率や平均復旧時間)の代わりに、サービスの可用性や未解決の不具合数など、特注の信頼性/安定性メトリクスを選択した。チームの測定によると、2023年3月から11月までの間に、品質と可用性は安定したまま、主要なデリバリースピードのメトリクスは2倍に向上した。

デリバリー指標の改善の概要(出典:Booking.com Engineering Blog)

観察期間中、エンジニアはJavaバックエンド・サービスのコード品質を徐々に向上させていた。また、コードレビューがより苦痛を伴わず、チームメンバー間で優先順位がつけられるよう、マージリクエスト(別名プルリクエスト)をより小規模なものにする方向へと進めた。さらに、開発者はデプロイプロセスを改善し、手作業による検証ステップを徐々に減らし、自動化されたテストに頼るようになった。最終的には、完全自動デプロイに切り替え、デプロイ時間を40分から4分に短縮した。

Booking.comのシニアエンジニアリングマネージャー、Egor Savochkin氏は、変更中に問題が発生するリスクを減らし、コードを改善するためにチームがとったアプローチについて説明する。

チームはボーイスカウトのルールを採用し、リファクタリングとテスト自動化によってコード品質を向上させながら、すべての機能作業を止めないようにした。変更を実施したり不具合を修正したりする一方で、コード周辺の改善にも努める。これは大規模な改善である必要はない。触ったクラスに単体テストを追加したり、コードの臭いと戦うために小さなリファクタリングをしたりするような簡単なことかもしれない。

チームがモノリシックなアプリをMicro Frontends(MFE)に分割することを選択した後、フロントエンド側も改善が見られたが、改善は期待されたほど早くは実現しなかった。コードレビューのプロセスを調整し、外部の専門家の承認への依存を減らした結果、コードレビューにかかる時間は8分に短縮された。迅速なコードレビューにより、チームはより頻繁に、しかし少量のデプロイメントに移行し、デプロイメント時間を1時間に短縮しました。

以前、InfoQは、eBayがView Itemページを作り直した後、配信メトリクスを大幅に改善できたことも報告している。

作者について

この記事に星をつける

おすすめ度
スタイル

BT