從架構角度談談云原生架構

1、云原生架構起源

隨著云服務商的成熟,客戶面臨著將服務直接使用云平臺的服務部署在云平臺上,或者采用本地和云上混合部署的模式來對外提供服務,從解決方案的角度來說,采用云原生架構的優點有:
可以利用云服務的管理,方便的的針對特定服務進行收縮和擴容
可以利用云服務的成熟的監控,針對服務做全鏈路的監控
當然,采用云原生的架構也有缺點,比如:
數據的安全問題,怎么樣保證數據不被泄露
數據遷移問題,如果要更換一個服務提供商怎么遷移,如果要不想使用云服務了,后續數據怎么遷移到本地,作為一個完整的解決方案,都需要對應的策略

2、云原生架構的適用場景

有服務需要動態伸縮,客戶請求的峰值很高,平常的服務有沒有什么壓力
有容災需求,從IT的角度來說自己搭建很麻煩
服務SAAS化,需要針對多個用戶使用,希望擴容更加靈活,可以針對不同的客戶有特殊的處理
一部分中等客戶不希望搭建自己的機房來進行管理,希望直接使用云,系統有一定的規模,可能涉及到動態擴容

3、云原生架構的要點

3.1 云原生的能力

?容器化與編排
?能力:使用容器(如Docker)打包應用及其依賴,通過編排工具(如Kubernetes)自動化管理容器生命周期。
?示例:基于K8s的彈性擴縮容、滾動更新和故障自愈。
?微服務化
能力:將單體應用拆分為松耦合的微服務,每個服務獨立開發、部署和擴展,這個能力本身是技術架構需要考慮的點,并不一定是云提供廠商提供的能力
?示例:使用Spring Cloud、gRPC或服務網格(如Istio)實現服務間通信。
?持續交付與DevOps
?能力:通過CI/CD流水線(如Jenkins、GitLab CI、Argo CD)實現自動化構建、測試和部署。
?示例:基于GitOps的聲明式部署(通過Git倉庫管理基礎設施狀態)。
?聲明式API與自動化
?能力:通過聲明式配置(如Kubernetes YAML、Terraform)定義系統目標狀態,依賴工具自動調整實際狀態。
?示例:使用Helm Chart管理K8s應用模板。
?可觀測性
?能力:集成監控(Prometheus)、日志(ELK Stack)、追蹤(Jaeger)實現全棧可見性。
?示例:通過Grafana Dashboard實時展示應用性能指標。
?服務治理與彈性設計
?能力:實現熔斷(Hystrix)、限流、重試等容錯機制,保障系統高可用。
?示例:通過Istio的流量管理策略實現金絲雀發布。
?無服務器(Serverless)能力
?能力:按需使用函數計算(如AWS Lambda)或事件驅動架構(如Knative),減少運維負擔。
?示例:處理異步任務(圖片壓縮、數據處理)。
?多云與混合云支持
?能力:通過跨云編排工具(如Karmada、Cluster API)統一管理多云資源。
?示例:在AWS和Azure之間動態遷移負載。

3.2 設計思考

3.2.1 弱使用

使用情況:將云服務提供商當做一個虛擬主機+中間件提供商
考慮因素:使用云服務商動態增加虛擬機器的能力,另外使用中間件因為云中立的中間件集群和監控都比較完善
注意事項:
是否需要自己基于虛擬主機搭建自己的k8s或者ci/cd環境,還是利用云提供商的是一個考慮因素,從架構的角度來說,自己自己搭建k8s,使用云上的docker鏡像倉庫,本地打包到鏡像倉庫上去即可,CI/CD還是本地環境進行
關于云上承載的服務,建議納入到統一監控當中,可以使用云上的,也可以自己搭建
優缺點:和云服務廠家的綁定比較少,是優點也是缺點,有 一些云服務需要數據和資源都在云服務廠商上才能使用,但是遷移云的時候相對比較輕量一些。

3.2.2 強使用

使用情況:將云服務提供商當做一個虛擬主機+服務編排+中間件提供商
考慮因素:使用云服務商動態增加虛擬機器的能力、服務編排的能力和中間件的能力
注意事項:
CI/CD是否也要使用云上的服務,這一部分可以不強綁定
統一監控怎么設計,在服務編排也使用云上服務的話,統一監控只能接入云上的監控平臺
優缺點:這種場景下和云服務商的綁定比較死,要充分考慮到云上遷移的工作量

3.2.3 小結

