コンテンツに移動
アプリケーション開発

Google Cloud: Cloud クライアント ライブラリの Node.js バージョン 10 のサポートがメンテナンス モードに

2022年2月18日
https://storage.googleapis.com/gweb-cloudblog-publish/images/appdev.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2022 年 2 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。

2022 年 3 月 31 日、Google Cloud Node.js SDK の Node.js 10 はメンテナンス モードに入ります。その際、セマンティック バージョニングに従って、ライブラリのメジャー バージョンが上がります。

目的

Node.js の長期サポート(LTS: Long-term support)バージョンのライフサイクルは 30 か月で、この間に重大なバグの修正やセキュリティ アップデートが行われます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/schedule-01.max-1900x1900.jpg

Node.js 提供の画像(許諾を得て使用)

Node.js エコシステムの多くの依存関係もこれと同じリリース スケジュールに沿っており、現在メンテナンス中であるバージョンの Node.js も(最低限)サポートされています。サポートが終了したランタイムのサポートは、Node.js SDK が使用している依存関係への重要なパッチの適用が困難になることから、ユーザーをリスクにさらすことになります。

2021 年 4 月をもって Node.js 10 のサポートは終了しています。いくつかのコア依存関係では Node.js 12 以降が必要になっているようですので、アップグレードされることをおすすめします。これを行わないと、重要なセキュリティ パッチの提供が難しくなります。参考までに、こちらの node-pre-gyp#623 をご覧ください。

新しいメジャー バージョンに期待できること

メジャー バージョンのアップでは、Node.js 10 から Node.js 12 以降へのアップグレード作業を可能な限りシームレスに行う必要があります。依存関係を明示的に更新するまでは、ランタイムを Node.js 12 を更新する必要はありませんが、新しいメジャー バージョンでは、Google Cloud Node.js SDK によって以下が更新されます。

  • バージョン 12 以降の engines フィールド:
    "engines": {"node": ">=12"}

  • 固定された依存関係(依存関係がより早いスケジュールで Node.js 10 の使用をやめた場合)

Google では、アップグレードによる変更を最小限に抑えるよう努めています。しかしながら、機能的な変更が必要になることもあり、その場合はライブラリの GitHub の CHANGELOG に表示されます。

環境を Node.js 10 から Node.js 12 以降にアップグレードするには、クライアント ライブラリの最新のメジャー バージョンをインストールし、Node.js ランタイムの現行の LTS バージョンにアプリケーションをデプロイします。

すぐにアップグレードできない場合

Google のクライアント ライブラリは現在、以前のバージョンの Node.js ランタイムもベスト エフォート ベースでサポートしています。しかし、外部の依存関係でバグが修正され、その依存関係がレガシー ランタイムをサポートしなくなった場合は、パッチを適用できなくなります。このような例を踏まえ、できるだけ早くアップデートされることをおすすめします。

今後のサポート方針について

Node.js 12 のサポートは 2022 年 4 月に終了します。Google では、Node.js 8 と 10 で行った対応と同様に、Node.js 12 のサポート終了日以後も数か月間にわたりサポートを継続する予定です。今後の予定としては、クライアント ライブラリでのランタイムのバージョンのサポートが終了する前の、Node.js のサポート終了日から 6 か月後を目途にします。サポート継続期間は、重要なセキュリティ パッチの適用により変更される場合があります。アップデート疲れを最小限に抑えるために、Node.js 12 のサポートを 2023 年 2 月まで続ける予定です。

engines フィールドには、Google の SDK がサポートする最小バージョンが示されます。アプリケーション デベロッパーは、現在 LTS である Node.js バージョンをデプロイするのが得策といえるでしょう。Google は 2022 年もほとんどの間 Node.js 12 をサポートしますが、Node.js 14 または Node.js 16 のリリースはアクティブにサポートされている LTS 候補であることから、これらのバージョンでアプリケーションをデプロイすることを強くおすすめします。


謝辞: このブログ投稿に関して追加のフィードバックを提供し、バージョン サポート戦略の策定に協力してくれた Megan Potter と Eileen Sasaki に感謝します。


- デベロッパー プログラム エンジニア Benjamin Coe
投稿先