






海豚的秘密

大家都知道海豚這種可愛的海洋動物。但又有多少人知道,海豚可以永遠不睡覺。
是什么樣的能力,使得海豚可以永遠保持清醒呢?依靠的是海豚大腦特殊的運作方式。

像人一樣,海豚的大腦也分為左腦和右腦兩個部分。在海豚活躍的狀態下,左腦和右腦都是清醒的:

當然,海豚也是血肉之軀,也是需要休息的。在海豚休息的狀態下,其中一半大腦會進入睡眠,另一半大腦仍然保持清醒,以面對各種外界情況。

每隔兩個小時,這種一半睡眠一半清醒的狀態會進行交替,比如這一刻左腦睡眠右腦清醒,下一刻左腦清醒右腦睡眠。

這就是海豚永遠不會真正睡覺的秘密。


什么是藍綠部署?
藍綠部署,英文名Blue Green Deployment,是一種可以保證系統在不間斷提供服務的情況下上線的部署方式。
如何保證系統不間斷提供服務呢?
藍綠部署的模型中包含兩個集群,就好比海豚的左腦和右腦。

在沒有上線的正常情況下,集群A和集群B的代碼版本是一致的,並且同時對外提供服務。

在系統升級的時候下,我們首先把一個集群(比如集群A)從負載列表中摘除,進行新版本的部署。集群B仍然繼續提供服務。

當集群A升級完畢,我們把負載均衡重新指向集群A,再把集群B從負載列表中摘除,進行新版本的部署。集群A重新提供服務。

最后,當集群B也升級完成,我們把集群B也恢復到負載列表當中。這個時候,兩個集群的版本都已經升級,並且對外的服務幾乎沒有間斷過。



什么是滾動部署?
滾動部署,英文Rolling update,同樣是一種可以保證系統在不間斷提供服務的情況下上線的部署方式。
和藍綠部署不同的是,滾動部署對外提供服務的版本並不是非此即彼,而是在更細的粒度下平滑完成版本的升級。
如何做到細粒度平滑升級版本呢?
滾動部署只需要一個集群,集群下的不同節點可以獨立進行版本升級。比如在一個16節點的集群中,我們選擇每次升級4個節點:




以此類推,最終所有的節點都升級了版本。



永生的可能性

我們的身體,就仿佛是一個龐大而又復雜的計算機集群,每一個器官相當於集群當中的一個節點,器官和器官之間由無數的神經與血管相連。

對於計算機集群來說,不間斷提供服務就是在“活着”。而對於人類來說,各個器官不間斷地運作,維持生命體征就是在“活着”。
人類的各個器官終究會衰老,那時候也就是人類壽命的終點。如果我們在器官衰老之前,依次把每一個器官都替換成年輕的器官,無論是肝臟還是腎臟,肌肉還是骨骼,這個人能不能永遠保持青春呢?

或許有人會說,人的大腦也是會衰老的,我總不能把大腦也替換掉把?那樣我就不再是我了。
但是,人的大腦也並不是獨立不可分割的。如果我們把大腦想象成1000個甚至更多個基本單元的集合,每次僅僅替換大腦的千分之一,那么這個人還是這個人,或許連思想意識都幾乎不會間斷。

—————END—————