雲原生=未來?
- 2021 年 6 月 2 日
- 筆記
有人說過,不充分了解就下判斷是不負責任的,我深表同意。在探討雲原生這個問題之前,有必要先搞清楚什麼是雲原生。
首先,雲原生(CloudNative)的概念在中國是由阿里在2019年首次提出,鑒於阿里技術體系在中國的分量,所以普遍認為2019年是中國雲原生元年。
tips:雖然已經學到禿頭,但關於「下一代」還是有必要關注並且深入了解一下的。
什麼是雲原生?
目前廣泛認可的雲原生由四個部分組成,分別是:
CI/CD(持續集成/發布)
DevOps(開發/運維)
Microservices(微服務)
Containers(容器)
這四個部分拆開來說,或多或少都有耳聞,有些同學或許已經實裝到項目。從概念上把這四個部分順序縷一縷。
CI/CD(持續集成/發布)
這一塊簡單來說,就是自動打包、編譯、部署、運行。現在商業模式越來越多,越來越快,按照業務倒逼技術發展的思路,也自然就會導致程式需要更高頻的更新,好把模式快速變成落地應用。如果只是一個單機程式,更新成本很小,但如果有幾百台伺服器在線,要更新的成本就直線飆升。這其實是考驗持續交付的能力,如果你交付的成本足夠低,那就等於給了商業模式足夠的自由,就更容易走出來的同時,自然也就更受市場重視。有些同學認為這是運維的事,但開發掌握這方面的技能(比如Jenkins)會更有競爭力。
DevOps(開發/運維)
這一塊意思就是開發運維不分家,大家既負責開發,又負責運維、測試。從這個角度來看,它更像是項目管理方面的倡導(開發部、運維部、測試部三合一,成本驟降,老闆狂喜)。個人覺得對一家公司來說,部門牆是很致命的,就以這三個部門來講,開發部程式碼寫完提交給測試,測試部流程走完放給運維部,這個過程中但凡是出現一次測試不通過、運維失誤之類的,那上線時間就不知道要滯後多久。除了Task沒完成影響績效,還有可能造成損失。到時候三方拉人一起開會,三個和尚沒水喝的故事就生動演繹了。對公司來說簡直要命。
Microservices(微服務)
說到這一塊大家就熟得多(各大網課起手微服務高並發什麼的),也可能大家已經了解的很多了,但咱還是嚴謹點:微服務可以使我們的程式高內聚、低耦合,具體做法是根據業務和調度資源對程式進行分拆,被分拆的程式會變為一個個微小的服務,不同的服務不會相互影響。更細緻的就不講了,一來主題不是它,二來目前水平還沒到,講不好。
Containers(容器)
也可以叫它「容器化」,這方面代表的就是docker了。通過docker完成容器化,可以忽略各種環境配置的噁心活,如果又集群,還可以無差別維護,極大降低出錯的概率。如果一個開發到現在還沒有上手docker,個人認為已經out了,要抓緊了。這部分同學可以翻一下我之前的文章。
全局來講,個人覺得雲原生應該屬於那種「下一代」的技術,是一種技術發展的方向。可以感覺到,隨著市場的發展,社會節奏的加快,更穩更快的技術交付已經成為判斷技術力的新指標,究其根本還是業務倒逼技術發展。如果沒有出現雙11、限時秒殺,可能高並發、分散式鎖等各種解決方案還得晚幾年公知;如果手機沒有語音助手、全螢幕沒有人臉識別,可能機器學習、人工智慧的理論仍然蒼在某個研究所的檔案室里。雲原生髮展如何不好預測(阿里中台火不火?一樣拆),但至少多學點沒錯。