微服務(wù)部署模式
有了這些額外的優(yōu)勢(shì),架構(gòu)師和運(yùn)營(yíng)工程師也面臨著許多新的挑戰(zhàn)。之前,他們管理一個(gè)應(yīng)用程序;現(xiàn)在他們不得不管理許多。每個(gè)應(yīng)用程序都需要自己的支持服務(wù),如數(shù)據(jù)庫(kù)、消息隊(duì)列等等。因此,利益相關(guān)者需要考慮不同的部署策略,在這些策略中,可以很好地部署整個(gè)應(yīng)用程序,同時(shí)保持其完整性并提供最佳性能。
部署模式
微服務(wù)架構(gòu)師提出了可以用來(lái)部署微服務(wù)的不同類型的模式。每種設(shè)計(jì)都為不同的功能和非功能需求提供了解決方案。
所以微服務(wù)可以用多種編程語(yǔ)言或框架編寫(xiě)。同樣,它們可以用同一種編程語(yǔ)言或框架的不同版本編寫(xiě)。每個(gè)微服務(wù)包括幾個(gè)不同的服務(wù)實(shí)例,如UI、DB和后端。微服務(wù)必須能夠獨(dú)立部署和擴(kuò)展。服務(wù)實(shí)例必須相互隔離。服務(wù)必須能夠快速構(gòu)建和部署自身。必須為該服務(wù)分配適當(dāng)?shù)挠?jì)算資源。部署環(huán)境必須可靠,服務(wù)必須受到監(jiān)控。
每臺(tái)主機(jī)多個(gè)服務(wù)實(shí)例
為了滿足本節(jié)開(kāi)始時(shí)提到的需求,我們可以考慮一個(gè)解決方案,通過(guò)它我們可以在一臺(tái)主機(jī)上部署多個(gè)服務(wù)的服務(wù)實(shí)例。主機(jī)可以是物理的或虛擬的。因此,我們?cè)谝慌_(tái)共享主機(jī)上運(yùn)行來(lái)自不同服務(wù)的許多服務(wù)實(shí)例。
我們可以用不同的方法來(lái)做這件事。我們可以將每個(gè)實(shí)例作為一個(gè)進(jìn)程啟動(dòng)。我們也可以啟動(dòng)多個(gè)實(shí)例作為同一個(gè)實(shí)例的一部分進(jìn)程,有點(diǎn)像網(wǎng)絡(luò)應(yīng)用。我們還可以使用腳本來(lái)自動(dòng)化一些配置的啟動(dòng)和關(guān)閉過(guò)程。配置將具有不同的與部署相關(guān)的信息,比如版本號(hào)。
通過(guò)這種方法,資源可以得到非常有效的利用。
每臺(tái)主機(jī)的服務(wù)實(shí)例
很多情況下,微服務(wù)需要自己的空間,需要明確分離的部署環(huán)境。在這種情況下,他們不能與其他服務(wù)或服務(wù)實(shí)例共享部署環(huán)境??赡軙?huì)有資源沖突或稀缺的機(jī)會(huì)。當(dāng)用同一種語(yǔ)言或框架編寫(xiě)的不同版本的服務(wù)不能放在一起時(shí),可能會(huì)出現(xiàn)問(wèn)題。
在這種情況下,服務(wù)實(shí)例可以部署在自己的主機(jī)上。主機(jī)可以是物理機(jī),也可以是虛擬機(jī)。
在這種情況下,不會(huì)與其他服務(wù)發(fā)生任何沖突。該服務(wù)保持完全隔離。虛擬機(jī)的所有資源都可供服務(wù)使用。它很容易被監(jiān)控。
這種部署模式的唯一問(wèn)題是消耗更多的資源。
每個(gè)虛擬機(jī)的服務(wù)實(shí)例
在許多情況下,微服務(wù)需要自己獨(dú)立的部署環(huán)境。微服務(wù)必須是健壯的,并且必須快速啟動(dòng)和停止。同樣,它也需要快速向上擴(kuò)展和向下擴(kuò)展。它不能與任何其他服務(wù)共享任何資源。它不能與其他服務(wù)發(fā)生沖突。它需要更多的資源,而資源必須適當(dāng)?shù)胤峙浣o服務(wù)。
在這種情況下,服務(wù)可以構(gòu)建為虛擬機(jī)映像并部署在虛擬機(jī)中。
擴(kuò)展可以快速完成,因?yàn)樾绿摂M機(jī)可以在幾秒鐘內(nèi)啟動(dòng)。所有虛擬機(jī)都有自己的計(jì)算資源,這些資源根據(jù)微服務(wù)的需求進(jìn)行適當(dāng)分配。不會(huì)與任何其他服務(wù)發(fā)生任何沖突。每個(gè)虛擬機(jī)都被適當(dāng)?shù)馗綦x,并且可以獲得負(fù)載平衡支持。
每個(gè)容器的服務(wù)實(shí)例
在某些情況下,微服務(wù)非常微小。它們的執(zhí)行消耗很少的資源。然而,他們需要被隔離。不得有任何資源共享。他們同樣無(wú)法承受共處一地的代價(jià),并且有可能與其他服務(wù)發(fā)生沖突。如果有新版本,需要快速部署。可能需要部署相同的服務(wù),但使用不同的發(fā)布版本。服務(wù)必須能夠快速擴(kuò)展。它還必須能夠在幾毫秒內(nèi)啟動(dòng)和關(guān)閉。
在這種情況下,服務(wù)可以構(gòu)建為容器映像,并作為容器進(jìn)行部署。
在這種情況下,服務(wù)將保持隔離。不會(huì)有任何沖突的機(jī)會(huì)??梢愿鶕?jù)計(jì)算出的服務(wù)需求來(lái)分配計(jì)算資源。這項(xiàng)服務(wù)可以迅速擴(kuò)展。容器也可以快速啟動(dòng)和關(guān)閉。
無(wú)服務(wù)器部署
在某些情況下,微服務(wù)可能不需要知道底層的部署基礎(chǔ)設(shè)施。在這些情況下,部署服務(wù)外包給第三方供應(yīng)商,他們通常是云服務(wù)提供商。企業(yè)對(duì)底層資源完全漠不關(guān)心;它只想在一個(gè)平臺(tái)上運(yùn)行微服務(wù)。它根據(jù)每個(gè)服務(wù)調(diào)用從平臺(tái)消耗的資源向服務(wù)提供商付費(fèi)。服務(wù)提供者為每個(gè)請(qǐng)求挑選代碼并執(zhí)行它。執(zhí)行可能發(fā)生在任何正在執(zhí)行的沙箱中,如容器、VM或任何東西。它只是對(duì)服務(wù)本身隱藏起來(lái)。
無(wú)服務(wù)器部署平臺(tái)的基礎(chǔ)設(shè)施非常靈活。該平臺(tái)擴(kuò)展服務(wù)以自動(dòng)吸收負(fù)載。消除了管理低級(jí)基礎(chǔ)設(shè)施所花費(fèi)的時(shí)間。由于微服務(wù)提供商只為每個(gè)呼叫消耗的資源付費(fèi),因此費(fèi)用也降低了。
服務(wù)部署平臺(tái)
微服務(wù)也可以部署在應(yīng)用部署平臺(tái)上。通過(guò)提供一些高級(jí)服務(wù),這樣的平臺(tái)清楚地抽象出了部署。服務(wù)抽象可以處理非功能性和功能性需求,如服務(wù)實(shí)例的可用性、負(fù)載平衡、監(jiān)控和可觀察性。應(yīng)用部署平臺(tái)是完全自動(dòng)化的。它使得應(yīng)用程序的部署非常可靠、快速和高效。
結(jié)論
微服務(wù)部署選項(xiàng)和產(chǎn)品不斷發(fā)展??赡軙?huì)有更多的部署模式效仿。上面提到的許多模式非常流行,并且正在被大多數(shù)微服務(wù)提供商使用。他們非常成功和可靠。但是隨著范式的變化,管理員正在考慮創(chuàng)新的解決方案。
- 上一篇
人類和機(jī)器之間的共識(shí)
我們能在人類和機(jī)器之間達(dá)成共識(shí)嗎?取決于我們?nèi)绾卫斫?,?jiǎn)短的答案是肯定的,也是否定的。這個(gè)問(wèn)題的核心在于人類與技術(shù)的復(fù)雜關(guān)系,因此仔細(xì)的研究可能會(huì)讓我們了解自己。共識(shí)的本質(zhì)從根本上與我們是誰(shuí)以及我們?nèi)绾卧谏钪袆?chuàng)造意義有關(guān)。
- 下一篇
為什么公用事業(yè)公司需要重新思考他們的數(shù)據(jù)策略
在為智能電網(wǎng)和智能城市供電之前,公用事業(yè)需要成為智能企業(yè)。這里有三個(gè)他們必須克服的障礙。
相關(guān)資訊
- 邊緣計(jì)算將解決物聯(lián)網(wǎng)的最大問(wèn)題
- 物聯(lián)網(wǎng)系統(tǒng)和設(shè)備:您應(yīng)該了解的關(guān)
- 我們能從超級(jí)計(jì)算機(jī)革命中學(xué)到什
- 揮別資本,元宇宙需打開(kāi)商業(yè)新通路
- 2024年需要關(guān)注的五大數(shù)據(jù)架構(gòu)趨
- 智能家居容易出現(xiàn)的安全問(wèn)題有哪
- 一文讀懂?dāng)?shù)據(jù)運(yùn)營(yíng)的指標(biāo)體系
- 大數(shù)據(jù):成功企業(yè)背后的燃料
- 基于垂直農(nóng)業(yè)的物聯(lián)網(wǎng)解決方案中
- 模型漂移:解釋AI的致命弱點(diǎn)