云原生是面向云應用設計的一種思想理念,充分發揮云效能的最佳實踐路徑,幫助企業構建彈性可靠、松耦合、易管理可觀測的應用系統,提升交付效率,降低運維復雜度。代表技術包括不可變基礎設施、服務網格、聲明式 API 及 Serverless 等。
![]()
![]()
從產業效用方面來看,云原生極大的釋放了云的紅利,云原生充分繼承云的設計思想,未來應用將更多基于云上進行本土應用開發,即云原生應用更加適合云的架構,而云計算也為云原生應用提供較好的基礎支撐,如資源隔離機制、分布式部署、高可用架構等方面,通過新的架構、技術保障應用系統變得更加健壯,可以說云原生最大程度發揮了云的優勢。云計算的拐點已至,云原生成為驅動業務增長的重要引擎。
從技術特征方面來看,云原生架構具備以下典型特征:極致的彈性能力,不同于虛擬機分鐘級的彈性響應,以容器技術為基礎的云原生技術架構可實現秒級甚至毫秒級的彈性響應;服務自治故障自愈能力,基于云原生技術棧構建的平臺具有高度自動化的分發調度調諧機制,可實現應用故障的自動摘除與重建,具有極強的自愈能力及隨意處置性;大規??蓮椭颇芰Γ蓪崿F跨區域、跨平臺甚至跨服務商的規?;瘡椭撇渴鹉芰?。
從應用價值方面來看,異構資源標準化,容器技術有效解決了異構環境的部署一致性問題,促進了資源的標準化,為服務化、自動化提供了基礎。
![]()
![]()
![]()
云原生架構設計原則
云原生架構本身作為一種架構,也有若干架構原則作為應用架構的核心架構控制面,通過遵從這些架構原則可以讓技術主管和架構師在做技術選擇時不會出現大的偏差。
![]()
技術往往是把“雙刃劍”,容器、微服務、DevOps、大量第三方組件的使用,在降低分布式復雜性 和提升迭代速度的同時,因為整體增大了軟件技術棧的復雜度和組件規模,所以不可避免地帶來了軟件 交付的復雜性,如果這里控制不當,應用就無法體會到云原生技術的優勢。
![]()
云原生關鍵技術及成熟產品
![]()
![]()
容器:云原生世界技術爆炸的奇點
![]()
1 安全容器
容器技術的采納率連年提升,已經開始進入企業的生產環境。以 Docker 為代表的普通容器通過 Namespaces 和 cGroups 實現的隔離,共享內核的機制使得隔離性具有天然的缺陷無法根除,在多租戶場景下安全問題更加凸顯。
2 Serverless 容器
FaaS(Function as a Service)平臺提供的是函數級別的 Serverless 化部署,且應用場景多依賴于其綁定的觸發器,對函數的執行有一些配置限制,并且不支持進程常駐。傳統的應用大都是單體應用或者微服務應用,在遷移到 FaaS 平臺時,需要拆分函數,遷移成本較高。
Serverless 容器,可以很好地彌補 FaaS 的不足,Serverless 容器可以支持進程常駐的服務形態,不限運行時長,并擴大 Serverless 的應用場景。Serverless 容器支持服務的形態,傳統的單體應用或者微服務應用,幾乎可以無縫遷移到 Serverless 容器平臺上。
3 裸金屬容器
容器服務最早部署形態是基于 IaaS 虛擬機,以虛擬機節點作為容器集群的計算節點,并基于此構建容器的網絡、存儲和編排能力,這樣的堆疊架構雖然可以讓整個軟件棧分工明確、邊界清晰,但是帶來了較大的性能損耗和功能冗余。此外如果用戶對實例安全隔離性要求較高,就需要借助虛擬化技術,而虛擬化平臺不能很好支持該能力。基于以上痛點,在裸金屬服務器上搭建容器服務成為一些對性能和實例隔離性較高用戶的選擇。
微服務
![]()
從軟件架構的演化來看,微服務架構的出現是用戶需求、開發周期以及市場規模變化下的必然發展。在單體架構中,應用大多數通過瀑布式模型進行開發,計劃、開發、測試、上線等階段單獨進行,以整個應用為單位進行開發、維護。這種開發模式與印刷術出現之前的手寫時代相似。
手寫卷很難根據場景復用,有按需更新或修改的部分則需要整體重構。借由類比,單體架構的優點和缺點都十分明顯:在小型應用中整體從設計到上線的速度很快,其中的管理工作簡單;但是在需要更新和修改的情況下,應用整體高度聚合,各部分高耦合,牽一發而動全身,常常需要整體重新開發。
![]()
Serverless
![]()
無服務器是一種架構理念,其核心思想是將提供服務資源的基礎設施抽象成各種服務,以 API接口的方式供給用戶按需調用,真正做到按需伸縮、按使用收費。這種架構體系結構消除了對傳統的海量持續在線服務器組件的需求,降低了開發和運維的復雜性,降低運營成本并縮短了業務系統的交付周期,使得用戶能夠專注業務本身。在無服務器架構的理念和方法下,有很多種無服務器的技術形態,目前成熟落地的有 3 種形態,函數即服務(FaaS)、后端即服務(BaaS)和Serverless 容器。
云原生芯片
云原生技術的應用普及對云計算的上下游技術也產生了革命性的影響,芯片技術首當其沖。引發芯片云原生化演進的原因主要有兩個,一是應用負載模型的精細化、動態演進,要求芯片內核技術升級。從架構設計上,芯片內核的線程處理分割需要更加細粒度,獨立內核需要有獨享的二級緩存,來能夠最大程度的去適應云原生環境中需要平行擴展的微服務化應用,為用戶提供更高性價比的服務;二是超大規模數據中心和邊緣數據中心的需求猛增,這兩類數據中心在延時、散熱、功耗等需求與傳統數據中心不同,這對 CPU 的部署密度和能耗的要求越來越高,基于 ARM架構的芯片成為云原生芯片的主要發展方向,比較典型的產品有阿里云的倚天 710 芯片、AWS 的Graviton 系列芯片等。
云原生網絡
云原生網絡的基本目標是滿足云原生服務的網絡端點和服務間的互通性、安全性和負載均衡要求。Kubernetes 已經成為容器編排的事實標準,容器網絡也需與 Kubernetes 的調度機制相匹配。
容器網絡接口 CNI(Container Network Interface) 是現行的網絡接口標準, CNI 接口只實現創建、刪除容器時的調用方法,其他所有的網絡能力都交由網絡廠商實現增值服務,這在一定程度上加速了網絡方案的繁榮,但是給用戶的方案選型造成了較大困擾。大部分的用戶場景都是基于網絡的通訊協議進行方案選擇,根據網絡協議的不同,可將網絡方案分為路由模式、Overlay和 L2 方案三種。
![]()
自 CNI 標準發布到 2020 年,云原生網絡已經演進近 6 年時間。也積累了大量的用戶落地案例和大規模的實踐案例。
云原生數據庫
數據庫技術是信息技術領域的核心技術之一 , 幾乎所有的信息系統都需要使用數據庫系統來組織、存儲、操縱和管理業務數據。
![]()
![]()
云原生數據庫是云計算發展到成熟階段,數據庫針對云計算架構所作的定制化改造。在傳統數據庫的系統架構下,必須是緊耦合的設計方式,才能最大效能地發揮系統的優勢。
![]()
![]()
云原生數據庫在技術架構上的創新使得數據庫具備了高擴展性、易用性、迭代快速、成本降低等特點,能夠有力地支持企業向數字化、在線化、智能化演進。