在弱使用和強使用的場景下,整體的監控以及服務失敗后如何處理這二個方面,非常影響我們的選擇,可以直接選擇云上的服務,但是遷移到另外一個云可能又不太一樣,完全搭建自己一套也是一種選擇,但是可能工作量又比較大。

4、云原生架構中的混合云和云中立

4.1 云中立

從開發的角度來說,一旦使用了云服務,可能就和這些服務提供商有了強綁定,比如:如果使用了對象存儲,那么各家的對象存儲還是有細微的差異,這種差異針對上層程序員來說非常不友好;另外,一旦涉及到遷移到另外的云上,這個改動是特別大。
從架構的角度來說,盡量的提供一個抽象的中間服務來屏蔽這些底層服務的不同,盡量讓上層服務不要使用這種云廠商特定的接口API,這種設計的思路就是云中立設計的思路,典型的場景是針對各個云提供商的對象存儲做一層封裝適配供上層服務使用。

4.2 混合云部署

典型的,在to B的案例中,實際上從提供解決方案的角度,希望一部分不隨著客戶變化的服務放在云端,另一部分定制化服務放在客戶本地,這種混合云的方式。
這種方式下,需要客戶的角度要考慮是否有數據泄露的問題,包括數據存儲的安全性,是否可以存在云端,是否足夠的安全措施;本地和云端通信的安全性,可靠性等。

知乎本人文章地址

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75224.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75224.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Zcanpro搭配USBCANFD-200U在新能源汽車研發測試中的應用指南(周立功/致遠電子)

——國產工具鏈的崛起與智能汽車測試新范式 引言:新能源汽車測試的國產化突圍 隨著新能源汽車智能化、網聯化程度的提升,研發測試面臨三大核心挑戰:多協議融合(CAN FD/LIN/以太網)、高實時性數據交互需求、復雜工況下…

【Verilog】實驗十 帶倒計時交通燈控制電路設計

目錄 一、實驗目的 二、實驗環境 三、實驗任務 四、實驗原理與實驗步驟 1. 實驗原理 2. 實驗步驟 五、實驗思考 代碼 TOP.v trafic2_2.v shumaguan.v clk_div.v 一、實驗目的 1. 掌握同步有限狀態機的設計方法。 2. 采用狀態機的設計方法,設計實現帶倒…

Linux : System V 共享內存

