中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

微服務(wù)的成功應(yīng)用

2022-10-12    分類: 網(wǎng)站建設(shè)

組織通過微服務(wù)基本準則、領(lǐng)域驅(qū)動的設(shè)計概念和編碼優(yōu)秀實踐成功地使用微服務(wù),可以充分利用Kubernetes/容器原生的優(yōu)勢。

行業(yè)專家參加了DevOps Institue日前在企業(yè)Kubernetes上進行的SkiLUp演講。在一個名為“通過持續(xù)交付導(dǎo)航Kubernetes之旅”的會議中,行業(yè)討論了企業(yè)Kubernetes的狀態(tài)以及持續(xù)交付對于那些使用容器技術(shù)的組織的影響。其演講的中心主題是Kubernetes如何為交付團隊引入新的范例。

微服務(wù)的成功應(yīng)用

對于使用微服務(wù)的組織來說,其成功應(yīng)用可能是多種多樣的,從云計算中獲益可能是一個代價高昂的過程。以下將分享如何通過微服務(wù)原理、領(lǐng)域驅(qū)動的設(shè)計概念以及有關(guān)編碼優(yōu)秀實踐的注意事項來成功實現(xiàn)微服務(wù)。云原生應(yīng)用程序、Kubernetes實例和微服務(wù)都代表了一個由層組成的系統(tǒng)。了解這些層使人們能夠獲得釋放云計算和容器原生優(yōu)勢所需的見解。

系統(tǒng)設(shè)計的本質(zhì)

系統(tǒng)設(shè)計是一個權(quán)衡的游戲。當脫離組織環(huán)境時,許多架構(gòu)決策在本質(zhì)上并不是對與錯。組織做出決策的優(yōu)秀建議是盡可能擴大決策范圍和框架,以在初始時理解決策。其基本準則始終是將這些決策與組織的目標聯(lián)系起來。在組織環(huán)境中,基本準則、實踐和模式需要與組織的目標保持一致?;緶蕜t為實現(xiàn)目標確定方向,而實踐和模式代表團隊為實現(xiàn)這些目標而采取的實際步驟。

例如,很多組織的目標可能是成為面向全球市場的事實上的軟件解決方案。其基本原則之一就是實行持續(xù)交付,以確保高質(zhì)量的生產(chǎn)部署并很大程度地減少可能造成高昂成本的事故。實踐是針對團隊的,并且是特定的。為了支持組織的工程業(yè)務(wù)部門遵循的原則,可以讓SRE團隊針對事件管理進行實踐,其中包括使用持續(xù)交付平臺來跟蹤或?qū)徲嬍〉牟渴稹?梢宰岄_發(fā)人員使用持續(xù)交付解決方案進行頻繁的發(fā)布或自助部署。組織的開發(fā)團隊的另一個實踐是測試所有代碼。

雖然不可能知道每一個決策在未來會對整個系統(tǒng)產(chǎn)生怎樣的影響,但組織能做的最好的事情就是確定目標,以及基本原則和實踐如何幫助其實現(xiàn)這些目標。

微服務(wù)

微服務(wù)是一種小型的、自主的、協(xié)同工作的服務(wù)。松散耦合和高內(nèi)聚性是指微服務(wù)的兩個概念。內(nèi)聚性是將相關(guān)代碼分組在一起的方式,而耦合性是指不同的服務(wù)如何相互依賴。軟件工程大師RobertC.Martin對“單一責(zé)任原則”的定義是微服務(wù)的核心,它的定義是“將因相同原因而發(fā)生變化的那些事物聚集在一起,并將因不同原因而發(fā)生變化的那些事物分開。”

這兩個概念推動了微服務(wù)的七個原則,允許團隊獨立地工作、部署、失敗、交付和擴展。

面向服務(wù)的架構(gòu)(SOA)旨在應(yīng)對大型單片應(yīng)用程序、代碼的可重用性和維護方面的挑戰(zhàn)。微服務(wù)是通過獨立服務(wù)實現(xiàn)面向服務(wù)的架構(gòu)(SOA)的一種方法,其中每個服務(wù)都充當組織業(yè)務(wù)領(lǐng)域的邊界。在微服務(wù)架構(gòu)中,每個更改都可以彼此獨立地實現(xiàn)和部署,而無需用戶更改。

微服務(wù)的原則

使用微服務(wù)時,常見的故障點是過早分解。在通常情況下,團隊在與應(yīng)用程序的用例相關(guān)的更改中會付出高昂的成本,或者初始服務(wù)邊界是錯誤的。將應(yīng)用程序分解為微服務(wù)通常是開始微服務(wù)之旅的最簡單方法。

域驅(qū)動設(shè)計的原則

域驅(qū)動設(shè)計(DDD)是如何通過代碼對現(xiàn)實世界進行建模。因此,域驅(qū)動設(shè)計(DDD)介于出色的代碼和微服務(wù)成功之間。盡管有許多文獻討論了如何從戰(zhàn)略和戰(zhàn)術(shù)上實施域驅(qū)動設(shè)計(DDD),但在沒有實踐和指導(dǎo)的情況下,這仍然是一個相當復(fù)雜的話題。以下是利用域驅(qū)動設(shè)計(DDD)概念的入門方法。

首先必須理解,組織使用的任何代碼都始于存在于域中的問題以及存在業(yè)務(wù)愿望的問題。因此,領(lǐng)域驅(qū)動設(shè)計的旅程始于領(lǐng)域?qū)<液烷_發(fā)人員。通常,組織可能有多位領(lǐng)域?qū)<乙幻_發(fā)人員或各種開發(fā)人員,但只有一名領(lǐng)域?qū)<?。無論組織結(jié)構(gòu)如何,團隊的目標都是著眼于全局并創(chuàng)建所謂的場景地圖。

