不要停止云遷移
過早停止應(yīng)用程序或云遷移可能比根本不遷移造成更大的危害。
您是否正在計劃應(yīng)用程序遷移?也許您正在將本地應(yīng)用程序遷移到云端,或者您正在將單體應(yīng)用程序遷移到面向服務(wù)或微服務(wù)架構(gòu)。
諸如此類的遷移是承諾。時間的承諾。資源承諾。心態(tài)和企業(yè)能量的承諾。
遷移并不容易實現(xiàn)。
遷移可能涉及長期且不斷演進(jìn)的過渡,而且通常所付出的努力與實現(xiàn)的收益并不直接一致。收益往往比投資晚得多。有時,事情在好轉(zhuǎn)之前甚至?xí)兊酶恪?/p>
很想提早退出遷移。
誰會想要這樣做?這看起來很瘋狂,但它確實發(fā)生了。從整體遷移到服務(wù)架構(gòu),但在遷移開始后不久停止,會使應(yīng)用程序的狀態(tài)比開始遷移前更糟。
那么您如何避免阻止遷移的誘惑呢?嗯,這完全是關(guān)于管理期望和了解真正的投資回報。
痛苦之谷
當(dāng)我們開始重大遷移,尤其是復(fù)雜的遷移,例如單體到微服務(wù)的遷移時,我們對最終會看到的好處有一定的期望。我們預(yù)計收益取決于我們在遷移中投入的精力和時間。我們計算出ROI(投資回報)將使遷移的努力變得值得。
但這最終成為確定遷移價值和收益的簡單觀點。簡單的ROI計算并不能充分體現(xiàn)我們對我們的努力將如何轉(zhuǎn)化為收益的理解。通常,我們認(rèn)為收益和投資會隨著時間的推移而一致地發(fā)揮作用。
隨著時間的推移,我們繼續(xù)對遷移進(jìn)行投資,我們預(yù)計我們獲得的實際或感知的好處將繼續(xù)增加。我們投入的精力和時間越多,我們獲得的收益就越多。或者我們認(rèn)為。
實際上,這種理想化的模型并不能代表遷移的正常工作方式。投資與收益之間的關(guān)系通常要復(fù)雜得多。
在這里,初始投資似乎沒有太大的好處。事實上,隨著最初情況變得更糟,我們實際上可能會看到收益的倒退。只有隨著時間的推移,真正的好處才會開始顯現(xiàn)。
讓我們考慮一個例子。想象一下,您正在將單體應(yīng)用遷移到面向服務(wù)的架構(gòu)。最初,當(dāng)您開始將單體應(yīng)用的一部分更改為服務(wù)時,您可能會遇到性能下降的情況。應(yīng)用程序的復(fù)雜性會增加,因為您的應(yīng)用程序包含更多的活動部件。您繼續(xù)向應(yīng)用程序添加更多單獨的服務(wù),但單體應(yīng)用程序的剩余部分仍然存在并且大量參與應(yīng)用程序的功能。這種復(fù)雜性可能會導(dǎo)致可靠性問題;它可能會導(dǎo)致縮放問題;它可能會產(chǎn)生其他不可預(yù)見的問題。
簡而言之,您的應(yīng)用程序可能比開始遷移之前更糟。發(fā)生這種情況有幾個原因:
- 您的代碼處于臨時狀態(tài),增加了與遷移相關(guān)的技術(shù)債務(wù)。
- 您的代碼運行速度較慢,因為有些代碼已更新而有些代碼尚未更新。
- 您的代碼更難理解,因為有些代碼使用舊范式,有些使用新范式。
坦率地說,代碼是一團(tuán)糟。
但隨著時間的推移,您會努力走出這個低谷,遷移工作的好處開始發(fā)揮作用。您的好處成倍增加。隨著服務(wù)創(chuàng)建變得更容易并從整體中接管更多功能,您將開始看到您的努力得到回報。隨著時間的推移,收益的增長將加速。最后,您將看到遷移的實際價值。
但是要看到這些好處,您必須渡過遷移初期的低谷。你必須通過我所說的痛苦之谷。
在這個山谷中,有一種強(qiáng)烈的想要放棄遷移的傾向。畢竟,您已經(jīng)在遷移中進(jìn)行了投資,卻沒有看到任何好處。相反,事情變得比以前更糟。
但不要在這里放棄。此時不要停止遷移。如果您堅持遷移一段時間,您將開始看到好處。最終,您將達(dá)到收益增長速度快于您投入的努力的程度。
掉進(jìn)這個陷阱
我經(jīng)歷了許多遷移。幾乎所有人都有這個山谷。但是,不幸的是,公司陷入了在這個低點放棄的陷阱并承擔(dān)后果。
我合作過的一家大公司在最糟糕的時候放棄了他們的整體遷移——在谷底。在這樣做時,他們只是“宣布勝利”。但是他們沒有勝利。
他們告訴參與該項目的每個人,他們都從痛苦的遷移工作中“學(xué)到了足夠多的東西”:“我們現(xiàn)在知道實施此遷移所涉及的內(nèi)容,因此我們可以停在這里,也許稍后再重新選擇遷移。”
該公司希望重新開始做“真正的工作”并停止投資遷移。他們最后告訴大家,“這次演習(xí)是一次寶貴的經(jīng)歷,你不覺得嗎?”是的,這是一次寶貴的經(jīng)歷,但代價是什么?
該公司創(chuàng)建的是一個站不住腳的代碼庫。他們已經(jīng)構(gòu)建了幾個服務(wù),這些服務(wù)象征性地固定在剩余的單體的一側(cè)。然而,巨石仍然存在,并且仍然難以處理。他們的代碼一團(tuán)糟,他們多年來一直飽受這種混亂所帶來的問題的困擾。
這一決定嚴(yán)重削弱了公司在未來一段時間內(nèi)生產(chǎn)新功能的能力。工程團(tuán)隊士氣低落,公司失去了許多優(yōu)秀的工程師。他們甚至造成了一些影響客戶滿意度的嚴(yán)重可用性問題。這在當(dāng)時并不是一個愉快的工作環(huán)境。
這個故事的教訓(xùn)是:收益和努力之間的關(guān)系不是線性的。在遷移過程中,有時事情似乎變得更糟而不是更好。但不要放棄。隧道盡頭會有光,好處將開始顯現(xiàn)。從長遠(yuǎn)來看,這些好處將是非常值得的。
在開始遷移之前,請了解成本和收益。但更重要的是,要知道何時必須支付費用以及何時會看到收益。當(dāng)成本開始增加時不要停止。如果你繼續(xù)前進(jìn),好處最終會顯現(xiàn)出來。