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

微服務(wù)架構(gòu)下 | 你不得不知的三種部署策略

開(kāi)發(fā) 架構(gòu)
現(xiàn)在的大多數(shù)應(yīng)用程序都是云原生、微服務(wù)的方式。例如,淘寶,它就是由許許多多的子服務(wù)組成的。服務(wù)數(shù)量越多,意味著出現(xiàn)問(wèn)題的可能性更大。

前言

不知道大家有了解過(guò)你們公司的軟件產(chǎn)品是如何部署的么?采用的什么部署策略?其實(shí)在軟件開(kāi)發(fā)生命周期中,部署是非常關(guān)鍵的一環(huán),你需要考慮多方面的因素,如何保證你部署對(duì)用戶無(wú)感知?如何把影響范圍控制到最???如何出現(xiàn)問(wèn)題快速的實(shí)現(xiàn)回滾?

現(xiàn)在的大多數(shù)應(yīng)用程序都是云原生、微服務(wù)的方式。例如,淘寶,它就是由許許多多的子服務(wù)組成的。服務(wù)數(shù)量越多,意味著出現(xiàn)問(wèn)題的可能性更大。那么部署的策略極為關(guān)鍵,高效部署的期望達(dá)成的目標(biāo)有如下幾點(diǎn):

  1. 零停機(jī)
  2. 快速部署
  3. 客戶對(duì)新版本的快速反饋
  4. 出現(xiàn)問(wèn)題容易回滾

那么本文和大家分享3種微服務(wù)部署比較常見(jiàn)的3種部署策略,滾動(dòng)部署、藍(lán)綠部署和金絲雀部署。

滾動(dòng)部署

圖片

上圖顯示了部署模式:舊版本以藍(lán)色顯示,新版本在集群中的每個(gè)服務(wù)器上以綠色顯示。

在滾動(dòng)部署中,應(yīng)用程序的新版本逐漸替換舊版本。實(shí)際部署發(fā)生在一段時(shí)間內(nèi)。在此期間,新舊版本將共存,不會(huì)影響功能使用和用戶體驗(yàn)。此過(guò)程可以更輕松地回滾與舊組件不兼容的任何新組件。

優(yōu)點(diǎn):

  1. 減少停機(jī)時(shí)間:滾動(dòng)部署允許以增量方式部署更新,從而減少應(yīng)用程序的整體停機(jī)時(shí)間。這是因?yàn)閼?yīng)用程序在部署過(guò)程中對(duì)用戶仍然可用。
  2. 更好的風(fēng)險(xiǎn)管理:通過(guò)逐步更新一部分服務(wù)器,滾動(dòng)部署可以實(shí)現(xiàn)更好的風(fēng)險(xiǎn)管理。如果在更新期間出現(xiàn)任何問(wèn)題,可以及早檢測(cè)到并在將更新推廣到所有服務(wù)器之前緩解這些問(wèn)題。
  3. 提高可靠性:滾動(dòng)部署可以通過(guò)降低廣泛故障的風(fēng)險(xiǎn)來(lái)幫助提高應(yīng)用程序的可靠性。由于更新是針對(duì)一部分服務(wù)器推出的,因此可以在問(wèn)題影響整個(gè)系統(tǒng)之前檢測(cè)并解決問(wèn)題。
  4. 簡(jiǎn)化回滾:如果在部署過(guò)程中出現(xiàn)問(wèn)題,滾動(dòng)部署可以更輕松地回滾更新。由于更新是增量部署的,回滾到以前的版本只需要回滾已更新的服務(wù)器子集。

缺點(diǎn):

  1. 復(fù)雜性: 滾動(dòng)部署的設(shè)置和管理可能很復(fù)雜,尤其是對(duì)于具有許多服務(wù)器的大型應(yīng)用程序。它需要仔細(xì)規(guī)劃和協(xié)調(diào),以確保以正確的順序推出更新,并及時(shí)更新所有服務(wù)器。
  2. 更長(zhǎng)的部署時(shí)間:滾動(dòng)部署可能需要比其他部署策略更長(zhǎng)的時(shí)間才能完成,因?yàn)楦率侵鸩酵瞥龅?。這可能會(huì)導(dǎo)致更長(zhǎng)的部署時(shí)間,這可能不適合對(duì)正常運(yùn)行時(shí)間有嚴(yán)格要求的應(yīng)用程序。
  3. 增加資源使用:滾動(dòng)部署可能需要更多資源,因?yàn)楦聲?huì)在部署到所有服務(wù)器之前先部署到一部分服務(wù)器。這可能會(huì)導(dǎo)致資源使用量增加和成本增加。
  4. 兼容性問(wèn)題的風(fēng)險(xiǎn):滾動(dòng)部署會(huì)增加在不同服務(wù)器上運(yùn)行的不同版本的應(yīng)用程序之間出現(xiàn)兼容性問(wèn)題的風(fēng)險(xiǎn)。這可以通過(guò)在推出更新之前徹底測(cè)試應(yīng)用程序情況的兼容性來(lái)緩解。

