灰度發(fā)布初始階段遇到的問(wèn)題和策略
編輯導(dǎo)語(yǔ):灰度發(fā)布(又名金絲雀發(fā)布)是指在黑與白之間,能夠平滑過(guò)渡的一種發(fā)布方式;一個(gè)產(chǎn)品是選擇全量發(fā)布還是灰度發(fā)布,需要通過(guò)實(shí)際情況來(lái)定;本文作者對(duì)此進(jìn)行分析,我們一起來(lái)看一下。
之前參與了公司一款b端產(chǎn)品的重構(gòu)項(xiàng)目,結(jié)束后就需要面對(duì)如何發(fā)布的問(wèn)題,是全量發(fā)布還是灰度發(fā)布。
這需要根據(jù)實(shí)際情況來(lái)選擇,當(dāng)時(shí)我從“用戶規(guī)?!焙汀靶屡f版本差異”兩個(gè)角度考慮:
- 1. 用戶規(guī)模:該產(chǎn)品用戶規(guī)模大,涉及不同用戶版本,不同版本的用戶對(duì)新版本的接受度不同,可能存在不習(xí)慣新版本而導(dǎo)致流失的情況。
- 2. 新舊版版本差異:該產(chǎn)品重構(gòu)后新版本相較于舊版本,部分功能缺失(白名單功能),會(huì)影響到部分用戶的日常工作流程。
通過(guò)上述兩個(gè)角度考慮,直接全量發(fā)布切換可能會(huì)影響到用戶的日常工作和使用習(xí)慣,存在流失的風(fēng)險(xiǎn),所以采取了灰度發(fā)布。
確定發(fā)布方式后,在選擇首批灰度用戶名單時(shí),發(fā)現(xiàn)了一些存在的問(wèn)題,本文就想和大家討論初始階段遇到的問(wèn)題以及解決辦法。
一、什么是灰度發(fā)布
灰色是介于黑色和白色之間的顏色,灰度發(fā)布就是介于未發(fā)布和完全發(fā)布之間的一種發(fā)布方式。
假定未發(fā)布的版本為A,通常為線上版本;完全發(fā)布的版本為B,通常是新版本。
灰度發(fā)布可以讓一定百分比的用戶優(yōu)先體驗(yàn)版本B,其余用戶仍然使用版本A,并且慢慢擴(kuò)大百分比,最終將所用用戶遷移到版本B。
那么為什么要進(jìn)行灰度發(fā)布呢?
從開(kāi)頭我司的案例可以看出,灰度發(fā)布有一個(gè)隱藏的前提條件,用戶規(guī)模遠(yuǎn)大于生產(chǎn)團(tuán)隊(duì)的規(guī)模;以至于生產(chǎn)團(tuán)隊(duì)沒(méi)有足夠的資源來(lái)應(yīng)付全部用戶使用新版本后帶來(lái)的問(wèn)題,包括不習(xí)慣所帶來(lái)的不適應(yīng)和線上bug。
而灰度發(fā)布可以通過(guò)控制發(fā)布面積,讓使用新版本的用戶控制在生產(chǎn)團(tuán)隊(duì)可以應(yīng)付的范圍內(nèi);將可能出現(xiàn)問(wèn)題的用戶圈定在“部分”用戶,這個(gè)部分的范圍由生產(chǎn)團(tuán)隊(duì)評(píng)估得出。
我們通過(guò)灰度發(fā)布,將一部分經(jīng)過(guò)篩選后的用戶納入測(cè)試范圍,由生產(chǎn)團(tuán)隊(duì)和用戶共同完成對(duì)新版本的驗(yàn)收;主要的目的是檢驗(yàn)了用戶對(duì)于新版本的接受度,規(guī)避了因?yàn)楫a(chǎn)品決策冒失、冒進(jìn)所帶來(lái)的風(fēng)險(xiǎn)。
同時(shí)也可以檢驗(yàn)產(chǎn)品質(zhì)量,是否存在bug,以及在不同設(shè)備不同環(huán)境下的情況。
二、問(wèn)題和策略
灰度發(fā)布幫助我們選定了一定比例的用戶,是一種有效控制風(fēng)險(xiǎn)的發(fā)布方式。
但是在其初始階段,也會(huì)存在一些問(wèn)題,針對(duì)不同的問(wèn)題,我們需要采用不同的策略來(lái)對(duì)應(yīng)。
1. 新版本部分功能缺失
在現(xiàn)實(shí)場(chǎng)景中,受到了時(shí)間、資源和優(yōu)先級(jí)等因素的制約,新版本相比較于老版本存在部分功能缺失的情況,常存在于大型版本迭代更替的過(guò)程中。
這種情況下,在選擇首批灰度名單的時(shí)候會(huì)出現(xiàn)一個(gè)問(wèn)題——引入的用戶中存在依賴這些缺失的功能,導(dǎo)致用戶的日常工作收到了影響。
b端產(chǎn)品的功能是解決用戶工作中的問(wèn)題的,功能缺失會(huì)導(dǎo)致用戶的工作流不完整,影響到了用戶的工作流;會(huì)造成用戶的損失,也會(huì)讓用戶產(chǎn)生新版本不如“老版本”功能穩(wěn)定的想法,從而放棄對(duì)新版本的使用。
因此,在面對(duì)這一問(wèn)題時(shí),需要我們?cè)谶x擇首批灰度用戶時(shí),對(duì)用戶名單進(jìn)行過(guò)濾和篩選。
具體的做法是:首先對(duì)比新版本和老版本的功能差異點(diǎn),比如老版本有而新版本無(wú)的功能等;其次,評(píng)估每個(gè)差異點(diǎn)所帶來(lái)的影響,是否真的會(huì)對(duì)用戶的工作流產(chǎn)生影響,只有存在影響用戶工作的差異點(diǎn),才需要被解決;最后,在選擇首批名單時(shí)剔除這些被影響的用戶,同時(shí)通過(guò)迭代及時(shí)補(bǔ)上這些差異點(diǎn)。
案例:
某產(chǎn)品提供了對(duì)淘寶店鋪的數(shù)據(jù)統(tǒng)計(jì)能力,其中有1個(gè)模塊是對(duì)“預(yù)售”商品數(shù)據(jù)的統(tǒng)計(jì);在最近的一次產(chǎn)品重構(gòu)中,受限于時(shí)間的關(guān)系,以及評(píng)估“預(yù)售”模塊是一個(gè)周期性的行為,在大促前會(huì)被商家頻繁使用;平日使用到的商家非常之少,在本次產(chǎn)品重構(gòu)中,沒(méi)有做這一功能。
那么對(duì)于那些平日里也有“預(yù)售”商品,需要查看“預(yù)售”數(shù)據(jù)的商家來(lái)說(shuō),新版本就是缺失的,并且影響到了他們的日常工作流程,會(huì)對(duì)新版本產(chǎn)生不滿的情緒。
上述的情況,就是出現(xiàn)了“新版本部分功能缺失”的現(xiàn)象,雖然平日使用該模塊的商家數(shù)量非常少,但是如果引入的灰度名單中有這樣的用戶;缺失“預(yù)售”模塊的新版本會(huì)影響到用戶的正常工作,沒(méi)有辦法對(duì)預(yù)售商品的數(shù)據(jù)進(jìn)行分析了。
這就需要我們?cè)谶x擇名單時(shí)剔除這部分用戶,并且安排資源迭代“預(yù)售”模塊
2. 覆蓋不了全部用戶
b端產(chǎn)品的用戶構(gòu)成是復(fù)雜的,是有很多不同的用戶類型組成的;比如按新老用戶劃分可以劃分為新用戶和老用戶;按用戶規(guī)??梢詣澐执笥脩艉托∮脩?;按用戶付費(fèi)情況可以劃分付費(fèi)用戶和免費(fèi)用戶。
產(chǎn)品的用戶是有多種不同類型的用戶組成的,而不同類型的用戶對(duì)于產(chǎn)品的訴求是不同的;所以在切換版本的時(shí)候,理論上我們希望灰度名單能覆蓋到所有類型的用戶。
但是在現(xiàn)實(shí)場(chǎng)景中,往往是很難覆蓋的,主要受到兩個(gè)因素的制約:
- 首批灰度的名單數(shù)量不多,每種類型的用戶沒(méi)有辦法全部覆蓋到;
- 灰度的用戶只有達(dá)到一定的數(shù)量才能起到效果,例如引入1個(gè)新用戶和引入100個(gè)新用戶是有差異的,1個(gè)新用戶對(duì)新版本的接受度高并沒(méi)有足夠的說(shuō)服力。
所以過(guò)分追求覆蓋所有類型的用戶,很可能導(dǎo)致每種用戶的數(shù)量都不夠,就沒(méi)辦法驗(yàn)證不同類型用戶對(duì)于新版本的接受度了
這里就需要對(duì)不同類型的用戶進(jìn)行分析,找出產(chǎn)品當(dāng)前階段最核心的用戶,灰度名單優(yōu)先覆蓋核心用戶,保證核心用戶的體驗(yàn)和使用。
而具體核心用戶的類型會(huì)收到產(chǎn)品愿景的影響,比如當(dāng)前產(chǎn)品的目標(biāo)是拉新,那么核心用戶類型就是新用戶;如果當(dāng)前產(chǎn)品的目標(biāo)是營(yíng)收,那么核心用戶類型就是對(duì)當(dāng)前營(yíng)收貢獻(xiàn)最多的用戶類型。
案例
某產(chǎn)品提供對(duì)淘寶店鋪的客服團(tuán)隊(duì)數(shù)據(jù)分析模塊,在該產(chǎn)品重構(gòu)升級(jí)后,對(duì)產(chǎn)品進(jìn)行灰度發(fā)布,來(lái)驗(yàn)證用戶對(duì)于升級(jí)后功能的接受度。
而首批灰度用戶數(shù)量只有20個(gè),就出現(xiàn)了“覆蓋不了全部用戶的”問(wèn)題,這就需要我們優(yōu)先覆蓋核心用戶
通過(guò)對(duì)用戶類型進(jìn)行了分類,以及確定產(chǎn)品當(dāng)前階段的目標(biāo)是營(yíng)收,分析得出不同類型用戶對(duì)于營(yíng)收的貢獻(xiàn)度;發(fā)現(xiàn)中大型商戶貢獻(xiàn)最大,那就是該產(chǎn)品本階段的核心用戶。
在確定首批灰度名單時(shí),我們就需要從中型商家、大型商家這兩個(gè)用戶范圍內(nèi)去尋找,優(yōu)先保證這部分用戶對(duì)于新版本的接受度。
3. 參與度不高
灰度發(fā)布初始階段,通常是不進(jìn)行強(qiáng)制切換的;而是采用的是圈定一個(gè)范圍的用戶,提供切換入口,讓用戶切換來(lái)體驗(yàn)灰度版本。
從這里我們可以發(fā)現(xiàn),初期階段,用戶使用灰度版本是一種自發(fā)性的行為;我們?cè)谶x取名單時(shí)就會(huì)受到客觀條件和主觀因素的影響,一旦選擇的名單有問(wèn)題就會(huì)導(dǎo)致參與度不高。
首先,是客觀條件,用戶群體中分為活躍用戶和非活躍用戶,如果我們?cè)谶x擇名單時(shí)挑選了非活躍用戶。
想一想,這個(gè)用戶很少登陸體驗(yàn)我們的產(chǎn)品,將它放入了灰度名單,用戶都沒(méi)有感知到自己會(huì)灰度了,不前往參與,引入這個(gè)用戶就沒(méi)有意義了。
所以我們?cè)谶x擇灰度名單時(shí)需要考慮活躍度這個(gè)指標(biāo),對(duì)于活躍度的判斷可以參照產(chǎn)品本身對(duì)于活躍度的定義;比如有的產(chǎn)品用日活考察,有的產(chǎn)品會(huì)用近7日登陸來(lái)考察。
其次,是主觀因素,用戶對(duì)于產(chǎn)品的信任度不高,導(dǎo)致遇到問(wèn)題后的對(duì)問(wèn)題的容忍度低,對(duì)產(chǎn)品失去了耐心,也不愿意反饋問(wèn)題;那么引入這個(gè)用戶也不具有意義。
所以我們?cè)谶x擇灰度名單時(shí)要考慮用戶對(duì)于信任感,b端產(chǎn)品可以選這關(guān)系較好的商家,對(duì)于產(chǎn)品的信任度也會(huì)較高。
三、總結(jié)
灰度發(fā)布的目的是在不影響用戶正常使用工作的前提下,引入小部分的用戶來(lái)使用新版本,幫助我們測(cè)試用戶對(duì)于新版本的接受程度;避免決策失誤所產(chǎn)生的問(wèn)題影響到大部分甚至全量用戶,保證了產(chǎn)品平滑過(guò)度。
而我們?cè)谔暨x首批灰度名單時(shí),需要從“是否會(huì)影響引入用戶的正常工作”,“是否能覆蓋到核心目標(biāo)用戶”以及“引入用戶的參與度高不高”3個(gè)角度考慮;剔除不符合條件的用戶,選擇活躍度高、信任感強(qiáng)的用戶進(jìn)來(lái)和生產(chǎn)團(tuán)隊(duì)一起完成對(duì)新版本的驗(yàn)收。
作者:晌午,微信公眾號(hào):晌午自習(xí)室
本文由 @晌午 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自 Unsplash,基于CC0協(xié)議
注冊(cè)流程圖
辛苦