摘要:微服務已經開始形成一套正式標準,也帶來了一票提供相應服務的供應商。結論源于一組概念,它們與微服務架構具有相同的核心概念。
服務導向架構(簡稱SOA,service-oriented architecture)已經死亡?你可能會這么想。
但其實不然。的確,隨著新技術的出現,SOA本身的價值可能已經大不如前,但是SOA的遺產仍在推動微服務市場發展。
將SOA原則納入微服務的設計和構建是確保您的產品或服務長期處于有利地位的最佳方式。從此意義上講,理解SOA,對于在微服務世界中取得成功至關重要。
在本文中,我將解釋設計微服務應用程序時應采用哪些SOA原則。
介紹如今,在移動終端開發環境中,代碼為王,構建具有RESTful界面的服務變得前所未有的容易,將其連接到數據存儲就可以了。如果你想要更進一步,就把幾個公共軟件服務(免費或付費)整合在一起,這樣你就可以擁有一個滿足需求的持續交付流水線。歡迎來到現代Web和完全buzzworthy兼容的應用程序開發過程。
在許多方面,微服務是SOA的直接產物,有點像服務世界的朋克搖滾。沒有嚴格的規則,只是一些基本原則讓所有人保持大體想法一致。就像朋克搖滾,微服務最初信奉的是一種按自己的節奏來的行業倫理。此后微服務一直在不斷發展,一些架構方式開始讓微服務轉變為主流。不光是使用微服務的dot com或Web公司——所有的公司都對此感興趣。
定義為體現本討論的目的,以下是我將要使用的定義。
微服務:特定業務功能的實現,使用隊列或RESTful(JSON)接口作為多帶帶的可部署工件,可以用任何語言編寫,并利用持續交付流水線。
SOA:基于組件的架構,其目標是在組織內部跨技術組合促進重用。這些組件需要松耦合,可以是集中管理的服務或庫,并要求組織使用單個技術棧來最大限度地實現可重用性。
基于微服務的開發的優點正如您所知,微服務具有SOA所缺乏的幾個很好的特性:
允許規模較小、自給自足的團隊擁有支持特定業務功能的產品/服務,這大大提高了他們渴望的業務敏捷性和IT響應能力。
自動構建和測試,雖然可能不及SOA,現在是關鍵的籌碼。
允許團隊使用他們想要的工具,主要圍繞使用哪種語言和IDE。
以敏捷為基礎的開發與直接訪問業務。微服務和移動開發團隊已經成功地向企業展示了技術人員如何適應并接受不斷反饋的業務。以往,瀑布式軟件交付方法受制于不必要的開銷和交付日期延長的影響,隨著業務的變化,開發團隊一開始創建的產品,在交付時常常無法滿足業務需求。甚至像Rational Unified Process(RUP)這樣的迭代開發方法在業務、產品開發和開發人員進行實際工作之間都有抽象層。
對服務的最小粒度的普遍了解。關于“添加客戶端業務功能還是客戶端管理業務功能”的爭論一直存在,這并不完美,但至少兩者都可以被實際運營業務的業務方所了解。你可能不愿相信,但技術并不是所有業務(對于世界上大多數企業而言)。回溯到SOA還是行業霸主時期,一些服務只執行一個數據庫操作,其他服務則在系統中添加客戶端,當IT缺乏一致的標準,就會導致業務的混亂。
SOA如何助力?看完這些定義后,你可能會想:“微服務聽起來好得多”。的確,這正是未來發生演變的原因,只是它拋棄了許多在SOA世界中獲得的經驗教訓。它放棄了SOA嘗試實現的所有美好的事物,因為這一領域的IT供應商們為了推出更多的產品,而改變了一切。
企業集成模式(定義企業如何采用新技術或概念)是微服務利用SOA世界所做的工作的關鍵所在。每個參與整合空間的人都可以從這些模式中獲益,然而它們只是概念,微服務是實現這些概念的一種很好的技術方法。
下面,我列出了微服務生態系統中應用SOA原理獲得巨大成功的另外兩個領域。
API網關(née ESB)微服務鼓勵點對點連接,每個客戶端都可以按自己的方式處理日期和其他細微之處。由于大多數公司提供的微服務的數量急劇增加,這種方式不可持續。
因此,在SOA環境中,企業服務總線(ESB)旨在為不同應用程序提供通信方式。SOA原本打算將ESB用于服務組件之間進行傳輸—而不是整個企業的中心。廠商推動,大公司購買,人們對這種模式的評價十分糟糕。
ESB中成功的產品已經轉變為今天的API網關供應商,便于單一組織集中管理它們所呈現的端點,并為那些多年來尚未觸及但對業務至關重要的舊式服務 (通常是soa/soap) 提供轉換服務。
首要標準SOA具有WS- *標準。此標準雖然嚴厲,但在很大程度上保證了互用性。這些標準,特別是像WS-Security和WS-Federation這類更常見的標準,允許企業調用在其合作伙伴系統中使用的服務——雖然它們只是一個清單,任何人都能理解。
微服務已經開始形成一套正式標準,也帶來了一票提供相應服務的供應商。OAuth和OpenID認證框架就是兩個很好的例子。隨著微服務的成熟,在內部構筑一切是有趣、充實、且對自身有益的,但最終令人沮喪的是,隨著新特性的引入,它會產生大量的技術債務,代碼不斷地需要被修改。
標準正迅速整合的另一面是API設計和描述。在SOA世界中,有一種方法。對人而言它既沒有美感,又幾乎不可讀,但是Web服務定義語言(WSDL)是一種通用的標準化的編目網絡服務的格式。
截至2017年4月,所有主要的參與者(包括谷歌、IBM、Microsoft、MuleSoft和Salesforce.com)都參與了提供構建RESTful api的工具,這些都是OpenAPI倡議的成員。曾經那個有多個標準(JSON API、WASL、RAML和Swagger)的破碎市場,現在變成了可以用單一方式描述所有內容。
結論SOA源于一組概念,它們與微服務架構具有相同的核心概念。SOA落后是因為是驅動了太多管理,而“僅僅讓它工作”是不夠的。
為了使微服務繼續生存下去,利用這些服務的團隊不僅需要汲取以往的寶貴經驗, 并使用敏捷開發的方法重新引入它們,此外還需采取適當的反治措施,防止SOA管理機制的重演。接下來還需把 ITIL安全地置于能夠令其茁壯成長的運營團隊中。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26912.html
摘要:微服務架構概述應用架構的發展應用是可獨立運行的程序代碼,提供相對完善的業務功能。阿里開源的是的典型實現。它目前由官方開發維護,基于開發,提供一套完整的微服務解決方案。 微服務與Spring Cloud 隨著互聯網的快速發展, 云計算近十年也得到蓬勃發展, 企業的IT環境和IT架構也逐漸在發生變革,從過去的單體應用架構發展為至今廣泛流行的微服務架構。 微服務是一種架構風格, 能給軟件應用...
摘要:微服務集成服務間通信微服務架構下,應用的服務直接相互獨立。微服務架構傾向于降低中心消息總線類似于的依賴,將業務邏輯分布在每個具體的服務終端。 引言:微服務是當前軟件架構領域非常熱門的詞匯,能找到很多關于微服務的定義、準則,以及如何從微服務中獲益的文章,在企業的實踐中去應用微服務的資源卻很少。本篇文章中,會介紹微服務架構(Microservices Architecture)的基礎概念,...
摘要:微服務集成服務間通信微服務架構下,應用的服務直接相互獨立。微服務架構傾向于降低中心消息總線類似于的依賴,將業務邏輯分布在每個具體的服務終端。 引言:微服務是當前軟件架構領域非常熱門的詞匯,能找到很多關于微服務的定義、準則,以及如何從微服務中獲益的文章,在企業的實踐中去應用微服務的資源卻很少。本篇文章中,會介紹微服務架構(Microservices Architecture)的基礎概念,...
摘要:如何快速搭建一個微服務架構上圖異步通信方式通常異步的生產者消費者模式,通過等異步消息通訊協議規范。數據的去中心化,進一步降低了微服務之間的耦合度,不同服務可以采用不同的數據庫技術等。 什么是微服務? 微服務(Microservices Architecture)是一種架構風格,一個大型復雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服...
閱讀 3096·2021-02-22 17:12
閱讀 719·2019-08-30 15:55
閱讀 3079·2019-08-30 15:54
閱讀 1384·2019-08-29 16:56
閱讀 1862·2019-08-29 15:13
閱讀 1716·2019-08-29 13:19
閱讀 601·2019-08-26 13:40
閱讀 2822·2019-08-26 10:26