精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

不同類型的微服務?

責任編輯:editor006

作者:張衛濱

2016-04-26 16:22:50

摘自:INFOQ

最近,有許多微服務領域的討論,但是這些討論大多都是關于如何從頭開始構建微服務應用的,Mark Little認為,微服務的初衷在于改造已有的應用,提高其敏捷性,他討論了在這種場景下,實現微服務的最佳實踐。

最近,有許多微服務領域的討論,但是這些討論大多都是關于如何從頭開始構建微服務應用的,Mark Little認為,微服務的初衷在于改造已有的應用,提高其敏捷性,他討論了在這種場景下,實現微服務的最佳實踐。

Mark Little博士是Red Hat中間件部門的工程副總裁,他領導著JBoss的技術方向和研究/開發工作。在此之前,他曾經擔任過SOA技術開發的主管,并負責標準的制訂。

在Mark Little最新的一篇博客文章中,他回顧了自己從事微服務相關的一些經歷和對微服務的認識,他依然愿意在這個領域不斷思考,并與其團隊成員進行交流,從而推動行業思想的發展。

在這個過程中,有些困擾他的問題變得逐漸清晰。長期以來,人們思考的可能是微服務與SOA、分布式系統以及DevOps的關系,而且也有很多的項目和產品來幫助開發基于(微)服務的架構。但是,除Red Hat以外,大多數關于微服務的文章都是從頭開始構建的。這其實也反映了大多數開發工作的關注點:從頭(Greenfield)開發,重新對系統進行架構,然后完全重建。

不過,微服務最初并不是這樣的,如果讀一下最初的文獻的話,尤其是來自Netflix的文章,就會發現微服務的理念(或者Adrian Cockcroft最初所說的“Adrian Cockcroft”)是與已有系統息息相關的,它致力于將它們重構為組件(服務),這些組件能夠獨立地部署、版本化和發布。這里的理念在于為已有的系統(brownfield)構建微服務。Mark Little雖然一開始就知道這些背景,但是一直以來他始終認為這種方式與從頭開始構建所使用的過程、工具以及方式都是完全相同的。直到最近,他才意識到中間的差別。

有些團隊會基于已有的系統進行改造,實現微服務,這是很有價值的。大多數人所面臨的都是已有的應用,就像Netflix那樣,因此這種方式更具有實用性。它不需要我們好高騖遠,每次只需進步一點點即可,這方面是作者以前所沒有太多關注的。為了支持這些微服務,也需要對基礎設施進行一些很重要的簡化。

在一個樣例中,他們所面臨的是單體應用中的已有組件。因為團隊是基于Java EE的,所以具體的表現形式就是多個WAR(Web Archive)或JAR(Java Archive),這些文件會放到一個EAR(Enterprise Archive)中,但是這個例子本身與編程語言和框架是無關的。在這個例子中,目標是將單個組件拆分為微服務,這樣當某個WAR中的內容發生變化的時候就不需重新創建整個EAR包了。

如果從完全重建的角度來看,這其實沒有實質性的不同。不過,在分布式場景方面,我們可以采取一些變化,至少可以進行簡化,這里不需要命名服務(或類似的機制)來定位各種各樣的服務所在的位置,同時也不需要SLA。實際上,因為我們知道服務的API,并且這里的目標在于提升開發過程的敏捷性,所以,可以將API硬編碼到“客戶端”中(應用的其他部分)。從事后來看,很多地方都是可以硬編碼的。可以借助地址綁定或底層的網絡,如REST/HTTP使用URL來表示服務的名稱/地址,當然,這樣的話需要DNS實現綁定。

到目前為止,這是可行的,到一定程度之后,就會引入傳統分布式系統的復雜性了,不過,我們還沒到那一步。團隊的關注點在于:“作為開發人員,我該從哪里開始擁抱微服務呢,在不開發、不安裝過多基礎設施的前提下,該如何取得成功呢?”。Mark Little認為這種方式的簡化/硬編碼/依賴基礎設施能夠在一定程度上提供幫助。

當提到微服務時,我們經常讀到的內容就是中心化的日志、事件驅動方式、協作(orchestration)以及部署技術,但是,當面臨預先定義的組件/服務時,如果我們想借助微服務來提升敏捷性的話,這些技術其實并沒有那么重要。借助硬編碼以及一些自動化的方式,完全就能實現。

這是一種新型的微服務嗎?事實上并非如此,這是一種不斷演化的方式,其實與之前的CORBA和Java EE應用并無分別,我們會通過硬編碼、接口的方式進行手動編碼,隨著分布式應用復雜性的不斷增長,開發人員需要基礎設施和工具的更多幫助。所以,這種方式毫無疑問也是微服務,因為它的目標依然是讓團隊更加靈活、具有獨立的生命周期,只不過它更加聚焦于某一點,或者說更加實用。

在將已有的系統往微服務架構改造的過程中,Mark Little所述的這些觀點,應該會對我們提供一些借鑒和幫助。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 聊城市| 弥勒县| 隆尧县| 肇东市| 拜城县| 西丰县| 马龙县| 临潭县| 凉山| 当雄县| 富平县| 偃师市| 康乐县| 乐陵市| 渭南市| 蛟河市| 瑞金市| 南澳县| 康定县| 贡嘎县| 宁强县| 九寨沟县| 吉林省| 永吉县| 保定市| 甘谷县| 广元市| 微山县| 阜平县| 万源市| 平阳县| 榆中县| 舟山市| 正安县| 准格尔旗| 社旗县| 乡城县| 金川县| 安乡县| 商水县| 开阳县|