用技術解讀三國——赤壁之戰

640?wx_fmt=gif

小說連載系列是我第一次嘗試的新的技術講解方式,希望通過小說的形式將技術細節講解清楚。

第二篇中長篇連載小說《新三國外傳》,主要講解一些架構、新技術以及程序員工作中的一些軼事,希望大家能夠喜歡。

歡迎大家轉發文章,謝謝!


前情回顧

用技術解讀三國——遊說東吳

用技術解讀三國——獻連環計

月黑風高,長江上的浪花拍打着兩岸,發出巨大的聲響。江岸兩邊,曹操與周瑜隔江相對。就在今晚,曹操向孫劉發起了總攻,而周瑜也早已做好了戰鬥準備。

不遠處,諸葛亮登上了七星臺,與周瑜遙相呼應,相互配合。

開戰

曹操一聲令下:“全軍出擊”。

百萬大軍駕駛着一艘戰艦,朝周瑜這邊駛來。

而那周瑜,只有區區十幾艘小船,與那戰艦一比,就像螞蟻和大象。

曹操巨大的戰艦向周瑜發動着猛烈的攻擊。而那周瑜卻不慌不忙,一面命令將士們頂住火力,另一面,暗中觀察曹操那巨型戰艦的火力分佈。

他在尋找系統弱點

突然,他發現曹操戰艦的東北45度角火力有點慢,不像其他地方那麼猛烈,一個火力開回比其他地方慢了50ms

是的,就是這轉瞬即逝的50ms,也瞞不過天才都督周瑜,他一聲令下:“集火。”

由於周瑜的系統是基於微服務設計的,每個微服務都可以獨立縮擴容。而系統又是用docker部署。

周瑜軍隊需要做的就是將其他系統的docker容器關閉,然後啓動進攻東北45度的docker容器。

兩條命令,整個過程不超過半分鐘。

逆轉

半分鐘後,周瑜軍隊完成了集火的操作,曹操戰艦的東北45度火力模塊突然遭受了巨大流量火力衝擊,瞬間掛掉了。

這一掛不要緊,關鍵是系統其他模塊都依賴於這個東北45度火力模塊,結果很多模塊都無法正常工作了,整艘戰艦,只有很少的幾個點還能輸出,其他火力全都啞了。

那東北45度區是用python寫的,負責他的人正是曹軍大將張遼。

張遼一看模塊掛了,趕緊下令:“重啓!重啓這個模塊!”

但是重啓了之後,這個模塊依然扛不住周瑜全軍的火力,起來又掛了。

張遼:“不行了,必須要擴容,西北45度區夏侯敦那邊沒有火力,趕緊去那邊調十臺機器來擴容。”

那西北45度區是用nodejs寫的,首領夏侯敦收到張遼的救援請求,馬上調撥了十臺機器給張遼。

但是要在這新的十臺機器上部署python模塊談何容易,張遼部隊全部上了,都在手動部署,裝python環境,設置環境變量,拷貝代碼,設置配置文件,這一套流程下來,十幾分鍾過去了。

結果要啓動的時候,報錯,python依賴的一個系統庫與之前nodejs用的一個系統庫衝突

這下張遼是真的慌了:“重裝,趕緊重裝系統!”

嗯,整艘戰艦的人都等着張遼在這重裝系統,然後再裝python環境,設置環境變量,拷貝代碼,設置配置文件。

曹操

曹操覺得此次勝利在握,正在戰艦的監控室裏一邊喝酒,一邊繡着十字繡。只見快一個小時了,十字繡已經繡了一半,還沒有傳來勝利的消息,便問身邊人:“怎麼還沒有滅了周瑜?”

那身邊人也是個欺上瞞下的主:“主公不必驚慌,咱們系統有一個小模塊出了點問題,應該沒有大礙。”

曹操:“我係統大大小小幾十個模塊,一個模塊出問題算什麼?”

他哪裏知道,自己的系統早已被龐統全部連了起來,耦合嚴重,一個模塊掛掉,已經足矣讓整個系統80%功能不可用。

破曹

張遼這邊還在重裝系統,周瑜的火力已經透過那東北45度火力模塊打到了系統緩存層,緩存層很快出現了熱點,一下子戰艦着起了火,緩存層很快被擊穿了,火力到達了數據庫,數據庫瞬間掛掉了。

張遼見情勢不妙,趕緊連滾帶爬去監控室裏找曹操,只見曹操還在那優哉遊哉喝着小酒,繡着十字繡。

張遼大喊:“主公,求求你別繡了。周瑜的火力已經打過來了,趕緊從後門逃走吧。”

曹操一開始還不相信,但見那火勢很快燒到了監控室,自己只能帶着將士們連滾帶爬逃出戰艦,朝那華容小道逃去。

周瑜登上曹操的戰艦,沒有尋得曹操,將士們都準備追擊,周瑜卻不慌不忙:“別忙着追那曹操,你們趕緊去那七星臺,把諸葛亮先給我軟禁起來。”

將士們來到七星臺,只見臺上早已空無一人,諸葛亮已經離開了東吳。


赤壁之戰驚天大逆轉,微服務加docker戰勝了耦合嚴重的曹軍戰艦,曹操會這樣善罷甘休嗎?欲知後事如何,請聽下回分解。

關注我

每天進步一點點

640?wx_fmt=png

點贊是最大的支持 640?wx_fmt=gif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章