藍(lán)綠部署

圖片

在藍(lán)綠部署中,有兩個(gè)相同的環(huán)境(或資源集)用于部署和測(cè)試新版本的軟件。一個(gè)環(huán)境被認(rèn)為是“藍(lán)色”環(huán)境,而另一個(gè)被認(rèn)為是“綠色”環(huán)境。

當(dāng)前版本的軟件在藍(lán)色環(huán)境中運(yùn)行,新版本在綠色環(huán)境中進(jìn)行部署和測(cè)試。一旦新版本在綠色環(huán)境中被認(rèn)為穩(wěn)定且功能齊全,流量可以從藍(lán)色環(huán)境切換到綠色環(huán)境,使新版本成為當(dāng)前版本。

這種方法的優(yōu)點(diǎn)是它最大限度地降低了部署新版本軟件可能導(dǎo)致的停機(jī)或錯(cuò)誤的風(fēng)險(xiǎn)。如果在部署或測(cè)試過(guò)程中出現(xiàn)問(wèn)題,可以快速切換回藍(lán)色環(huán)境,而不會(huì)對(duì)用戶造成任何干擾。這使得藍(lán)綠部署成為需要高可用性和正常運(yùn)行時(shí)間的公司的熱門選擇。

優(yōu)點(diǎn):

  1. 停機(jī)時(shí)間最短:藍(lán)綠部署允許零停機(jī)更新,因?yàn)樾掳姹镜膽?yīng)用程序在切換到藍(lán)色環(huán)境之前部署到綠色環(huán)境,這可以導(dǎo)致停機(jī)時(shí)間最少。
  2. 降低風(fēng)險(xiǎn):由于新版本的應(yīng)用部署到綠色環(huán)境,部署過(guò)程中出現(xiàn)的任何問(wèn)題都與綠色環(huán)境隔離,降低了大范圍故障的風(fēng)險(xiǎn)。
  3. 簡(jiǎn)化回滾:如果部署過(guò)程中出現(xiàn)問(wèn)題,很容易回滾到以前的版本,因?yàn)樗{(lán)色環(huán)境仍然運(yùn)行以前的版本。
  4. 提高可靠性:由于藍(lán)色和綠色環(huán)境相同,藍(lán)綠部署可以幫助確保應(yīng)用程序可靠和穩(wěn)定。

缺點(diǎn):

  1. 復(fù)雜性增加: 藍(lán)綠部署的設(shè)置和管理可能很復(fù)雜,尤其是對(duì)于具有許多組件的大型應(yīng)用程序。它需要仔細(xì)規(guī)劃和協(xié)調(diào),以確保正確設(shè)置綠色環(huán)境,并確保從藍(lán)色環(huán)境到綠色環(huán)境的無(wú)縫切換。
  2. 增加資源使用:運(yùn)行兩個(gè)相同的環(huán)境可能需要更多資源,這會(huì)導(dǎo)致成本增加。
  3. 更長(zhǎng)的部署時(shí)間: 藍(lán)綠可能需要更長(zhǎng)的部署時(shí)間,因?yàn)樾掳姹镜膽?yīng)用程序需要先部署到綠色環(huán)境,然后才能切換到藍(lán)色環(huán)境。
  4. 配置漂移的風(fēng)險(xiǎn):由于兩個(gè)相同的環(huán)境同時(shí)運(yùn)行,如果更改一個(gè)環(huán)境而不更改另一個(gè)環(huán)境,則存在配置漂移的風(fēng)險(xiǎn)。通過(guò)使用自動(dòng)化和配置管理工具來(lái)確保環(huán)境保持相同,可以減輕這種風(fēng)險(xiǎn)。

金絲雀部署

圖片

金絲雀部署就像藍(lán)綠部署,只是它風(fēng)險(xiǎn)更小。你無(wú)需一步從藍(lán)色切換到綠色,而是使用一種分階段的方法。

通過(guò)金絲雀部署,您可以在生產(chǎn)基礎(chǔ)設(shè)施的一小部分中部署新的應(yīng)用程序代碼。一旦應(yīng)用程序被簽署發(fā)布,只有少數(shù)用戶被路由到新版本上,這樣可以最大限度地減少任何影響。

在沒(méi)有錯(cuò)誤報(bào)告的情況下,新版本可以逐步推廣到基礎(chǔ)架構(gòu)的其余部分。

