91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過微服務原理、領域驅動設計概念等來成功實現(xiàn)微服務

如意 ? 來源:360機房 ? 作者:Harris ? 2020-08-14 10:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

系統(tǒng)設計的本質

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

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

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

微服務

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

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

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

微服務的原則

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

域驅動設計的原則

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

首先必須理解,組織使用的任何代碼都始于存在于域中的問題以及存在業(yè)務愿望的問題。因此,領域驅動設計的旅程始于領域專家和開發(fā)人員。通常,組織可能有多位領域專家一名開發(fā)人員或各種開發(fā)人員,但只有一名領域專家。無論組織結構如何,團隊的目標都是著眼于全局并創(chuàng)建所謂的場景地圖。

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

示例場景映射

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

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

清潔代碼

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

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

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

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

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

結語

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 云計算
    +關注

    關注

    39

    文章

    8023

    瀏覽量

    144480
  • SOA
    SOA
    +關注

    關注

    1

    文章

    325

    瀏覽量

    29241
  • 微服務
    +關注

    關注

    0

    文章

    150

    瀏覽量

    8106
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    光伏四可裝置軟件系統(tǒng)架構:微服務化設計與容器化部署方案

    ,某一模塊升級需整體停機,無法適配光伏場景對實時性與連續(xù)性的要求;物理機部署模式則導致環(huán)境一致性差,跨場景遷移成本高。為此,基于微服務化設計與容器化部署的軟件架構應運而生,通過“功能解耦、彈性部署、高效
    的頭像 發(fā)表于 03-03 15:47 ?302次閱讀

    基于OpenTelemetry的全鏈路追蹤微服務可觀測性實踐

    微服務拆分到第三年,我們的服務數(shù)量從最初的5個膨脹到了47個。一個用戶下單請求要經(jīng)過API Gateway -> 用戶服務 -> 商品服務 -> 庫存
    的頭像 發(fā)表于 02-26 15:43 ?195次閱讀

    Istio服務網(wǎng)格的核心原理與部署實戰(zhàn)

    微服務拆分之后,服務間調用關系變得復雜。一個請求從網(wǎng)關進來,經(jīng)過認證服務、用戶服務、訂單服務、庫存服務
    的頭像 發(fā)表于 02-26 09:49 ?196次閱讀

    Istio服務網(wǎng)格生產(chǎn)環(huán)境性能調優(yōu)的最佳實踐

    隨著微服務架構的普及,服務間通信的復雜度呈指數(shù)級增長。傳統(tǒng)的應用層負載均衡和服務發(fā)現(xiàn)方案已經(jīng)無法滿足現(xiàn)代云原生應用的需求。Istio作為目前最成熟的服務網(wǎng)格解決方案,
    的頭像 發(fā)表于 01-20 15:40 ?218次閱讀

    Java開發(fā)者必看:Tomcat、Jetty、WildFly 三大主流應用服務器選型指南(附效率工具Perforce JRebel推薦)

    Java應用服務器怎么選?Tomcat輕量高效,Jetty靈活嵌入,WildFly企業(yè)級全能。無論是微服務還是復雜系統(tǒng),選對服務器事半功倍。文末還有開發(fā)神器推薦,助你告別漫長部署,即刻reload代碼!
    的頭像 發(fā)表于 12-26 11:16 ?381次閱讀
    Java開發(fā)者必看:Tomcat、Jetty、WildFly 三大主流應用<b class='flag-5'>服務</b>器選型指南(附效率工具Perforce JRebel推薦)

    華納云VPS容器服務網(wǎng)格流量管理:實現(xiàn)微服務高效路由

    在云計算和微服務架構日益普及的今天,華納云香港VPS憑借其優(yōu)越的地緣優(yōu)勢和網(wǎng)絡自由,成為眾多企業(yè)部署容器化應用的熱門選擇。復雜的微服務架構帶來了流量管理的巨大挑戰(zhàn)。本文將深入探討如何利用容器服務
    的頭像 發(fā)表于 10-16 17:09 ?544次閱讀

    基于RFID與微服務架構的智能倉庫管理系統(tǒng):實現(xiàn)倉儲數(shù)據(jù)的全鏈路精準采集與管控

    針對傳統(tǒng)倉儲管理中普遍存在的賬實不符、流程效率低下及信息孤島問題,本文介紹一套基于RFID射頻識別技術與微服務軟件架構的智能倉庫管理系統(tǒng)。系統(tǒng)通過“一物一碼”的電子身份標識,實現(xiàn)了對
    的頭像 發(fā)表于 10-13 11:18 ?782次閱讀
    基于RFID與<b class='flag-5'>微服務</b>架構的智能倉庫管理系統(tǒng):<b class='flag-5'>實現(xiàn)</b>倉儲數(shù)據(jù)的全鏈路精準采集與管控

    全球應用加速服務如何實現(xiàn)?網(wǎng)絡服務推薦排行榜

    前言在數(shù)字化轉型浪潮中,全球應用加速服務已成為企業(yè)提升用戶體驗、拓展國際市場的重要基礎設施。通過內容分發(fā)網(wǎng)絡(CDN)、邊緣計算和云網(wǎng)融合技術,這些服務將內容緩存至離用戶最近的節(jié)點,大幅降低延遲
    的頭像 發(fā)表于 09-10 09:48 ?1871次閱讀
    全球應用加速<b class='flag-5'>服務</b>如何<b class='flag-5'>實現(xiàn)</b>?網(wǎng)絡<b class='flag-5'>服務</b>推薦排行榜

    如何基于Nginx構建微服務網(wǎng)關

    今天,我將分享我們團隊如何基于Nginx構建了一個日均處理10億+請求的微服務網(wǎng)關,以及踩過的那些坑。這套方案已經(jīng)穩(wěn)定運行2年+,經(jīng)歷過多次大促考驗。
    的頭像 發(fā)表于 09-02 16:29 ?832次閱讀

    Jtti海外VPS微服務架構下的日志采集與分析優(yōu)化方案

    隨著跨境業(yè)務和分布式應用的普及,越來越多的企業(yè)在海外VPS上構建微服務架構,以提升系統(tǒng)擴展性和靈活性。然而,微服務化帶來了一個新的挑戰(zhàn):日志數(shù)據(jù)分散在多個服務和節(jié)點中,若缺乏統(tǒng)一采集與分析機制,將
    的頭像 發(fā)表于 08-27 17:13 ?575次閱讀

    電商API的微服務架構優(yōu)化策略

    ? 隨著電子商務的快速發(fā)展,API(應用程序編程接口)已成為電商平臺的核心組件,負責連接用戶、商家和后臺系統(tǒng)。微服務架構通過將應用拆分為獨立、可擴展的服務單元,顯著提升了系統(tǒng)的靈活性和可維護性。然而
    的頭像 發(fā)表于 07-23 14:30 ?634次閱讀
    電商API的<b class='flag-5'>微服務</b>架構優(yōu)化策略

    蔡司“微服務”——全能在線售后管家,24小時守護您的設備!

    還在為設備故障煩惱? 急需技術支援卻找不到人? 想快速獲取用戶手冊或軟件升級? 現(xiàn)在 只需微信掃一掃設備上的藍色標簽二維碼 蔡司“微服務”一鍵觸達! 9大功能板塊 全方位解決您的售后需求 服務更高
    發(fā)表于 07-10 16:44 ?1574次閱讀
    蔡司“<b class='flag-5'>微服務</b>”——全能在線售后管家,24小時守護您的設備!

    企業(yè)使用NVIDIA NeMo微服務構建AI智能體平臺

    已發(fā)布的 NeMo 微服務可與合作伙伴平臺集成,作為創(chuàng)建 AI 智能體的構建模塊,使用商業(yè)智能與強大的邏輯推理模型 (包括 NVIDIA Llama Nemotron) 處理更多任務。
    的頭像 發(fā)表于 04-27 15:05 ?1301次閱讀

    Wi-Fi 定位服務

    Wi-Fi 是一種著名的無線網(wǎng)絡技術,用于設備的局域網(wǎng)和互聯(lián)網(wǎng)接入。Wi-Fi 通過 Wi-Fi 網(wǎng)絡為家庭、辦公室和學校環(huán)境提供便捷的無線互聯(lián)網(wǎng)接入服務。 Wi-Fi 定位是一種地理定位功能
    發(fā)表于 04-17 15:01

    NVIDIA NIM微服務現(xiàn)已推出

    生成式 AI 為 PC 和工作站帶來了全新功能,包括游戲助手、增強的內容創(chuàng)作和生產(chǎn)力工具
    的頭像 發(fā)表于 04-08 16:56 ?944次閱讀