自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

云原生架構(gòu)成功的六大原則

云計(jì)算 云原生
在構(gòu)建云原生應(yīng)用程序時(shí),首先應(yīng)構(gòu)建一個(gè)可以在多個(gè)維度上不斷移動(dòng)的系統(tǒng),以實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展,自動(dòng)處理故障,并盡可能輕松的添加或刪除組件。以下幾個(gè)原則可以使構(gòu)建的云原生架構(gòu)更加強(qiáng)大、更加適應(yīng)變化并且更容易維護(hù)。

云原生架構(gòu)是一種在云環(huán)境中從頭開(kāi)始構(gòu)建應(yīng)用程序的設(shè)計(jì)模式。雖然云原生架構(gòu)沒(méi)有硬性規(guī)則,但大多數(shù)云原生應(yīng)用程序都是由微服務(wù)組織而成。微服務(wù)主要用于將應(yīng)用程序分解為可由小型團(tuán)隊(duì)維護(hù)的自治、松散耦合的單元,每個(gè)微服務(wù)通常部署為一個(gè)容器或一組容器。

此外,云原生應(yīng)用通常遵循12因素應(yīng)用框架的原則。它們圍繞以下方面構(gòu)建:

  • 性能:應(yīng)用程序在設(shè)計(jì)時(shí)考慮可擴(kuò)展性,旨在在規(guī)模上表現(xiàn)良好。
  • 彈性:應(yīng)用程序由伸縮性良好的小型、可擴(kuò)展的組件構(gòu)建而成。
  • 韌性:應(yīng)用程序?qū)收暇哂泻軓?qiáng)的復(fù)原能力,可自動(dòng)更換發(fā)生故障的組件且不會(huì)中斷其他組件的運(yùn)行。
  • 安全性:在構(gòu)建應(yīng)用程序時(shí)考慮安全性,確保應(yīng)用程序或其數(shù)據(jù)不被攻擊者破壞。

原生架構(gòu)原則

在構(gòu)建云原生應(yīng)用程序時(shí),首先應(yīng)構(gòu)建一個(gè)可以在多個(gè)維度上不斷移動(dòng)的系統(tǒng),以實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展,自動(dòng)處理故障,并盡可能輕松的添加或刪除組件。以下幾個(gè)原則可以使構(gòu)建的云原生架構(gòu)更加強(qiáng)大、更加適應(yīng)變化并且更容易維護(hù)。

1. 自動(dòng)化設(shè)計(jì)

創(chuàng)建可以部署、修復(fù)和擴(kuò)展系統(tǒng)的自動(dòng)化流程,并且生成相關(guān)日志和事件。構(gòu)建系統(tǒng)以自動(dòng)處理:

  • 提供的基礎(chǔ)架構(gòu),如機(jī)器實(shí)例;
  • CI/CD 管道中的生成、測(cè)試和部署階段;
  • 基于工作負(fù)載或其他應(yīng)用程序要求的動(dòng)態(tài)可擴(kuò)展性;
  • 備份、運(yùn)行狀況監(jiān)視和故障恢復(fù)。

2. 盡可能保持無(wú)狀態(tài)

雖然一些云原生純粹主義者認(rèn)為云原生應(yīng)用程序應(yīng)該是無(wú)狀態(tài)的,但在現(xiàn)實(shí)世界中可能很難實(shí)現(xiàn)無(wú)狀態(tài)應(yīng)用程序的開(kāi)發(fā)。然而也應(yīng)盡可能使用無(wú)狀態(tài)組件,因?yàn)楦櫡植际綉?yīng)用程序中的管理狀態(tài)(如當(dāng)前正在運(yùn)行的實(shí)例數(shù))是困難的。無(wú)狀態(tài)組件使擴(kuò)展(添加更多副本)、修復(fù)(刪除并替換為新實(shí)例)、回滾和工作負(fù)載平衡(無(wú)需關(guān)心哪個(gè)實(shí)例正在處理哪些事務(wù)的復(fù)雜邏輯)變得更加容易。

3. 彈性設(shè)計(jì)

通過(guò)在設(shè)計(jì)中添加冗余將彈性構(gòu)建到云原生應(yīng)用程序中。云原生應(yīng)用程序通過(guò)使用實(shí)例集群、數(shù)據(jù)復(fù)制以及多可用區(qū)或多區(qū)域云部署來(lái)避免單點(diǎn)故障。那些必須在本地運(yùn)行的應(yīng)用程序應(yīng)使用混合架構(gòu)利用公有云以實(shí)現(xiàn)高可用性和災(zāi)難恢復(fù),至少對(duì)于其某些組件而言。

