關於灰度釋出,你得知道這些......
在網際網路公司中,產品通常會更頻繁地迭代,特別是當涉及一些關鍵且較大的專案需求時,影響範圍相對較高時,通常需要灰度控制。
一般來說,Web前端灰度是平滑的在客戶不知不覺的情況下進行的,而APP灰度需要涉及使用者的主動安裝行為。
什麼是灰度釋出?
灰度釋出(Gray Release)是一種逐步推廣新版本應用程式的策略,即將新版本應用程式僅僅推廣給一部分使用者,觀察新版本在小範圍內的使用情況、反饋及其穩定性,再根據反饋結果逐步擴大範圍,直到全量釋出的過程。
使用灰度釋出的場景有哪些?
1、應用程式開發 在應用程式的開發過程中,使用灰度釋出技術可以在應用程式上線前,透過少量使用者的試用來檢驗應用程式的功能,效能和使用者體驗等方面是否有問題,從而改進應用程式。
2、新功能上線 在新功能上線時,使用灰度釋出技術可以先將新功能推廣給少量使用者,以獲得新功能的使用情況、反饋及其穩定性,從而決定是否需要調整新功能,或者確定推廣新功能的策略。
3、其他場景 使用灰度釋出技術還可以在應用程式中更新廣告,收集統計資料,測試不同的使用者介面設計等等。
在App開發時或者新功能上線時採用灰度釋出有哪些優勢?
1、提高應用程式的質量和穩定性 使用灰度釋出技術可以先將應用程式推廣給少量使用者,以獲得應用程式的使用情況、反饋及其穩定性,從而改進應用程式,提高應用程式的質量和穩定性。
2、減少釋出風險 使用灰度釋出技術可以先將應用程式推廣給少量使用者,以獲得應用程式的使用情況、反饋及其穩定性,從而降低釋出風險。
3、減少推廣成本 使用灰度釋出技術可以先將應用程式推廣給少量使用者,以獲得應用程式的使用情況、反饋及其穩定性,從而確定推廣應用程式的策略,減少推廣成本。
灰度釋出對App使用者的影響
灰度釋出對App使用者的影響通常不會過大,因為只有一部分使用者能夠體驗到新功能,對於未被選擇的使用者,他們不會察覺到任何變化。此外,如果新功能存在問題,灰度釋出的一小部分使用者可以幫助開發團隊及時發現問題並進行修復,從而避免對整個使用者群體造成不必要的影響。
然而,如果灰度釋出存在問題或配置不當,會給使用者帶來負面影響,如:
在灰度釋出期間,可能會導致部分使用者無法使用應用,或者出現應用崩潰等問題,因此,在執行灰度釋出時需要特別小心,仔細測試所有可能出現的情況,並及時回滾到上一個版本。
對於參與灰度釋出的使用者,由於他們能夠提前體驗到新功能,因此可能會產生一些期望,如果最終新功能沒有達到期望,會引起使用者不滿。因此,在進行灰度釋出時,需要確保新功能的質量和體驗,避免使用者對新功能的負面評價。
小程式也可以利用灰度釋出來進行測試和驗證新功能。
在小程式中實現灰度釋出的方式有很多種,下面介紹兩種常見的方式。
1、利用環境變數實現灰度釋出 小程式開發者可以在小程式程式碼中引入環境變數,根據不同的環境變數值來判斷是灰度釋出還是正式釋出。透過將環境變數設定為不同的值,就可以控制新功能的上線範圍。
例如,我們可以定義一個名為 env 的環境變數,在正式環境中將其設定為 prod,在灰度環境中將其設定為 gray,在開發環境中將其設定為 dev。然後,在程式碼中就可以透過判斷 env 的值來控制新功能的上線範圍。
這種方式的優點是靈活方便,可以自由控制新功能的上線範圍。但缺點是需要手動設定環境變數,比較繁瑣,而且容易出錯。
2、利用微信後臺實現灰度釋出 小程式開發者還可以利用微信後臺提供的灰度釋出功能來進行測試和驗證新功能。微信後臺提供了一個叫做“體驗版”的功能,開發者可以將新功能釋出到體驗版中,然後透過微信後臺控制體驗版的上線範圍,實現灰度釋出的效果。
這種方式的優點是方便易用,可以透過微信後臺進行灰度釋出控制,不需要手動設定環境變數。但缺點是需要額外的配置和操作,而且對於一些功能可能不支援。
3、利用 FinClip 管理後臺實現小程式灰度釋出
FinClip 是 一個可以讓任何 App 都能具備小程式執行能力的前端容器技術,只需簡單整合 FinClip SDK ,即可在 iPhone、Android、Windows、Linux、macOS、統信等平臺下的應用中執行你的小程式。
同時,它還提供一個完善的後臺管理系統,可統一管理小程式的上架和下架,以及小程式的灰度釋出、並且具備資料分析能力,不管對於開發人員還是運營人員,可謂是極其便捷了。
那為什麼小程式利於灰度釋出?因為小程式具備“鬆散耦合”的特性:
- (1)自身的迭代升級,也不會影響到宿主 App 執行的穩定性,也無需對 App 進行全迴歸測試。
- (2)小程式業務功能開發可以高度並行
- (3)容易灰度釋出 – 粒度細到碎片級(例如一個小程式是可以僅在測試白名單的範圍內試點)。
透過FinClip 管理後臺,任何小程式都可根據使用者畫像、客群分層,動態控制可見範圍,而且無需編寫任何複雜的應用邏輯程式碼。
此外, FinClip SDK 可自動上報相關資料,實現測試釋出完整閉環,無需對每一個小程式都進行業務埋點開發,並且針對需要複雜業務資料回傳的小程式而言,由於 FinClip SDK 有規範的資料上報協議,因此只需完成少量開發,即可實現最準確的資料上報回傳。
總的來說,小程式開發者可以根據自己的需求選擇適合自己的灰度釋出方式。無論哪種方式,都需要注意灰度釋出的上線範圍和時間,以免影響正式使用者的體驗。
灰度釋出在企業中的應用
灰度釋出在企業中應用廣泛,特別是在網際網路公司中,如騰訊、阿里巴巴等公司,他們都將灰度釋出作為常規工具使用。在企業中,灰度釋出通常用於以下場景:
新產品或功能上線前的測試:企業可以透過灰度釋出在部分使用者中測試新產品或功能,以確保它們能夠正常執行並滿足使用者需求。 產品版本更新:在產品版本更新時,企業可以採用灰度釋出的方式,先讓一小部分使用者升級到新版本,以確保新版本不會影響整個使用者群體,避免不必要的風險。
新技術上線:當企業引入新技術時,如人工智慧、區塊鏈等,可以透過灰度釋出的方式在一部分使用者中測試新技術,以確保它們能夠正常執行並滿足業務需求。
總之,灰度釋出作為一種常見的部署方式,已經被廣泛應用於網際網路公司和其他企業中,它可以幫助企業降低風險,提高產品質量,同時保證使用者體驗。在使用灰度釋出時,需要特別小心,仔細測試所有可能出現的情況,並及時回滾到上一個版本,以避免給使用者帶來負面影響。
如今的網際網路時代,大廠都是採用灰度釋出的策略進行應用線上部署的。如果身在小公司的測試同學想進入大廠,那麼灰度釋出就是大家必須要了解的知識點了!希望透過本文能夠幫助大家快速的理解什麼是灰度釋出,並讓大家瞭解研發,運維,測試,運營是如何在這一策略下開展實際工作的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024933/viewspace-2938722/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於DNS,你應該知道這些DNS
- 關於MySQL引數,這些你要知道MySql
- 這些關於WebSocket的知識,你知道多少?Web
- 關於Linux系統,這些你都知道嗎?Linux
- 關於神經網路:你需要知道這些神經網路
- 關於LLVM,這些東西你必須知道!LVM
- 關於JVM,你必須知道的這些知識點JVM
- 關於專案採購管理,這些你需要知道
- 關於Android Gradle你需要知道這些(4)AndroidGradle
- 關於Android Gradle你需要知道這些(3)AndroidGradle
- 關於Android Gradle你需要知道這些(1)AndroidGradle
- 關於Android Gradle你需要知道這些(2)AndroidGradle
- 關於 TDengine 3.0 資料訂閱,你需要知道這些
- 關於Linux作業系統,這些你必須知道!Linux作業系統
- 華為鴻蒙OS釋出會解析,這些乾貨你應該知道鴻蒙
- 關於 nginx 前端知道這些就夠了Nginx前端
- 中科三方:關於SSL證書你應該知道這些事
- 關於美顏SDK,還有這些你不知道的知識
- 關於資料安全風險評估,你不知道的這些事!
- CAS你知道嗎?底層如何實現?ABA問題又是什麼?關於這些你知道答案嗎
- 【格物獵蹤】關於OpenVPN反射攻擊,你還需要知道這些!反射
- 你需要知道這些關於技術美術的知識構成
- [譯] 關於Angular的變更檢測(Change Detection)你需要知道這些Angular
- 關於 Git 你需要知道的一些事情Git
- 關於Flutter你要知道的可能都在這兒Flutter
- Web直播,你需要先知道這些Web
- Python——你應該知道這些Python
- 這些.NET開源專案你知道嗎?讓.NET開源來得更加猛烈些吧!
- 運維 + AI,你得先搞懂這些運維AI
- 這些著名資料庫之間的“關係”,你知道嗎?資料庫
- 關於 Git 你所不知道的一些事Git
- 軟體測試這些你知道嗎?
- 這些Python騷操作,你知道嗎?Python
- 介面中這些細節你知道嗎?
- 阿里雲基於ALB實現灰度釋出阿里
- 你知道黑客的入侵方式都有哪些嗎?這些你知道幾個?黑客
- Vue + Webpack 灰度釋出控制VueWeb
- 用Java這麼多年,這些祕密你知道嗎?Java