來自:程式員小灰(微訊號:chengxuyuanxiaohui)
海豚的秘密
大家都知道海豚這種可愛的海洋動物。但又有多少人知道,海豚可以永遠不睡覺。
是什麼樣的能力,使得海豚可以永遠保持清醒呢?依靠的是海豚大腦特殊的運作方式。
像人一樣,海豚的大腦也分為左腦和右腦兩個部分。在海豚活躍的狀態下,左腦和右腦都是清醒的:
當然,海豚也是血肉之軀,也是需要休息的。在海豚休息的狀態下,其中一半大腦會進入睡眠,另一半大腦仍然保持清醒,以面對各種外界情況。
每隔兩個小時,這種一半睡眠一半清醒的狀態會進行交替,比如這一刻左腦睡眠右腦清醒,下一刻左腦清醒右腦睡眠。
這就是海豚永遠不會真正睡覺的秘密。
什麼是藍綠部署?
藍綠部署,英文名Blue Green Deployment,是一種可以保證系統在不間斷提供服務的情況下上線的部署方式。
如何保證系統不間斷提供服務呢?
藍綠部署的模型中包含兩個叢集,就好比海豚的左腦和右腦。
在沒有上線的正常情況下,叢集A和叢集B的程式碼版本是一致的,並且同時對外提供服務。
在系統升級的時候下,我們首先把一個叢集(比如叢集A)從負載串列中摘除,進行新版本的部署。叢集B仍然繼續提供服務。
當叢集A升級完畢,我們把負載均衡重新指向叢集A,再把叢集B從負載串列中摘除,進行新版本的部署。叢集A重新提供服務。
最後,當叢集B也升級完成,我們把叢集B也恢復到負載串列當中。這個時候,兩個叢集的版本都已經升級,並且對外的服務幾乎沒有間斷過。
什麼是滾動部署?
滾動部署,英文Rolling update,同樣是一種可以保證系統在不間斷提供服務的情況下上線的部署方式。
和藍綠部署不同的是,滾動部署對外提供服務的版本並不是非此即彼,而是在更細的粒度下平滑完成版本的升級。
如何做到細粒度平滑升級版本呢?
滾動部署只需要一個叢集,叢集下的不同節點可以獨立進行版本升級。比如在一個16節點的叢集中,我們選擇每次升級4個節點:
以此類推,最終所有的節點都升級了版本。
永生的可能性
我們的身體,就彷彿是一個龐大而又複雜的計算機叢集,每一個器官相當於叢集當中的一個節點,器官和器官之間由無數的神經與血管相連。
對於計算機叢集來說,不間斷提供服務就是在“活著”。而對於人類來說,各個器官不間斷地運作,維持生命體徵就是在“活著”。
人類的各個器官終究會衰老,那時候也就是人類壽命的終點。如果我們在器官衰老之前,依次把每一個器官都替換成年輕的器官,無論是肝臟還是腎臟,肌肉還是骨骼,這個人能不能永遠保持青春呢?
或許有人會說,人的大腦也是會衰老的,我總不能把大腦也替換掉把?那樣我就不再是我了。
但是,人的大腦也並不是獨立不可分割的。如果我們把大腦想象成1000個甚至更多個基本單元的集合,每次僅僅替換大腦的千分之一,那麼這個人還是這個人,或許連思想意識都幾乎不會間斷。
—————END—————
●編號653,輸入編號直達本文
●輸入m獲取到文章目錄
Linux學習
更多推薦《18個技術類公眾微信》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。