目錄 一 前言 二 共享內存概念 三 共享內存創建 四 查看共享內存 五 共享內存的刪除 六 共享內存的關聯 七 共享內存去關聯 八 共享內存的使用(通信) 九 共享內存的特點 一 前言 共享內存區是最快的IPC形式(進程間通信&#xff1…

Spring Cloud 2023.x安全升級:OAuth2.1與JWT動態輪換實戰

引言:當安全遇上云原生,零停機密鑰輪換成為剛需 在微服務架構中,OAuth2.1與JWT已成為身份驗證的黃金標準,但傳統方案存在兩大痛點: 密鑰輪換風險:手動替換JWT密鑰需重啟服務,導致短暫鑒權中斷&…

創建私人阿里云docker鏡像倉庫

一.登錄阿里云 https://cr.console.aliyun.com/cn-hangzhou/instances 二.創建個人實例 【實例列表】 》【創建個人實例】 》【設置Registry登錄密碼】 三.創建命名空間 步驟:【個人實例】》【命名空間】》【創建命名空間】 注:一個賬號最多可以創建3個命名空…

oracle基礎知識視圖的定義和應用

1.1 視圖的定義 視圖(View)是數據庫中非常重要的內容,在實際開發中必須學會視圖的編寫。 用于產生視圖的表叫做該視圖的基表。一個視圖也可以從另一個視圖中產生。視圖是可以嵌套的。 視圖的定義存在數據庫中,與此定義相關的數據并沒有再存一份于數據庫中…

邊緣計算:工業自動化的智能新引擎

在工業4.0的浪潮中,工業自動化正經歷著前所未有的變革。隨著物聯網(IoT)技術的普及,越來越多的工業設備被連接到網絡中,產生了海量的數據。然而,傳統的云計算架構在處理這些實時性要求極高的工業數據時&…

12-SpringBoot3入門-項目打包和運行

1、打包 1&#xff09;打包插件 pom.xml <!--SpringBoot應用打包插件--> <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plu…

【PCIE711-214】基于PCIe總線架構的4路HD-SDI/3G-SDI視頻圖像模擬源

產品概述 PCIE711-214是一款基于PCIE總線架構的4路SDI視頻模擬源。該板卡為標準的PCIE插卡&#xff0c;全高尺寸&#xff0c;適合與PCIE總線的工控機或者服務器&#xff0c;板載協議處理器&#xff0c;可以通過PCIE總線將上位機的YUV 422格式視頻數據下發通過SDI接口播放出去&…

PipeWire 音頻設計與實現分析一——介紹

PipeWire 是一個基于圖的媒體處理引擎&#xff0c;一個可以運行多媒體節點圖的媒體服務器&#xff0c;是 Linux 的音頻/視頻總線&#xff0c;它管理 Linux 系統中&#xff0c;不同應用程序對音頻和視頻設備的共享訪問。它提供了一個本地客戶端音頻 API&#xff0c;但也提供兼容…

使用卷積神經網絡識別MNIST數據集

卷積神經網絡 卷積神經網絡本質是共享權重稀疏鏈接的全連接網絡 編寫步驟 構建一個神經網絡&#xff0c;步驟是幾乎不變的&#xff0c;大概有以下幾步 準備數據集 #更高級的CNN網絡 import torch import torch.nn as nn import torch.nn.functional as F import torchvisi…

力扣125.驗證回文串

如果在將所有大寫字符轉換為小寫字符、并移除所有非字母數字字符之后&#xff0c;短語正著讀和反著讀都一樣。則可以認為該短語是一個 回文串 。 字母和數字都屬于字母數字字符。 給你一個字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &#xff1b;否則&#…

UR機械臂sim2real推薦包

推薦一個和ur機械臂配套的interface&#xff1a; ur_rtde Universal Robots RTDE C Interface — ur_rtde 1.6.0 documentation 也歡迎大家提供新想法和bug

CST學習筆記(三)MATLAB與CST聯合仿真-遠場數據批量導出

CST學習筆記&#xff08;三&#xff09;MATLAB與CST聯合仿真-遠場數據批量導出 一、直接數據導出 &#xff08;1&#xff09;打開遠場&#xff0c;調至笛卡爾坐標系 &#xff08;2&#xff09;然后點擊post processing → Import/Export → Plot Data (ASCII) &#xff0c;即…

藍橋杯---BFS解決FloofFill算法1---圖像渲染

文章目錄 1.算法簡介2.題目概述3.算法原理4.代碼分析 1.算法簡介 這個算法是關于我們的floodfill的相關的問題&#xff0c;這個算法其實從名字就可以看出來&#xff1a;洪水灌溉&#xff0c;其實這個算法的過程就和他的名字非常相似&#xff0c;下面的這個圖就生動的展示了這個…

我與數學建模之啟程

下面的時間線就是從我的大二上開始 9月開學就迎來了本科階段最重要的數學建模競賽——國賽&#xff0c;這個比賽一般是在9月的第二周開始。 2021年國賽是我第一次參加國賽&#xff0c;在報名前我還在糾結隊友&#xff0c;后來經學長推薦找了另外兩個學長。其實第一次國賽沒啥…

利用 SSRF 和 Redis 未授權訪問進行內網滲透

目錄 環境搭建 ?編輯 發現內網存活主機 ?編輯 掃描內網端口 ?編輯 利用 Redis 未授權訪問進行 Webshell 寫入 步驟1&#xff1a;生成 payload 方式1&#xff1a;使用python生成 payload 方式二&#xff1a;使用 Gopher 工具 步驟 2&#xff1a;寫入 Webshell&#xf…

【Vue2插槽】

Vue2插槽 Vue2插槽默認插槽子組件代碼&#xff08;Child.vue&#xff09;父組件代碼&#xff08;Parent.vue&#xff09; 命名插槽子組件代碼&#xff08;ChildNamed.vue&#xff09;父組件代碼&#xff08;ParentNamed.vue&#xff09; 代碼解釋 Vue2插槽 Vue2插槽 下面為你詳…

ORB-SLAM學習感悟記錄

orb特征點的旋轉不變性 利用灰度質心法求出的質心后&#xff0c;與形心連線所形成的角度如下圖所示&#xff1a; 這里容易對上圖進行誤解&#xff1a; 為了保證旋轉不變性&#xff0c;這里注意ORB-slam是利用這個角度旋轉坐標系&#xff0c;以新坐標系為標準從圖像中采點進行…

搜索算法------深度優先搜索

1. 介紹 深度優先搜索&#xff08;Depth-First Search&#xff0c;DFS&#xff09;是一種用于遍歷或搜索樹或圖的算法。這種算法通過盡可能深地搜索圖的分支來探索解決方案空間&#xff0c;直到達到一個沒有分支的點&#xff0c;然后回溯 1.1 原理 選擇起始點&#xff1a;從…