新聞中心
當(dāng)前位置:網(wǎng)站首頁 > 新聞中心
不可不知的四大云原生關(guān)鍵技術(shù):容器、微服務(wù)、服務(wù)網(wǎng)格、DevOps
11月21日,“2019云計(jì)算沙龍(第三期):云原生與多云管理”主題沙龍活動(dòng)在上海市徐匯區(qū)交大科技園成功召開。此次活動(dòng)吸引了諸多云計(jì)算相關(guān)的廠商專家以及業(yè)內(nèi)專業(yè)人士積極參與,并就云原生與多云管理進(jìn)行了積極討論。
在過去幾年里,隨著云計(jì)算技術(shù)的風(fēng)起云涌,云形態(tài)也發(fā)生著日新月異的變化。云原生技術(shù)也在云平臺如火如荼的快速發(fā)展中應(yīng)運(yùn)而生。美國專注于云計(jì)算與大數(shù)據(jù)基礎(chǔ)平臺的公司Pivotal最先提出了云原生應(yīng)用,后來由谷歌成立的云原生計(jì)算基金會(huì)(CNCF,全稱Cloud Native Computing Foundation)對云原生應(yīng)用進(jìn)行了定義:
· 云原生技術(shù)有利于各組織在公有云、私有云和混合云等新型動(dòng)態(tài)環(huán)境中,構(gòu)建和運(yùn)行可彈性擴(kuò)展的應(yīng)用。
· 這些技術(shù)能夠構(gòu)建容錯(cuò)性好、易于管理和便于觀察的松耦合系統(tǒng)。結(jié)合可靠的自動(dòng)化手段,云原生技術(shù)讓工程師能夠輕松地對系統(tǒng)作出頻繁和可預(yù)測的重大變更。
· 云原生計(jì)算基金會(huì)(CNCF)致力于培育和維護(hù)一個(gè)廠商中立的開源生態(tài)系統(tǒng),來推廣云原生技術(shù)。CNCF通過將最前沿的模式民主化,將這些創(chuàng)新為大眾所用。
這或許看起來有些復(fù)雜。簡單來說,云原生可以從字面涵義來理解,指的是任何在云中誕生、或主要在云中設(shè)計(jì)并運(yùn)行的事物。但云原生不只是指應(yīng)用程序所在的位置,更多的是指應(yīng)用程序的的構(gòu)建和部署方式。
云原生的代表性技術(shù)
1. 容器
容器技術(shù)是一種輕量級的虛擬化技術(shù),主要致力于提供一種可移植、可重用且自動(dòng)化的方式來打包和運(yùn)行應(yīng)用。容器這一術(shù)語是對船運(yùn)集裝箱的一個(gè)類比,它提供了一個(gè)標(biāo)準(zhǔn)化方式,將不同內(nèi)容組合在一起,同時(shí)又將它們彼此隔離開來。
將容器和云原生聯(lián)系起來,您或許會(huì)有些疑惑:容器不僅僅是在云端運(yùn)行,如果有需要,也可以在本地服務(wù)器上運(yùn)行容器。比如,在本地CI/CD管道中采用容器技術(shù),或者使用容器來部署本地的內(nèi)部業(yè)務(wù)應(yīng)用程序。
但是,無需對容器技術(shù)進(jìn)行太多延展,就可以將其與云原生技術(shù)聯(lián)系起來。在很大程度上,容器有助于部署云應(yīng)用:
· 您可以在云中部署容器。通常還可以使用相同的開源工具來管理云中的容器。這意味著,容器最大限度地提高了云之間的移動(dòng)性。
· 可以使用容器在云中部署應(yīng)用程序,而不必為特定云提供商的虛擬服務(wù)器或計(jì)算實(shí)例之間的細(xì)微差別而困擾。
· 云供應(yīng)商可以使用容器來構(gòu)建其他類型的服務(wù),例如無服務(wù)器計(jì)算。
· 容器為在云中運(yùn)行的應(yīng)用程序提供安全優(yōu)勢。容器應(yīng)用程序和主機(jī)環(huán)境之間增加了另一層隔離,而無需再運(yùn)行整個(gè)虛擬服務(wù)器。
因此,雖然使用容器是確實(shí)不需要使用云,但容器卻大大簡化了云應(yīng)用程序的部署。在云原生領(lǐng)域中,容器和云齊頭并進(jìn),共同發(fā)展。因此,可以說容器技術(shù)是云原生應(yīng)用發(fā)展的基石。
2. 微服務(wù)
微服務(wù)可以簡單地描述為將一個(gè)大型的軟件應(yīng)用程序的功能分為多個(gè)獨(dú)立的小型軟件服務(wù)或“微服務(wù)”。每項(xiàng)微服務(wù)通常單獨(dú)部署在容器中,負(fù)責(zé)一項(xiàng)單獨(dú)的任務(wù)。為了讓微服務(wù)協(xié)同工作,形成大型可伸縮的應(yīng)用程序,微服務(wù)之間還可以進(jìn)行通信和交換數(shù)據(jù)。簡而言之,微服務(wù)的特點(diǎn)可以總結(jié)為:
· 云原生應(yīng)用程序由多個(gè)不同的可重用組件(稱為微服務(wù))組成,這些組件都可以集成到任何云環(huán)境中。
· 這些微服務(wù)可以作為應(yīng)用程序的構(gòu)建模塊,通常包裝在容器中。
· 每個(gè)微服務(wù)可以協(xié)同工作,共同構(gòu)成一個(gè)應(yīng)用程序,單每個(gè)微服務(wù)可以通過自動(dòng)化和編排流程進(jìn)行獨(dú)立擴(kuò)展、持續(xù)改進(jìn)和快速迭代。
· 每個(gè)微服務(wù)的靈活性也提高了云原生應(yīng)用程序的敏捷性和持續(xù)改進(jìn),解決了單體大型應(yīng)用程序的復(fù)雜性和靈活性問題。
以人力資源系統(tǒng)為例。以前,整個(gè)人力資源系統(tǒng)部署在一個(gè)大軟件包中(例如,使用MVC框架的WAR文件)。使用微服務(wù)后,就無需將人力資源組件部署為一個(gè)大軟件包——大型單體應(yīng)用程序。該大型單體應(yīng)用程序被劃分并部署為按用途分類的若干個(gè)較小功能單元(工資、出勤和員工等微服務(wù))。這樣,維護(hù)一個(gè)模塊時(shí)(例如,“工資”模塊),由于微服務(wù)可以獨(dú)立工作,就無需停用整個(gè)應(yīng)用程序,也不會(huì)影響到其他功能,從而提高了更新迭代速度,也提高了服務(wù)質(zhì)量。
3. 服務(wù)網(wǎng)格
隨著微服務(wù)數(shù)量的增多,可能會(huì)形成上百個(gè)甚至上千個(gè)相互關(guān)聯(lián)的服務(wù),通過內(nèi)部或外部網(wǎng)絡(luò)相互連接。如果要繪制出每個(gè)微服務(wù)之間的連接關(guān)系,情況就復(fù)雜了。從代碼級別管理這些服務(wù)的連接關(guān)系會(huì)很麻煩。這意味著,服務(wù)A需要了解服務(wù)B的網(wǎng)絡(luò)層。為了解決這一挑戰(zhàn),服務(wù)網(wǎng)格技術(shù)應(yīng)運(yùn)而生。
服務(wù)網(wǎng)格是用于處理服務(wù)間通信的專用基礎(chǔ)結(jié)構(gòu)層。對于構(gòu)成現(xiàn)代化的云原生應(yīng)用程序的服務(wù)而言,服務(wù)網(wǎng)格負(fù)責(zé)可靠地交付這些拓?fù)浣Y(jié)構(gòu)復(fù)雜的服務(wù)請求。實(shí)際上,服務(wù)網(wǎng)格通常是通過一系列的輕量級網(wǎng)絡(luò)代理來實(shí)現(xiàn)的,這些網(wǎng)絡(luò)代理與應(yīng)用程序代碼一起部署,而無需再關(guān)注應(yīng)用程序。
|