構(gòu)建場景映射時,組織可以通過了解問題空間、發(fā)現(xiàn)通用語言并為系統(tǒng)創(chuàng)建表示模型來提取領(lǐng)域知識。系統(tǒng)由代表問題空間的域和子域組成。這些域在場景映射中稱為場景,并且可以描述組織內(nèi)的不同系統(tǒng)。例如,組織可能需要表示一個銷售場景和客戶支持場景,以對處理食品包裝廠的銷售和客戶支持的新軟件應(yīng)用程序進行建模。

示例場景映射

這些域為組織提供了有關(guān)如何創(chuàng)建有限場景的好主意。有界場景表示屬于系統(tǒng)的服務(wù),它封裝并定義了該模型的特定職責(zé)。創(chuàng)建有界場景就是要建立一個邊界,在這個邊界中,域語言在這個空間中不會造成混淆的問題。

定義有限的場景、通用語言和場景映射可以使組織在使用微服務(wù)時專注于全局。域驅(qū)動設(shè)計指導(dǎo)開發(fā)人員討論系統(tǒng)設(shè)計時,因為組織經(jīng)常在尋找通過代碼表示真實世界的方法。域驅(qū)動設(shè)計(DDD)對于不熟悉特定領(lǐng)域的組織或開發(fā)人員,或者對于希望將其應(yīng)用程序分解為微服務(wù)的組織而言,域驅(qū)動設(shè)計(DDD)尤其有用。

清潔代碼

微服務(wù)成功的最后一件事是如何維護和使用組織的代碼。有許多建議可以鼓勵持久和可理解的企業(yè)代碼庫。它們中的一些引入了額外的權(quán)衡,但通常的經(jīng)驗法則是避免對不斷增長的代碼庫感到自滿,并尋找對組織有用的做法。

提供共享庫??珙I(lǐng)域、行業(yè)、團隊和各種代碼庫重復(fù)的方法是共享庫的理想選擇。第三方庫或自定義庫是使代碼庫得到良好管理和測試的一種很好方法,尤其是當組織繼續(xù)在域內(nèi)開發(fā)更多功能和服務(wù)時。建議不要為頻繁更改的代碼引入自定義庫。定制庫添加了應(yīng)用程序依賴項,其中對庫的更新迫使使用者重新部署。受信任或成熟的第三方庫通常是避免與自定義庫相關(guān)的某些維護和不穩(wěn)定的很好資源。

強制執(zhí)行模塊化分離。正如人們經(jīng)常聽到關(guān)于模塊化隔離的建議一樣,由于變更的性質(zhì),它在實踐中經(jīng)常失敗。作為新功能,開發(fā)人員和流程已引入代碼庫,人們構(gòu)造提供這些功能的模塊和文件的方式也發(fā)生了變化。保持每個適當大小的模塊和文件也很重要。作為準則,以團隊為單位設(shè)置一些實踐,以指導(dǎo)組織如何在代碼庫中組織業(yè)務(wù)邏輯。一些團隊具有三個組織層,包括表示層、邏輯層和數(shù)據(jù)層。該策略確保業(yè)務(wù)邏輯不會在應(yīng)用程序邏輯內(nèi)丟失。強制執(zhí)行代碼的模塊化分離也可以幫助團隊成功實現(xiàn)域驅(qū)動設(shè)計(DDD)。

保持較小的代碼庫。以前的建議都會導(dǎo)致維護較小的代碼庫。但是,圍繞使代碼庫保持精簡和小型化經(jīng)常會出現(xiàn)一個常見的問題,即小型化小到什么程度?在許多方面,小型代碼庫成為一種反模式,因為團隊無法理解他們的服務(wù)在整個系統(tǒng)的場景中提供了業(yè)務(wù)責(zé)任。同樣,對于大型代碼庫來說,團隊將難以分散決策,了解其代碼庫,并應(yīng)對其他形式的更改。這兩個挑戰(zhàn)的關(guān)鍵指標是問題的增加。

維護干凈的代碼庫是域驅(qū)動設(shè)計(DDD)、微服務(wù)以及編寫Kubernetes或云原生應(yīng)用程序所不可或缺的。正如Kubernetes、微服務(wù)和域驅(qū)動設(shè)計(DDD)影響組織設(shè)計代碼的方式一樣。希望這些解釋能夠說明其應(yīng)用程序是如何由相互重疊和互補的層組成的,從而形成一個有效且成功的系統(tǒng)。

結(jié)語

許多投資Kubernetes計劃的組織都希望通過微服務(wù)獲得成功。本文展示了如何通過微服務(wù)獲得成功。擁有如此多的工具、流程和原則來管理流程可能會很困難,尤其是當最終客戶無法獲得頻繁的軟件交付時。持續(xù)交付可幫助組織交付價值、管理微服務(wù)部署、定義發(fā)布和回滾策略,并降低微服務(wù)的總體成本。

網(wǎng)頁名稱:微服務(wù)的成功應(yīng)用
本文鏈接:http://m.rwnh.cn/news1/204751.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計定制網(wǎng)站、域名注冊面包屑導(dǎo)航、微信小程序移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
云梦县| 大足县| 多伦县| 通州市| 宁波市| 长垣县| 玉环县| 铜鼓县| 桂平市| 牙克石市| 筠连县| 女性| 阿图什市| 西华县| 马鞍山市| 金川县| 浙江省| 隆安县| 宁津县| 盱眙县| 大荔县| 包头市| 丹棱县| 托克托县| 灵丘县| 四川省| 宝应县| 竹山县| 泸西县| 浮梁县| 桐庐县| 元谋县| 中牟县| 温泉县| 江北区| 民乐县| 同德县| 图木舒克市| 宁南县| 微山县| 巩留县|