聲明:本文為《阿里云云原生架構(gòu)核心技術(shù)白皮書》的一些讀書筆記與感想。
一文大致了解云原生架構(gòu)模式特點傳送門:五分鐘了解云原生的架構(gòu)模式
前言:云原生是什么?
聲明:本文是閱讀阿里云云原生架構(gòu)核心技術(shù)白皮書的一些讀書筆記與感想。
云原生架構(gòu)是一種創(chuàng)新的軟件開發(fā)方法,專為充分利用云計算模型而設(shè)計。它使組織能夠使用微服務(wù)架構(gòu)將應(yīng)用程序構(gòu)建為松散耦合的服務(wù),并在動態(tài)編排的平臺上運行它們。因此,基于云原生應(yīng)用程序架構(gòu)構(gòu)建的應(yīng)用程序是可靠的,可提供規(guī)模和性能,并縮短上市時間。
有人會說,云原生就是微服務(wù),我覺得是不對的。云原生和微服務(wù)是兩個不同維度的東西。 云原生更側(cè)重應(yīng)用程序的運行環(huán)境, 它是以k8s和容器為基礎(chǔ)的云環(huán)境?!霸圃嬎慊饡敝铝τ诖蛟煲徽坠ぞ邅韼椭鷳?yīng)用程序從開發(fā),測試,運行以及部署到云環(huán)境。
微服務(wù)是應(yīng)用程序的軟件架構(gòu),可以是單體式和微服務(wù)式。 微服務(wù)是基于分布式計算的。 你的應(yīng)用程序即使不采用微服務(wù)架構(gòu)也可以是云原生的,例如分布式的,但效果沒有微服務(wù)好。 如果是單體式的,云原生就基本發(fā)揮不出什么優(yōu)勢。 另外微服務(wù)的程序也可以不是云原生的。它們雖然是兩個不同的東西,但云原生和微服務(wù)是天生良配,相得益彰,相輔相成。 而且很多云原生的工具都是針對微服務(wù)架構(gòu)設(shè)計的。
當然,更合適的方式是可以說現(xiàn)代應(yīng)用程序的趨勢就是"微服務(wù)+云原生"。因為云原生的幾大特征就是:容器化封裝管理、服務(wù)編排、微服務(wù)架構(gòu)、持續(xù)交付、DevOps。
日薄西山:傳統(tǒng)的軟件開發(fā)模型?
傳統(tǒng)的軟件開發(fā)環(huán)境依賴于由單體架構(gòu)驅(qū)動的所謂“瀑布”模型,其中軟件是按順序開發(fā)的。
1、設(shè)計師準備產(chǎn)品設(shè)計以及相關(guān)文件。
2、開發(fā)人員編寫代碼并將其發(fā)送給測試部門。
3、測試團隊運行不同類型的測試來識別錯誤并衡量云原生應(yīng)用程序的性能。
4、發(fā)現(xiàn)錯誤時,會將代碼發(fā)送回開發(fā)人員。
5、代碼成功通過所有測試后,將部署到測試生產(chǎn)環(huán)境并部署到實時環(huán)境。
如果對于傳統(tǒng)的設(shè)計架構(gòu)來說,一旦需要更新代碼或添加/刪除功能,則必須重新完成整個過程。當多個團隊在同一個項目上工作時,相互協(xié)調(diào)代碼更改是一個很大的挑戰(zhàn)。它還限制他們使用單一的編程語言。此外,部署大型軟件項目需要建立龐大的基礎(chǔ)架構(gòu)以及廣泛的功能測試機制。整個過程效率低下且耗時。
引入了微服務(wù)架構(gòu)則可以解決大多數(shù)這些挑戰(zhàn)。微服務(wù)架構(gòu)是一種面向服務(wù)的架構(gòu),其中應(yīng)用程序構(gòu)建為松散耦合的獨立服務(wù),可以通過 API 相互通信。它使開發(fā)人員能夠處理不同的服務(wù)并獨立使用不同的語言。借助充當版本控制系統(tǒng)的中央存儲庫,組織能夠同時處理代碼的不同部分并更新特定功能,而不會干擾軟件或?qū)е聭?yīng)用程序停機。此外,實施自動化后,企業(yè)可以輕松、頻繁地進行具有重大影響的更改。
后起之秀:云原生為什么被需要?
云原生的發(fā)展背景
拋去上述的傳統(tǒng)架構(gòu)設(shè)計弊端不說,計算機技術(shù)架構(gòu)的進化有兩大主要驅(qū)動因素,一個是底層硬件升級,另一個是頂層業(yè)務(wù)發(fā)展訴求。
正如伴隨著 x86 硬件體系的成熟,很多應(yīng)用不再使用昂貴、臃腫的大中型機,轉(zhuǎn)而選擇價格更為低廉的以 x86 為主的硬件體系,也由此誕生了包括EJB、RPC 在內(nèi)的各類分布式架構(gòu);后由于互聯(lián)網(wǎng)業(yè)務(wù)飛速發(fā)展,人們發(fā)現(xiàn)傳統(tǒng) IOE 架構(gòu)已經(jīng)不能滿足海量業(yè)務(wù)規(guī)模的并發(fā)要求,于是又誕生了阿里巴巴 Dubbo & RocketMQ、Spring Cloud 這樣的互聯(lián)網(wǎng)架構(gòu)體系。
云計算從工業(yè)化應(yīng)用到如今,已走過十五個年頭,然而大量應(yīng)用使用云的方式仍停滯在傳統(tǒng) IDC 時代:虛擬機代替了原來的物理機:使用文件保存應(yīng)用數(shù)據(jù),大量自帶的三方技術(shù)組件,沒有經(jīng)過架構(gòu)改造(如微服務(wù)改造)的應(yīng)用上云,傳統(tǒng)的應(yīng)用打包與發(fā)布方式等等。對于如何使用這些技術(shù),沒有絕對的對與錯,只是在云的時代不能充分利用云的強大能力,不能從云技術(shù)中獲得更高的可用性與可擴展能力,也不能利用云提升發(fā)布和運維的效率,是一件非常遺憾的事情。
所以,數(shù)字化轉(zhuǎn)型的十年,云計算高速發(fā)展的十年,這期間新技術(shù)不斷演進、優(yōu)秀開源項目大量涌現(xiàn),云原生領(lǐng)域進入“火箭式”發(fā)展階段。通過樹立技術(shù)標準與構(gòu)建開發(fā)者生態(tài),開源將云計算實施逐漸標準化,大幅降低了開發(fā)者對于云平臺的學(xué)習(xí)成本與接入成本。這都讓開發(fā)者更加聚焦于業(yè)務(wù)本身并借助云原生技術(shù)與產(chǎn)品實現(xiàn)更多業(yè)務(wù)創(chuàng)新,有效提升企業(yè)增長效率,爆發(fā)出前所未有的生產(chǎn)力與創(chuàng)造力。
在未來,云計算將無處不在,像水電煤一樣成為數(shù)字經(jīng)濟時代的基礎(chǔ)設(shè)施,云原生讓云計算變得標準、開放、簡單高效、觸手可及。如何更好地擁抱云計算、擁抱云原生架構(gòu)、用技術(shù)加速創(chuàng)新,將成為企業(yè)數(shù)字化轉(zhuǎn)型升級成功的關(guān)鍵。
云原生的發(fā)展構(gòu)成
云原生從字面意思上來看可以分成云和原生兩個部分。云是和本地相對的,傳統(tǒng)的應(yīng)用必須跑在本地服務(wù)器上,現(xiàn)在流行的應(yīng)用都跑在云端,云包含了IaaS,、PaaS和SaaS。
原生就是土生土長的意思,開始設(shè)計應(yīng)用的時候就考慮到應(yīng)用將來是運行云環(huán)境里面的,要充分利用云資源的優(yōu)點,比如?云服務(wù)的彈性和分布式優(yōu)勢。
微服務(wù)
微服務(wù)解決的軟件開發(fā)中一直追求的低耦合+高內(nèi)聚,微服務(wù)的本質(zhì)是把一塊整體項目分成若干塊低耦合的小型服務(wù),比如一個服務(wù)A專門負責(zé)接收外部的數(shù)據(jù),一個服務(wù)B專門負責(zé)響應(yīng)前臺的操作,服務(wù)A和B可以進一步拆分,比如負責(zé)接收外部數(shù)據(jù)的服務(wù)可以繼續(xù)分成多塊負責(zé)接收不同類型數(shù)據(jù)的服務(wù)A2,這樣如果其中一個服務(wù)出問題了,其它服務(wù)還能正常對外提供服務(wù)。
DevOps
DevOps(Development和Operations的組合詞)是一種重視“軟件開發(fā)人員(Dev)”和“IT運維技術(shù)人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟件交付”和“架構(gòu)變更”的流程,來使得構(gòu)建、測試、發(fā)布軟件能夠更加地快捷、頻繁和可靠。
持續(xù)交付
持續(xù)交付的意思就是在不影響用戶使用服務(wù)的前提下頻繁把新功能發(fā)布給用戶使用。
容器化
容器化的好處在于運維的時候不需要再關(guān)心每個服務(wù)所使用的技術(shù)棧了,每個服務(wù)都被無差別地封裝在容器里,可以被無差別地管理和維護,現(xiàn)在比較流行的工具是docker和k8s。
總結(jié)
綜上所述可以簡單地把云原生理解為:云原生 = 微服務(wù) + DevOps + 持續(xù)交付 + 容器化。文章來源:http://www.zghlxwxcb.cn/news/detail-425981.html
云計算的下一站,就是云原生;IT 架構(gòu)的下一站,就是云原生架構(gòu) 。文章來源地址http://www.zghlxwxcb.cn/news/detail-425981.html
到了這里,關(guān)于【云原生-白皮書】簡章1:為什么我們需要云原生架構(gòu)?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!