交付铁三角的故事之兵戎相见
簡(jiǎn)介:大家好,交付鐵三角帶著全新的故事來(lái)啦!一直被應(yīng)用交付難題所困擾的他們這次又遇到了新的難題,售前大佬的一句客戶資源規(guī)劃緣何讓開(kāi)發(fā)鐵子暴怒,交付小錘的勸架為何致使自己的交付團(tuán)隊(duì)陷入這場(chǎng)漩渦之中,在客戶現(xiàn)場(chǎng)慘遭客戶對(duì)交付質(zhì)量的質(zhì)疑。在這場(chǎng)風(fēng)波背后,又隱藏著怎樣的破解之法,幫助他們重歸于好?快來(lái)點(diǎn)擊下方文章了解吧!
作者:新鈺
大家好,我是專注交付的王小錘,與開(kāi)發(fā)老哥鐵子還有售前大佬強(qiáng)哥組成的“交付鐵三角”團(tuán)隊(duì),我們又來(lái)啦!
我們 “交付鐵三角” 服務(wù)于一家提供大數(shù)據(jù)分析服務(wù)的 ISV 企業(yè)。通過(guò)對(duì)客戶提供的大數(shù)據(jù),進(jìn)行多維度智能化分析,提供用戶畫(huà)像、潛客分析、銷量預(yù)測(cè)等信息,將數(shù)據(jù)價(jià)值最大化后給到客戶,助力客戶通過(guò)分析結(jié)論達(dá)到最大的市場(chǎng)收益。近年來(lái),出于對(duì)數(shù)據(jù)安全性以及安全合規(guī)等方面的考慮,選擇私有化交付的客戶越來(lái)越多,而他們的要求也變得復(fù)雜多變,無(wú)形中我們被迫面臨各類復(fù)雜的交付環(huán)境,同時(shí)產(chǎn)品交付壓力與日俱增。
這不,一直被軟件應(yīng)用私有化交付問(wèn)題困擾的我們,近期又碰到了新的交付難題,為此還鬧的不歡而散。
兵馬未動(dòng)之糧草準(zhǔn)備多少?
起因
故事是從那天強(qiáng)哥的抱怨開(kāi)始持續(xù)發(fā)酵的,那天強(qiáng)哥一臉的沮喪回到公司,拉著鐵子就問(wèn)能不能給他一份清單,讓他帶給客戶。好讓客戶知道要是用咱們的 SaaS 產(chǎn)品,需要買多少設(shè)備,準(zhǔn)備多大的硬盤?咱們的產(chǎn)品會(huì)占用多少內(nèi)存空間?他抱怨道:“因?yàn)榭蛻粜枰幚淼臄?shù)據(jù)量很大,所以最近對(duì)資源的使用情況變得格外敏感。客戶希望將每一寸資源都用在刀刃上,像是客戶自身有 MySQL、Redis,或者已經(jīng)在使用一些云上資源,那么就希望能將這些資源做到合理的利用與規(guī)劃,或者客戶自身有幾臺(tái)服務(wù)器,那么他們最不希望,有些服務(wù)器配置的很滿,有些卻只使用了一小部分資源的情況發(fā)生。”
今天他去到客戶現(xiàn)場(chǎng),客戶直接問(wèn)他要準(zhǔn)備多少資源剛好夠用,能不能給個(gè)清單。當(dāng)時(shí)強(qiáng)哥一下子被問(wèn)住了,忙說(shuō)下次去的時(shí)候準(zhǔn)備好給到客戶,讓客戶也好有個(gè)心理預(yù)期。
這時(shí)鐵子一聽(tīng)就不樂(lè)意,沒(méi)好氣的對(duì)強(qiáng)哥說(shuō):“你怎么能亂答應(yīng)客戶呢?和你說(shuō)過(guò)很多次了,我們?cè)趺纯赡軠?zhǔn)備的出來(lái)這樣的清單,這種很難預(yù)估的,我只能說(shuō)去試試!就算準(zhǔn)備出來(lái)了,也不會(huì)有多準(zhǔn)的!”強(qiáng)哥一聽(tīng)也來(lái)了脾氣:“客戶要了好幾次了,我不給的話,這單還要不要談了?”
升級(jí)
聽(tīng)到這里我忙勸架,讓鐵子別激動(dòng),這個(gè)事情試試,先拿一個(gè)出來(lái),然后強(qiáng)哥叮囑客戶先按照這個(gè)預(yù)估的資源情況的基礎(chǔ)上往大些準(zhǔn)備就好了嘛。沒(méi)想到,就是這句話,將我們交付團(tuán)隊(duì)帶到了一個(gè)個(gè)坑之中。
而為了打動(dòng)客戶,讓客戶感覺(jué)不需要花太多錢就可以部署好這個(gè)數(shù)據(jù)產(chǎn)品,鐵子給到強(qiáng)哥的資源規(guī)劃清單相對(duì)保守些。直到那天,我們遇到一個(gè)客戶,真的按照強(qiáng)哥帶去的清單做的準(zhǔn)備,竟沒(méi)有多一絲資源冗余給到我們。當(dāng)我們?nèi)ゲ渴鸬臅r(shí)候,發(fā)現(xiàn)根本不夠部署我們的產(chǎn)品包。因?yàn)橘Y源不足導(dǎo)致無(wú)法完整運(yùn)行,最終被迫在現(xiàn)場(chǎng)裁剪產(chǎn)品資源開(kāi)銷后重新部署,這個(gè)過(guò)程消耗了大量的時(shí)間
于是在客戶現(xiàn)場(chǎng),就看到我們?cè)诜磸?fù)部署,將環(huán)境部署到一半,鏟掉,再去部署。當(dāng)時(shí)客戶就和我們?cè)谝黄?#xff0c;看到屏幕上反復(fù)出現(xiàn)的 delete ,不住的搖頭。那時(shí)的我們感覺(jué)太挫敗了,后來(lái)客戶看不下去了,直言:“你們這個(gè)交付包是不是質(zhì)量有問(wèn)題啊?這么反反復(fù)復(fù)的到底還能不能跑起來(lái)?” 我們連忙安撫客戶,說(shuō)放心,不是交付包有問(wèn)題,是咱們的環(huán)境有點(diǎn)復(fù)雜需要稍微費(fèi)點(diǎn)時(shí)間調(diào)試。而我們心里知道這些話是說(shuō)給客戶聽(tīng)的,就是客戶那邊資源沒(méi)準(zhǔn)備足,我們需要對(duì)現(xiàn)在的產(chǎn)品現(xiàn)場(chǎng)調(diào)試修改,而我們卻不能怪到客戶頭上。
激化
而不巧的是,我們才交付好后回來(lái)沒(méi)兩天,客戶一個(gè)電話過(guò)來(lái),和我們抱怨說(shuō)這才用了多久,就宕機(jī)了。我們出發(fā)前,就在猜是不是又是因?yàn)橘Y源的問(wèn)題,他們需要處理的數(shù)據(jù)量還是很大的,當(dāng)初部署完留給業(yè)務(wù)運(yùn)行處理的空間本就不是很多了。果然,當(dāng)我們飛過(guò)去排查后發(fā)現(xiàn),確實(shí)資源不足需要擴(kuò)容,但是擴(kuò)容的話,需要將客戶目前的業(yè)務(wù)中斷。終于,這個(gè)舉動(dòng)導(dǎo)致客戶的怒氣值爆棚,直言我們的交付質(zhì)量太差。
爆發(fā)
當(dāng)然我們也很委屈,回去后一名交付同學(xué)在復(fù)盤會(huì),直接將這些話透?jìng)鹘o到開(kāi)發(fā)團(tuán)隊(duì),進(jìn)一步導(dǎo)致了矛盾激化。
鐵子立馬反擊說(shuō):“話不能這么說(shuō),本來(lái)就說(shuō)了這個(gè)清單只是參考,我們哪兒想到客戶那么實(shí)誠(chéng),原原本本按照這個(gè)來(lái)準(zhǔn)備,一點(diǎn)冗余空間都沒(méi)準(zhǔn)備。而且我們?nèi)藶橐稽c(diǎn)點(diǎn)去進(jìn)行的核算,已經(jīng)都占用我們很多研發(fā)時(shí)間了,你們還不領(lǐng)情。你們可知道,運(yùn)行時(shí)資源情況會(huì)動(dòng)態(tài)改變的,這讓我們?cè)趺磥?lái)評(píng)估,很難得好不好!你們倒是不寫代碼,體諒體諒我們開(kāi)發(fā)同學(xué)好不好,不要上來(lái)就甩鍋。”
強(qiáng)哥聽(tīng)到我們屋內(nèi)吵起來(lái),走了進(jìn)來(lái),我原以為他是來(lái)勸架的,沒(méi)想到他進(jìn)來(lái)后又進(jìn)行了補(bǔ)刀。他說(shuō)剛才接到另一個(gè)客戶電話,說(shuō)按照他的清單準(zhǔn)備的資源,結(jié)果有些機(jī)器資源都沒(méi)怎么用上,空置在那里了,直接浪費(fèi)他們的錢,體驗(yàn)很差,感覺(jué)我們很不靠譜。
鐵子聽(tīng)完我們的集體吐槽,留下一句,說(shuō)了不好規(guī)劃你們不聽(tīng),我有什么辦法后推門而出,再也不理我們了。
這已經(jīng)是我們交付鐵三角不知道第幾次爭(zhēng)吵了,每次都是因?yàn)榻桓稌r(shí)出現(xiàn)的這些問(wèn)題而吵架,最終鬧的不歡而散。
大戰(zhàn)前夕不來(lái)場(chǎng)戰(zhàn)略演練?
盡管吵歸吵,我們的項(xiàng)目還是需要鐵子出包,這天我們還是按照平時(shí)那樣,拿著交付包去到客戶現(xiàn)場(chǎng)。到達(dá)客戶現(xiàn)場(chǎng)后,我們懵了,交付地點(diǎn)在大山深處的廠房不說(shuō),客戶準(zhǔn)備的機(jī)器還十分老舊。我們?nèi)グ惭b的時(shí)候,一直在心里犯嘀咕。好在,盡管客戶的網(wǎng)絡(luò)情況比較復(fù)雜,機(jī)器老舊,我們的部署困難重重,但我們還是順利完成了部署。就在我們準(zhǔn)備離開(kāi)的時(shí)候,廠房突然停電了。客戶解釋道:“我們這邊比較偏遠(yuǎn),有時(shí)候會(huì)動(dòng)不動(dòng)跳下閘,沒(méi)事,一會(huì)兒就來(lái)電了。”
當(dāng)電力恢復(fù)時(shí),如你所猜測(cè)的那樣,我們的產(chǎn)品跑不起來(lái)了,需要重新啟動(dòng)幾個(gè)組件。當(dāng)時(shí)交付同學(xué)就說(shuō)回去復(fù)盤的時(shí)候要提一下,你看,就停了下電,斷電重啟都實(shí)現(xiàn)不了。
復(fù)盤會(huì)上,鐵子這樣解釋道:“每次出包前,我們已經(jīng)進(jìn)行了反復(fù)的驗(yàn)證,雖然這部分工作耗時(shí)耗力,但相對(duì)來(lái)說(shuō)我們已經(jīng)盡力了。盡管這樣我們其實(shí)還是無(wú)法保證交付包一定能夠容忍很多特定場(chǎng)景的,這個(gè)實(shí)現(xiàn)起來(lái)是很困難的。
另外,線下交付場(chǎng)景中問(wèn)題的處理大多與環(huán)境、配置有關(guān),當(dāng)由不同的交付人員處理時(shí),每個(gè)人處理的環(huán)境、產(chǎn)品故障偏向點(diǎn)狀解決。而當(dāng)遇到新的問(wèn)題時(shí),需要重新開(kāi)始排查,摸石頭過(guò)河效率較低,那便是你們交付同學(xué)的問(wèn)題了。由于你們并沒(méi)有相關(guān)知識(shí)的沉淀,并未提供給到我們這些信息,為下次演練提供素材和參考,這樣我們只能憑我們的經(jīng)驗(yàn)對(duì)一些場(chǎng)景進(jìn)行演練,有遺漏的場(chǎng)景太正常了,這才是問(wèn)題的關(guān)鍵所在。
另外,故障排查數(shù)據(jù)量大,一個(gè)組件出問(wèn)題排查起來(lái)確實(shí)很困難,這個(gè)也是不爭(zhēng)的事實(shí)。但是交付前我們確實(shí)進(jìn)行了充分的模擬演練,已經(jīng)最大限度的來(lái)降低問(wèn)題出錯(cuò)的概率了。”
聽(tīng)完鐵子各打兩大板的發(fā)言,這次沖突雖然沒(méi)有激化。但是我們對(duì)于鐵子給出的說(shuō)法并不滿意,會(huì)議結(jié)束后交付的其他同學(xué)拿起電腦頭也不回的走了。而我坐在會(huì)議室,看著鐵子在不住的搖頭嘆氣。那一刻,我竟感受到了技術(shù)同學(xué)一瞬間的絕望和難過(guò)。他在強(qiáng)忍著,只見(jiàn)鐵子一手捂緊拳頭一手不停的撓頭,好似下了很大的決心。
兵馬未動(dòng)之糧草先行
時(shí)間不知不覺(jué)的過(guò)去,直到有一天,鐵子找到我和強(qiáng)哥,喊我們一起吃個(gè)飯。吃飯的時(shí)候,我們才知道,事后鐵子那個(gè)氣啊,于是為了爭(zhēng)口氣,賭上公司研發(fā)一把手的尊嚴(yán)。拉著開(kāi)發(fā)團(tuán)隊(duì)徹夜分析,發(fā)現(xiàn)核心矛盾點(diǎn)如下圖所示,最終導(dǎo)致客戶質(zhì)疑我們的交付質(zhì)量。而這一切都源于資源評(píng)估這一步,如果把這個(gè)技術(shù)難點(diǎn)突破了,我們的矛盾便可以解決。一邊生氣一邊研究的過(guò)程中,他想到了云原生應(yīng)用交付平臺(tái) ADP(以下簡(jiǎn)稱 ADP),上次拜訪阿莫了解應(yīng)對(duì)軟件應(yīng)用交付難題的招式的時(shí)候,他好像提到過(guò)一下,于是他進(jìn)入 ADP 平臺(tái),看到里面真的有資源規(guī)劃能力,經(jīng)過(guò)分析研究,發(fā)現(xiàn)可以很好的解決當(dāng)前這個(gè)矛盾。
資源規(guī)劃能力
ADP 的資源規(guī)劃功能可幫助我們,通過(guò)模擬部署能力快速且高效的評(píng)估出合適的集群資源配置,如:CPU、內(nèi)存、存儲(chǔ)分別需要多少,還可以在部署失敗后查看未成功調(diào)度的 pod 數(shù)以及原因,進(jìn)行調(diào)整,有效降低由人力評(píng)估效率低下、動(dòng)態(tài)場(chǎng)景難以統(tǒng)計(jì)準(zhǔn)確等原因所導(dǎo)致的一系列問(wèn)題。
三步實(shí)現(xiàn)快速資源規(guī)劃
1、自動(dòng)統(tǒng)計(jì)產(chǎn)品的實(shí)際部署開(kāi)銷。
2、對(duì)擬定的節(jié)點(diǎn)資源規(guī)格進(jìn)行仿真調(diào)度實(shí)驗(yàn),得出實(shí)際的部署效果。
3、查看調(diào)度失敗的 Pod 情況,調(diào)整節(jié)點(diǎn)資源規(guī)格,秒級(jí)重試驗(yàn)證。
鐵子說(shuō)完這些后,看向強(qiáng)哥道:“你看,以后我們產(chǎn)品適配改造好后,跑一份更靠譜些的資源容量清單給你,你拿給客戶,就讓客戶按照這個(gè)準(zhǔn)備,還是有問(wèn)題的話,你來(lái)找我,隨便你怎么兇我我都認(rèn),好不好?”
強(qiáng)哥聽(tīng)完邊點(diǎn)頭邊說(shuō)道:“行,這可是你說(shuō)的!一會(huì)兒你把明天我要去聊的客戶,他的資源規(guī)劃清單給到我,我明天帶過(guò)去。”
“好的” ,鐵子邊答應(yīng)邊扭頭看向我,對(duì)我說(shuō)道:“小錘,強(qiáng)哥前置把客戶那邊搞定,客戶按照清單中的資源情況進(jìn)行準(zhǔn)備。那以后你們交付團(tuán)隊(duì)再也不會(huì)出現(xiàn),在客戶現(xiàn)場(chǎng)反復(fù)部署安裝,部署了,鏟掉,再部署,再鏟掉,這樣尷尬的情況了!在信老哥一次好不好?” 我拍拍他的肩膀道:“ 好的老哥,再信你一回!”
不打無(wú)準(zhǔn)備之仗
關(guān)于交付同學(xué)提懷疑鐵子他們出包前驗(yàn)證不充足的事情。雖說(shuō)鐵子他們心里不服氣,但是想了想,本身交付的場(chǎng)景就是各種各樣的,確實(shí)很難做到面面俱到,懷疑開(kāi)發(fā)同學(xué)演練不充分也確實(shí)是有道理的。于是開(kāi)發(fā)團(tuán)隊(duì)的小伙伴集中起來(lái),梳理了許多的演練場(chǎng)景,然后鐵子又將這些場(chǎng)景在 ADP 平臺(tái)中一一查看,發(fā)現(xiàn) ADP 平臺(tái)可以自動(dòng)實(shí)現(xiàn)這些場(chǎng)景的線上集成一鍵演練,而且涵蓋的演練場(chǎng)景比他們想到的還要多。
故障演練能力
ADP 提供的故障演練能力可以實(shí)現(xiàn),在線上集成環(huán)節(jié)即可對(duì)線下交付中常見(jiàn)的各類故障場(chǎng)景下產(chǎn)品編排的容錯(cuò)性、可靠性和可恢復(fù)性進(jìn)行演練,保證編排穩(wěn)定可靠。
基于線下交付經(jīng)驗(yàn)設(shè)計(jì)的故障演練場(chǎng)景,對(duì)基礎(chǔ)設(shè)施、底座、中間件的常見(jiàn)故障場(chǎng)景進(jìn)行覆蓋,無(wú)論集群級(jí)別的大規(guī)模故障還是節(jié)點(diǎn)、Pod 級(jí)別的資源故障,都可以在線上完成演練,可基于產(chǎn)品在常見(jiàn)故障場(chǎng)景下的問(wèn)題進(jìn)行針對(duì)性優(yōu)化。
ADP 故障演練與 AHAS 故障演練產(chǎn)品進(jìn)行深度集成,演練場(chǎng)景豐富,且可一鍵創(chuàng)建線上產(chǎn)品環(huán)境并完成 AHAS 探針接入。基于 AHAS 故障演練產(chǎn)品提供的流程編排能力,可實(shí)現(xiàn)常見(jiàn)故障場(chǎng)景的一鍵準(zhǔn)備、注入和恢復(fù)。使產(chǎn)品在常見(jiàn)故障場(chǎng)景下可以預(yù)設(shè)其可靠性、可恢復(fù)性、告警及時(shí)性,大大增加交付信心。
可演練場(chǎng)景如下:
說(shuō)完這些,鐵子略帶得意的看下我們兩個(gè),問(wèn)道:“怎么樣,聽(tīng)完有沒(méi)有覺(jué)得交付包可靠了許多,信心滿滿?我們開(kāi)發(fā)團(tuán)隊(duì)現(xiàn)在已經(jīng)在按照這些流程來(lái)進(jìn)行交付了。小錘,下一次交付完記得回來(lái)和我反饋,要是交付質(zhì)量有感覺(jué)提升了,體驗(yàn)棒棒的,別忘了請(qǐng)我吃飯哈!”
“好的,沒(méi)問(wèn)題!” ?聽(tīng)完鐵子的一番解釋和介紹,我們都覺(jué)得這次靠譜了很多,對(duì)下一次的交付充滿了期待,于是我爽快的答應(yīng)了他。
鐵子還說(shuō)他請(qǐng)我們吃飯前還聯(lián)系了下 ADP 的阿莫,和他聊起來(lái)這兩個(gè)能力,他說(shuō)現(xiàn)在做的還比較初級(jí),后續(xù)在資源規(guī)劃和故障演練能力上還會(huì)加大投入。
在資源規(guī)劃方面,現(xiàn)在提供的是你們部署時(shí)所需的規(guī)劃清單,但是后續(xù)我們?yōu)榱烁泳珳?zhǔn),還將引入線上的壓力測(cè)試,這樣你們的產(chǎn)品在運(yùn)行一段時(shí)間后是否還能扛得住就清晰明了了,你說(shuō)的小錘他們部署好立馬又回去擴(kuò)容的情況可以更有效的避免了。
演練場(chǎng)景這部分,我們后續(xù)計(jì)劃在交付團(tuán)隊(duì)交付部署好之后,可以讓小錘他們?cè)诂F(xiàn)場(chǎng)再跑一遍故障演練場(chǎng)景,為交付驗(yàn)收再加一層保障,做到出包前交付后都進(jìn)行充分驗(yàn)證。這樣你們用著也會(huì)更放心些,還可以將精力回歸業(yè)務(wù)發(fā)展上。
就這樣,一場(chǎng)兄弟反目的風(fēng)波就此告一段落。
總結(jié)
交付質(zhì)量提升大法
資源評(píng)估—— 帶著合理且可靠的資源規(guī)劃清單給到客戶,減少資源浪費(fèi)、避免資源規(guī)劃帶來(lái)的業(yè)務(wù)中斷風(fēng)險(xiǎn)、杜絕反復(fù)交付部署情況的發(fā)生。
故障演練—— 出包前一鍵演練或者自動(dòng)化故障演練,做到每個(gè)包都千錘百煉,每個(gè)可能的故障坑,交付人員心里有數(shù),出問(wèn)題快速排除與解決。
提到 ADP,上次拜訪阿莫已詳細(xì)介紹 ADP 作為一款應(yīng)用交付的利器,提供以下能力:
全棧式在線化服務(wù):穩(wěn)定可靠的中間件適配、極致簡(jiǎn)化的交付流程。
異構(gòu)環(huán)境全覆蓋:通過(guò)集群鏡像實(shí)現(xiàn)異構(gòu) IaaS 交付、通過(guò)應(yīng)用管控實(shí)現(xiàn)異構(gòu) Kubernetes 交付、以及面向開(kāi)放生態(tài)的規(guī)劃。
穩(wěn)定可運(yùn)維底座:ACK Distro 底座、運(yùn)維管控平臺(tái)能力。
上述能力可有效應(yīng)對(duì)我們的產(chǎn)品適配成本高、部署環(huán)境復(fù)雜、運(yùn)維低效且門檻高的煩心事,如果感興趣可在文末點(diǎn)擊鏈接,了解上次拜訪細(xì)節(jié)。
而這次竟然是 ADP 提供的能力讓我們重歸于好,看來(lái)是時(shí)候再約阿莫他們多聊聊,看看還有什么驚喜,加上上次他埋了幾個(gè)小問(wèn)題讓我們甚是好奇。待我們?cè)俅伟菰L阿莫后來(lái)同大家分享,一起看看還有哪兒些你不知道的事情吧!
獨(dú)家交付秘籍之招式拆解(第一回)-阿里云開(kāi)發(fā)者社區(qū)
(本文純屬虛構(gòu),如有雷同純屬巧合)
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。?
總結(jié)
以上是生活随笔為你收集整理的交付铁三角的故事之兵戎相见的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阿里云RDS深度定制-XA Crash
- 下一篇: 一撕得:全员参与低代码开发,全面实现企业