什么是云原生應(yīng)用?
如今,在構(gòu)建新的應(yīng)用時(shí),很多公司都會(huì)想到 “云端優(yōu)先”。但隨著科技的發(fā)展,更好的方法是考慮 “云原生”應(yīng)用。
云原生應(yīng)用利用了誕生于云端的平臺(tái)和流程的優(yōu)勢(shì)。它們具有高可擴(kuò)展性,易于修改,無需大量編碼即可連接到云服務(wù)以擴(kuò)展功能。一個(gè)典型的例子是Mendix,作為一個(gè)從底層構(gòu)建的云原生應(yīng)用平臺(tái),一直在使用開放互補(bǔ)的云技術(shù)為企業(yè)提供領(lǐng)先的多云部署、可移植性、可擴(kuò)展性和高可用性。
什么是云原生應(yīng)用?
云原生應(yīng)用通常使用一個(gè)或多個(gè)源自云的技術(shù)架構(gòu)理念,其中有四個(gè)理念值得關(guān)注。
1. 軟件容器
軟件容器是一個(gè)可移植的、集成的操作環(huán)境,其中包含了一個(gè)應(yīng)用程序和運(yùn)行它所需的所有軟件組件。值得注意的是,容器已經(jīng)成為一個(gè)非常流行的虛擬機(jī)替代方案,因?yàn)樗鼈凅w積小、部署快,且可以存儲(chǔ)在庫中以便開發(fā)者重復(fù)使用。在容器中編寫的應(yīng)用程序可以遷移到任何支持該容器的平臺(tái)上運(yùn)行。這就意味著你的應(yīng)用不再受制于單一的云平臺(tái),它可以運(yùn)行在任何有足夠資源支持的設(shè)備上,無論是筆記本電腦還是超級(jí)計(jì)算機(jī)。
2. 微服務(wù)
微服務(wù)是一種松散耦合的軟件服務(wù),可以被組合起來用于創(chuàng)建應(yīng)用程序。開發(fā)人員不用耗費(fèi)時(shí)間再“造輪子”,應(yīng)用程序也更加靈活和可擴(kuò)展。簡單來說,由微服務(wù)組成的應(yīng)用程序就像樂高積木一樣,開發(fā)者只需要最少的自定義編碼就可以將其按照設(shè)想拼接起來,讓開發(fā)更加快速可靠。這項(xiàng)新服務(wù)可以在不需要大量集成測(cè)試的情況下進(jìn)行交換或添加,極大提高了使用的便利性。
3. 軟件定義基礎(chǔ)設(shè)施
如今,硬件幾乎已完全實(shí)現(xiàn)了虛擬化,開關(guān)、刻度盤和插頭等被軟件所取代。開發(fā)者僅通過軟件就可以輕松地?cái)U(kuò)大或縮小容量、重新分配資源以及自動(dòng)啟動(dòng)或停止服務(wù)。云原生應(yīng)用的前提是假定底層基礎(chǔ)設(shè)施是流動(dòng)的,從而適應(yīng)不斷變化的需求。
4. 應(yīng)用程序接口(API)
API作為軟件連接器向其他軟件展示了更多可用的功能。它們使擴(kuò)展或定制應(yīng)用程序因不再需要觸及底層代碼而變得更加容易。與此同時(shí),API還使開發(fā)人員能夠深入挖掘其他應(yīng)用程序中的豐富功能。
例如谷歌地圖就是一個(gè)支持API的應(yīng)用程序,通過谷歌地圖,房地產(chǎn)應(yīng)用的開發(fā)者可以通過API請(qǐng)求地理信息,然后將Google的地圖功能集成到其程序中。開發(fā)者無需從底層開始構(gòu)建地圖功能或在自己的服務(wù)器上安裝應(yīng)用程序,從而節(jié)省許多時(shí)間。
為何云原生開發(fā)如此重要?
云開發(fā)引起眾多關(guān)注的原因主要在于以下三個(gè)特質(zhì)所體現(xiàn)的巨大價(jià)值。
適應(yīng)性強(qiáng)
云原生應(yīng)用程序可以隨著業(yè)務(wù)需求而改變,且不會(huì)產(chǎn)生依賴性,避免了客戶被軟件的特定版本鎖定。例如,如果一家公司希望提供移動(dòng)端應(yīng)用程序,它可以選擇構(gòu)建移動(dòng)前端,并使用API來訪問服務(wù)器上的數(shù)據(jù),而無需修改后端的任何代碼。這種松散的耦合可以在不破壞組合的前提下更改任意應(yīng)用程序。
可擴(kuò)展性
云原生應(yīng)用通過使用軟件定義基礎(chǔ)設(shè)施來減少或消除對(duì)硬件的依賴。這種方式實(shí)現(xiàn)了商用服務(wù)器的橫向擴(kuò)展,而不再需要在現(xiàn)有服務(wù)器上增加更昂貴的處理器、存儲(chǔ)和內(nèi)存。橫向擴(kuò)展也是亞馬遜和Facebook等大規(guī)模云服務(wù)得以實(shí)現(xiàn)的原因。
可移植性
開發(fā)人員可以使用容器編寫應(yīng)用程序,不用更改代碼,就能讓程序在智能手機(jī)乃以及大型機(jī)等各種設(shè)備上運(yùn)行。隨著 “邊緣計(jì)算”(一種將自動(dòng)決策推向網(wǎng)絡(luò)遠(yuǎn)端的分布式處理架構(gòu))日漸流行,將應(yīng)用程序部署到任何需要的地方才是理想的狀態(tài)。
低代碼為構(gòu)建云原生應(yīng)用插上翅膀
直接使用容器、微服務(wù)和API會(huì)給初學(xué)者帶來許多挑戰(zhàn),而低代碼平臺(tái)憑借其特性大大降低了開發(fā)門檻。在選擇供應(yīng)商時(shí),開發(fā)者可以先詢問該平臺(tái)是否支持上述的云原生技術(shù)架構(gòu)理念,然后尋找一個(gè)功能齊全的,包括一套全面的開發(fā)、運(yùn)營和維護(hù)工具的APaaS(應(yīng)用平臺(tái)即服務(wù))。
由于許多低代碼開發(fā)工具是在云原生技術(shù)廣泛使用之前建立的,因此開發(fā)者需要對(duì)其進(jìn)行改造,以便在云中運(yùn)行,但云兼容和云原生之間存在著巨大的區(qū)別。即便大多數(shù)原先的應(yīng)用程序可以在云中運(yùn)行,它們無法享受云原生架構(gòu)所提供的可擴(kuò)展性、可伸縮性和可移植性優(yōu)勢(shì)。
云原生公司所采用的新的敏捷開發(fā)方法更強(qiáng)調(diào)模塊化、可復(fù)用性和頻繁的代碼發(fā)布,使開發(fā)人員從挖掘已有服務(wù)的角度考慮問題。Mendix低代碼開發(fā)平臺(tái)具備復(fù)雜的云原生架構(gòu)并對(duì)開放云生態(tài)系統(tǒng)提供深度支持,適用于廣泛的部署方案。從完全托管的Mendix 公有云到基于Cloud Foundry或基于Docker/ Kubernetes的PaaS,再到使用Docker、Kubernetes和Jenkins等工具的自定義CI/CD和容器堆棧,Mendix以獨(dú)一無二的方式為企業(yè)提供多種選擇,使企業(yè)既可以實(shí)現(xiàn)易用性,也可以根據(jù)業(yè)務(wù)和運(yùn)營要求進(jìn)行控制。
背景
受制于疫情對(duì)全球的影響,當(dāng)下軟件成為我們?nèi)粘I詈瓦B接全球經(jīng)濟(jì)的新命脈。但傳統(tǒng)軟件開發(fā)花費(fèi)的時(shí)間過長,且經(jīng)常無法滿足業(yè)務(wù)需求,為用戶提供優(yōu)質(zhì)的體驗(yàn)。即使在疫情爆發(fā)之前,具備專業(yè)軟件開發(fā)能力人員的數(shù)量也無法滿足全球?qū)浖男枨?。而此次全球疫情更是讓軟件和商業(yè)危機(jī)雪上加霜。低代碼軟件開發(fā)時(shí)代,Mendix通過低代碼提供了一種功能強(qiáng)大的企業(yè)級(jí)可視化開發(fā)方法,讓普通和專業(yè)開發(fā)者只需要通過一個(gè)直觀的圖形用戶界面,并借助拖放式組件和模型邏輯,就能把在網(wǎng)絡(luò)和移動(dòng)設(shè)備上實(shí)現(xiàn)云原生應(yīng)用的速度提高10倍以上。