一些常見(jiàn)的彈性機(jī)制:

  • 能夠識(shí)別由連接丟失或服務(wù)超時(shí)等臨時(shí)問(wèn)題引起的暫時(shí)性故障,進(jìn)行重試請(qǐng)求;
  • 實(shí)現(xiàn)斷路器模式,檢查重試操作的次數(shù),并在后續(xù)重試時(shí)返回錯(cuò)誤而不激活服務(wù);
  • 允許服務(wù)在它們所依賴(lài)的其他服務(wù)出現(xiàn)故障時(shí)正常降級(jí),并且仍提供合理的用戶(hù)體驗(yàn);
  • 根據(jù)應(yīng)用程序的使用速率限制和節(jié)流來(lái)識(shí)別和限制大容量用戶(hù);
  • 使用補(bǔ)償事務(wù),將業(yè)務(wù)事務(wù)分解為一系列較小的事務(wù),更容易在分布式系統(tǒng)中實(shí)現(xiàn)事務(wù)一致性。

4. 使用微邊界構(gòu)建每個(gè)組件

云原生應(yīng)用不僅應(yīng)該從一開(kāi)始就設(shè)計(jì)安全性,還應(yīng)該在假設(shè)沒(méi)有可信任組件的情況下進(jìn)行設(shè)計(jì)。因?yàn)閼?yīng)用程序與其用戶(hù)之間,甚至內(nèi)部組件之間可能沒(méi)有專(zhuān)用網(wǎng)絡(luò),此時(shí)應(yīng)該致力于強(qiáng)化所有組件、加密數(shù)據(jù)并在組件之間實(shí)現(xiàn)身份驗(yàn)證,使應(yīng)用程序更具彈性,并能夠在不受信任的環(huán)境中靈活地部署組件。

5. 構(gòu)建多語(yǔ)言架構(gòu)

云原生應(yīng)用不需要高度集成的架構(gòu)、使用相同語(yǔ)言編寫(xiě)的組件以及使用相同的技術(shù)和框架。由于REST

API可以公開(kāi)每個(gè)組件的功能,允許異構(gòu)組件相互通信和使用,因此可以在充分考慮團(tuán)隊(duì)能力之后,使用能夠提供最大價(jià)值和最快上市時(shí)間的語(yǔ)言或技術(shù)編寫(xiě)每個(gè)組件。

6. 組件不可變

通過(guò)基礎(chǔ)架構(gòu)組件不可變以引入高級(jí)別的敏捷性和靈活性。這也就意味著不允許在部署后對(duì)配置服務(wù)器或虛擬機(jī)(VM)進(jìn)行修改。

在部署不可變服務(wù)器后,就可以不再對(duì)其進(jìn)行修改,相反,若沒(méi)有部署不可變服務(wù)器,則應(yīng)確保已部署的服務(wù)器保持原樣且不進(jìn)行任何修改,以便如果出現(xiàn)問(wèn)題也可以快速輕松地更換服務(wù)器并保持應(yīng)用程序運(yùn)行。

以下是使用不可變基礎(chǔ)架構(gòu)的幾個(gè)主要優(yōu)點(diǎn):

  • 不可變組件有助于實(shí)現(xiàn)一致且可靠的基礎(chǔ)架構(gòu),使測(cè)試變得更加簡(jiǎn)單明了。
  • 部署不可變組件可以更簡(jiǎn)單、更可預(yù)測(cè)。
  • 不可變組件的每次部署都是版本化和自動(dòng)化,這使得環(huán)境回滾更加容易和簡(jiǎn)單。
  • 配置飄逸、雪花服務(wù)器和錯(cuò)誤得到緩解,甚至完全消除。
  • 使用云服務(wù)時(shí),自動(dòng)伸縮也毫不費(fèi)力。

可變服務(wù)器會(huì)增加成本和迭代時(shí)間,嚴(yán)重延遲上市時(shí)間,不可變的基礎(chǔ)設(shè)施則促進(jìn)了敏捷開(kāi)發(fā)。不可變基礎(chǔ)架構(gòu)可提高已部署環(huán)境的可靠性、一致性和效率,開(kāi)發(fā)人員可以在幾分鐘內(nèi)重新創(chuàng)建環(huán)境。

