云原生時代應(yīng)用構(gòu)建

云原生在CNCF官方有定義,這里不再贅述。簡單來說云原生要求架構(gòu)滿足云原生的最佳實踐,包括技術(shù)實踐與管理實踐。
應(yīng)用從需求提出開始到使用云端的資源與服務(wù),并最終通過持續(xù)交付的方式交付到云平臺,交付之后具備足夠的管控治理能力與可觀測性。
云原生的判斷標準是,服務(wù)部署在云端且持續(xù)使用云的能力。
做個類比,微服務(wù)的方式是SpringCloud的方式,具備框架、微服務(wù)開發(fā)、運行、服務(wù)治理與管控。而云原生開發(fā)方式是只是用SpringBoot,其他的資源使用都借助Mesh的邊車思路來實現(xiàn)。
Serverless的定義包括:FaaS+BaaS。
Serverless期望FaaS開發(fā)足夠輕,框架都不需要,最終就是函數(shù)直接調(diào)用后端能力。
大部分企業(yè)級場景下的系統(tǒng)比較難做到這點,因為你的架構(gòu)中有大量業(yè)務(wù)流程類的邏輯,不太合適抽象成一個個Function,需要在效率與可讀性之間找個平衡。
云原生的技術(shù)管理需要結(jié)合DevOps相關(guān)技術(shù)實踐和管理實踐,包括敏捷研發(fā)與CICD,將整個服務(wù)開發(fā)生命周期管理起來。
DevOps有個特點:一次構(gòu)建,多環(huán)境發(fā)布(不同環(huán)境集成不同配置),多運行環(huán)境運行。
云原生的本質(zhì)是:抽象與標準化。
抽象:關(guān)注重心不斷上移,從資源到服務(wù),徹底不再關(guān)注資源層和底層技術(shù)細節(jié);
標準化:技術(shù)能力標準化,服務(wù)定義標準化,服務(wù)使用標準化;
以前你不關(guān)心虛擬機和容器,未來不需要關(guān)注DB、MQ、Cache,這些都藏在了PaaS之下,與上層服務(wù)層完全解耦。對應(yīng)的高可用、高性能你也不需要關(guān)注了,你感知到的就是一個API。
每個業(yè)務(wù)平臺系統(tǒng)都變成了:平臺+應(yīng)用的構(gòu)建方式。
能力下沉到平臺,平臺層能通過開放API方式將能力外放出去,實現(xiàn)與外部的鏈接,形成一個個業(yè)務(wù)應(yīng)用。
低代碼在這個場景下具有很強的生命力,低代碼其實可以和微服務(wù)很好的結(jié)合。結(jié)合Serverless,讓運行態(tài)脫離于服務(wù)平臺,具備足夠的高可用與擴展性。