優(yōu)點(diǎn):

  1. 降低風(fēng)險(xiǎn): 金絲雀部署可以降低風(fēng)險(xiǎn),因?yàn)樾掳姹镜膽?yīng)用程序被推出到一小部分用戶或服務(wù)器,允許在問(wèn)題影響更廣泛的受眾之前檢測(cè)和緩解任何問(wèn)題。
  2. 早期反饋: 金絲雀部署提供一小部分用戶對(duì)新版本應(yīng)用程序的早期反饋,這有助于在向更廣泛的受眾推出之前識(shí)別問(wèn)題并改進(jìn)應(yīng)用程序。
  3. 提高可靠性:金絲雀部署有助于提高應(yīng)用程序的可靠性,確保在問(wèn)題影響更廣泛的受眾之前及早發(fā)現(xiàn)并解決任何問(wèn)題。
  4. 受控推出:金絲雀部署允許受控推出新版本的應(yīng)用程序,這有助于確保推出順利并且不會(huì)導(dǎo)致任何意外問(wèn)題。

缺點(diǎn):

  1. 復(fù)雜性增加:金絲雀部署的設(shè)置和管理可能很復(fù)雜,尤其是對(duì)于具有許多組件的大型應(yīng)用程序。它需要仔細(xì)規(guī)劃和協(xié)調(diào),以確保正確設(shè)置金絲雀版本并且無(wú)縫推出。
  2. 增加資源使用:運(yùn)行兩個(gè)版本的應(yīng)用程序可能需要更多資源,這會(huì)導(dǎo)致成本增加。
  3. 更長(zhǎng)的部署時(shí)間: 金絲雀部署可能需要更長(zhǎng)的時(shí)間才能部署,因?yàn)樾掳姹镜膽?yīng)用程序需要在向更廣泛的受眾推出之前進(jìn)行測(cè)試和監(jiān)控。
  4. 金絲雀超載的風(fēng)險(xiǎn):如果金絲雀子集太小或不能代表更廣泛的受眾,它可能會(huì)因流量或使用而超載,這可能會(huì)扭曲結(jié)果并影響應(yīng)用程序的整體性能。

總結(jié)

總而言之,沒(méi)有適用于所有情況的單一“最佳”部署策略,因?yàn)椴煌姆椒赡芨m合不同的場(chǎng)景、團(tuán)隊(duì)和應(yīng)用程序。比如我們公司就是采用的停機(jī)部署,雖然提起來(lái)有點(diǎn)low,但是我們是TO B業(yè)務(wù),這種方式成本最低,怎么簡(jiǎn)單怎么來(lái)。

總的來(lái)說(shuō),最佳部署策略將取決于多種因素,包括應(yīng)用程序的規(guī)模和復(fù)雜性、團(tuán)隊(duì)的規(guī)模和專業(yè)知識(shí)、所需的風(fēng)險(xiǎn)和停機(jī)時(shí)間級(jí)別、資源和基礎(chǔ)設(shè)施的可用性以及其他特定考慮因素給相關(guān)組織和應(yīng)用程序。

重要的是要不斷評(píng)估和試驗(yàn)不同的部署策略,以找到最適合你的團(tuán)隊(duì)和你的應(yīng)用程序的策略,并且需要隨著需求的變化,去不不斷調(diào)整迭代你的部署策略,這才是正道。

責(zé)任編輯:武曉燕 來(lái)源: JAVA旭陽(yáng)
相關(guān)推薦

2017-08-16 18:03:12

Docker安全工具容器

2018-05-09 11:15:59

服務(wù)器緩存技巧

2023-08-29 08:41:42

2020-10-21 09:36:40

Vue項(xiàng)目技巧

2010-08-27 10:40:55

Android

2011-03-31 10:46:54

LinuxCLI軟件

2019-12-10 15:30:27

SaaSIaaS云計(jì)算

2020-09-22 08:16:20

軟件開(kāi)發(fā)原則

2019-11-27 14:20:27

Redis數(shù)據(jù)庫(kù)C語(yǔ)言

2022-08-30 23:54:42

MySQL數(shù)據(jù)庫(kù)工具

2009-06-23 09:06:32

2022-10-27 09:55:00

2020-06-04 13:52:00

CRM選型

2024-06-05 11:36:28

2011-05-20 11:11:13

2017-08-10 16:54:47

MySQL優(yōu)化MySQL

2016-03-30 09:56:37

5G

2020-07-09 12:50:29

JVM內(nèi)存管理Java

2012-07-17 11:19:12

Office2013

2020-02-13 18:05:18

數(shù)組reduce前端
點(diǎn)贊
收藏

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