云原生架構(gòu)的優(yōu)缺點(diǎn)

云原生架構(gòu)有許多優(yōu)點(diǎn):

  • 成本:云提供低成本選項(xiàng),確保系統(tǒng)不間斷運(yùn)行,為客戶(hù)提供服務(wù),此外還可以利用各種云交付功能。若在企業(yè)內(nèi)部提供這些功能,則既耗時(shí)又昂貴。
  • 可靠性:云環(huán)境提供彈性和可靠性選項(xiàng),例如可用性區(qū)域,可以確保系統(tǒng)永遠(yuǎn)不會(huì)出現(xiàn)故障,免受中斷的影響,因此避免停機(jī)造成的不可挽回的損失。
  • 敏捷性:敏捷開(kāi)發(fā)需要不斷的測(cè)試和優(yōu)化,這在傳統(tǒng)的整體架構(gòu)中是很困難的,因?yàn)橐粋€(gè)小小的改變可能會(huì)破壞整個(gè)系統(tǒng)。云原生系統(tǒng)在構(gòu)建時(shí)考慮了持續(xù)變化,因此可以更輕松地更新和調(diào)整應(yīng)用程序。
  • 靈活性:云原生設(shè)計(jì)與平臺(tái)無(wú)關(guān),因此若當(dāng)前系統(tǒng)不適合開(kāi)發(fā),可以切換到新環(huán)境,而不必從頭開(kāi)始重新編譯。

云原生架構(gòu)的缺點(diǎn)包括:

  • 解決問(wèn)題:在傳統(tǒng)體系架構(gòu)中可以遵循線(xiàn)性計(jì)劃來(lái)識(shí)別問(wèn)題。而云原生設(shè)計(jì)存在復(fù)雜網(wǎng)絡(luò)中相互連接和交互的容器,并且特定組件集之間的路徑可能不明確。如果問(wèn)題的根源分散在多個(gè)容器中,則可能更難找出根本原因。
  • 安全性:由于系統(tǒng)是由大量動(dòng)態(tài)分布式組件構(gòu)成,云原生架構(gòu)通常更難以監(jiān)控和保護(hù)。
  • 知識(shí)差距:如果開(kāi)發(fā)人員不熟悉云原生系統(tǒng),則需要重新學(xué)習(xí),就像使用新語(yǔ)言一樣,重要的是需要能夠很好地理解新概念,以避免造成嚴(yán)重?fù)p失的錯(cuò)誤。

在考慮構(gòu)建新的云原生架構(gòu)時(shí),企業(yè)組織需要仔細(xì)權(quán)衡各種優(yōu)缺點(diǎn),以便為業(yè)務(wù)、客戶(hù)和利益相關(guān)者做出正確的決策。

責(zé)任編輯:趙寧寧 來(lái)源: IT168網(wǎng)站
相關(guān)推薦

2012-02-07 13:29:25

云計(jì)算HP

2022-02-25 15:56:44

云計(jì)算架構(gòu)基礎(chǔ)設(shè)施

2022-08-07 23:37:53

測(cè)試軟件開(kāi)發(fā)自動(dòng)化

2012-02-06 10:28:21

云計(jì)算

2010-09-09 13:54:06

DIV CSS

2015-08-24 10:30:25

數(shù)據(jù)中心選址

2013-11-13 10:20:13

運(yùn)維管理數(shù)據(jù)中心

2014-07-26 09:56:43

WOT2014敏捷開(kāi)發(fā)PO

2013-01-16 15:41:59

SDNJuniper

2009-06-18 11:12:00

2018-11-02 15:05:19

IT運(yùn)維故障操作

2019-09-16 23:03:12

軟件設(shè)計(jì)技術(shù)

2012-03-15 11:15:13

Java設(shè)計(jì)模式

2012-03-07 11:03:13

Java設(shè)計(jì)模式

2012-03-07 10:40:19

Java設(shè)計(jì)模式

2012-03-05 13:58:34

設(shè)計(jì)模式里氏置換

2012-03-08 10:57:00

Java設(shè)計(jì)模式

2021-04-01 14:54:12

云計(jì)算邊緣計(jì)算物聯(lián)網(wǎng)

2015-09-24 08:52:53

API設(shè)計(jì)原則

2012-02-01 13:24:37

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)