OpenAPI門戶已停止支援V1.0 SDK。如果您目前仍在使用V1.0 SDK,建議您查閱協助文檔擷取相關支援。如有特別需求,請加釘群(60965016010)聯絡我們。
一、概述
本文講述阿里雲 OpenAPI SDK 工具包的生命週期維護策略,包括版本發布策略、更新策略、停止支援策略。
二、生命週期與維護策略
阿里雲 SDK 的生命週期階段有通用可用性維護階段、基礎安全性維護階段和停止維護階段,每個階段的維護策略及特點如下表所示:
生命週期 | 維護策略 | API 覆蓋度與發布周期 | 推薦程度與態度 | 一方平台(文檔中心、OpenAPI 門戶等) | 三方平台(代碼託管倉庫、社區等) |
通用可用性維護階段 (General Availability) | SDK 將獲得全面支援,包括功能更新、效能最佳化、bug 修複和安全補丁 | 100% API 支援 SDK,24小時內自動更新發布。 | 該階段 SDK 推薦所有使用者與專案使用。 | 標識為「推薦」。 提供完備的文檔和範例程式碼,並承諾更新時效。 | 標識「推薦」。 |
基礎安全性維護階段(Basic Security Maintenance) | SDK 將不再接收新功能更新,但會定期發布重要的安全性更新和嚴重阻礙服務穩定的 bug 修複。 | 不承諾 API 覆蓋度,按需更新發布。 | 適合已經穩定啟動並執行系統,不推薦新專案與新使用者使用。 | 標識為「不推薦」。 提供完備的文檔和範例程式碼,但不承諾更新時效。 提供遷移指南,引導使用者移轉到新版 SDK。 | 標識「不推薦」。 提供遷移指南,引導使用者移轉/使用到新版 SDK。 |
停止維護階段 (End-of-Support) | SDK 不再接收任何更新,包括安全更新。 停止接受任何類型的 Issue。 | 停止更新與發布。 | 該階段 SDK 不再推薦任何新使用者使用,且存量系統需要儘快遷移使用最新 SDK 以保證未來服務的持久性和安全性。 | 完全下線/隱藏所有入口。 | 標識「停止維護」。 提供遷移指南,引導使用者移轉/使用到新代系 SDK。 表明不再支援任何類型的 Issue。 |
三、發布策略
阿里雲 SDK 包版本會發布到官方包管理器(例如 Maven、NPM、PyPI、NuGet、Cocoapods、Packagist 等)倉庫中,各個語言對應著不同的包管理倉庫,並且阿里雲會在 GitHub Aliyun 組織 下提供所有語言的 SDK 原始碼。詳情請參見版本支援列表。
3.1 阿里雲 SDK 代系
目前阿里雲 SDK 存在兩個代系,第一代 SDK(V1.0 SDK)和第二代 SDK(V2.0 SDK)。V2.0 SDK 是在總結開發人員在 V1.0 版本中遇到的一系列問題後重新開發的新一代 SDK,新增了許多特性,主要的改進目標是易於使用者理解,降低使用者接入成本,並提升 SDK 的健壯性。兩者的區別請參見 V2.0 SDK 和 V1.0 SDK。
兩代 SDK 的維護策略請參見生命週期與維護策略一節,各個代系的語言運行時的停止支援,參見版本支援列表。
3.2 版本號碼規範
阿里雲每個代系的 SDK 版本號碼的變更都遵循 SemVer 規範:
版本號碼由 Major.Minor.Patch 3位組成:
|
SDK 的 Major 版本的增加,標誌著該 SDK 經歷了重大且實質性的更改,以支援該語言中的新習慣用法和模式。當公用介面(例如類名、方法名、參數名、參數類型等)、行為或語義發生變化時,即 SDK 存在 Break Change 時,就會引入 Major 版本。用戶端需要主動更新才能使用最新的 SDK 版本,請務必根據阿里雲官方提供的 SDK 發布報告(例如 Ecs Java 3.1.17 版本發布報告)來更新 Major 版本。
3.3 相容性保障
不同代系的 SDK 是絕對不相容的,升級需要參照升級V1.0 SDK指南。
同一代系的阿里雲 SDK 版本號碼遵照 SemVer 規範,官方會保障所有語言 SDK 發布的 Minor 版本和 Patch 版本均向後相容,只有 Major 版本會出現不相容的情況。
四、更新策略
我們會定期提供阿里雲開發套件 SDK 及其底層依賴的更新,我們將這些第三方依賴項分成以下三個分類:
作業系統 (OS):包括 CentOS 7、Windows 7、Windows 10、macOS 12.x 等。
語言 Runtime:包括 Java 8、Java 11、.NET Core、PHP7、PHP8、Node.js 14.x 等。
第三方庫/架構:包括 OpenSSL、.NET Framework 4.5、Java EE 等。
這些依賴項通常與語言社區或擁有該特定組件的供應商相關。 每個社區或供應商都會發布自己的產品支援終止時間表。
各個語言社區 Maintenance Policy:
Node.js–github.com
Python–devguide.python.org
Ruby–www.ruby-lang.org
Java–www.oracle.com
Go–golang.org
.NET Core–dotnet.microsoft.com
PHP–www.php.net
官方組織宣告某語言版本停止維護後,阿里雲 SDK 會繼續支援該語言版本至少1年。
語言版本指維護對應程式設計語言的官方組織或機構發布的版本,例如 Java 8、Python 3.7等。
五、版本停止支援策略
5.1 觸發節點
當社區宣布不再支援某個語言的某個版本或者某個依賴庫後,我們會在一年左右時間也必然會對該版本進行聲明,聲明半年後停止支援。停止支援不影響客戶對存量 SDK 的正常使用,僅是不再進行安全補丁的更新和新功能的支援。
5.2 聲明內容
停止支援具體原因
停止支援具體時間
如何保持使用以及更新方式
遷移文檔
5.3 聲明途徑
我們會對停止支援的原因進行官方解釋,並通過如下途徑進行通知:
提前一年時間進行停止支援聲明,聲明通知包括但不限於開發人員門戶-SDK 文檔、開發人員門戶-訊息訂閱通知、協助中心-SDK 文檔、阿里雲控制台訊息通知;
遷移文檔,必須在開發人員門戶-SDK文檔、協助中心-SDK文檔同時提供;
部分語言的 SDK 側做到通知,例如安裝停止支援的 SDK 版本會進行警告等。