中間件和微服務,Docker以及原生雲架構的關係
微服務和Docker的發展勢頭
微服務和容器的主要目標是縮短軟件開發時間,以及實現開發、部署以及運維的更大靈活性。為什麼它過去幾個月的發展勢頭這麼猛?因為幾乎所有科技巨頭企業如亞馬遜,穀歌,Facebook,Netflix都在這裏激烈競爭。
微服務就像是一個麵向服務的架構(SOA):這(zhe)是(shi)一(yi)種(zhong)架(jia)構(gou)和(he)供(gong)應(ying)商(shang)技(ji)術(shu)分(fen)別(bie)獨(du)立(li)的(de)設(she)計(ji)理(li)念(nian)。因(yin)此(ci),目(mu)前(qian)並(bing)沒(mei)有(you)明(ming)確(que)的(de)界(jie)定(ding)標(biao)準(zhun)或(huo)規(gui)範(fan)。你(ni)永(yong)遠(yuan)需(xu)要(yao)在(zai)和(he)其(qi)他(ta)人(ren)討(tao)論(lun)之(zhi)前(qian)定(ding)義(yi)你(ni)所(suo)理(li)解(jie)的(de)微(wei)服(fu)務(wu)術(shu)語(yu)。每(mei)個(ge)人(ren)都(dou)有(you)不(bu)同(tong)的(de)定(ding)義(yi)。在(zai)這(zhe)篇(pian)文(wen)章(zhang)中(zhong)微(wei)服(fu)務(wu)是(shi)被(bei)開(kai)發(fa),部(bu)署(shu)和(he)獨(du)立(li)縮(suo)放(fang)的(de)服(fu)務(wu)。它(ta)們(men)可(ke)以(yi)不(bu)針(zhen)對(dui)任(ren)何(he)技(ji)術(shu)來(lai)提(ti)供(gong)業(ye)務(wu)或(huo)整(zheng)合(he)邏(luo)輯(ji)。有(you)些(xie)供(gong)應(ying)商(shang)提(ti)供(gong)建(jian)立(li)微(wei)服(fu)務(wu)的(de)特(te)殊(shu)支(zhi)持(chi)(我們將在後麵的文章中看到的),但基本上不涉及任何特定的技術支持。
關於微服務架構的討論最早是一篇由Martin Fowler在2014寫的著名文章開始的,該文章的廣泛應用起始於NetFlix的一係列豐富的開源微服務應用框架。稍後我們會回來介紹更多細節,本文章的很多內容都是受到了Netflix傑出和詳細的技術博客帖子的啟發。
容器依賴其上運行的操作係統。容器的實現是基於Linux內核的資源隔離功能,如內核namespaces(隔離的應用程序運行環境,包括進程樹,網絡,用戶ID,以及安裝的文件係統),以及cgroup(提供資源限製,包括CPU,內存, I / O和網絡),和一個有聯合能力的文件係統如AUFS和其他。這允許獨立容器在單個Linux實例中運行,避免了初始化以及維持虛擬機的開銷。
相xiang比bi於yu虛xu擬ni機ji,容rong器qi的de主zhu要yao特te點dian是shi標biao準zhun化hua包bao裝zhuang,可ke移yi植zhi性xing,基ji於yu按an需xu創chuang建jian的de目mu的de從cong而er達da到dao較jiao低di的de啟qi動dong和he占zhan用yong時shi間jian,可ke重zhong複fu性xing,更geng好hao的de資zi源yuan利li用yong率lv,更geng好hao地di融rong入ru發fa展zhan中zhong的de生sheng態tai係xi統tong整zheng體ti(如持續集成/持續交付)。容rong器qi化hua的de應ying用yong程cheng序xu可ke以yi在zai任ren何he環huan境jing隨sui意yi創chuang建jian和he運yun行xing,無wu論lun是shi你ni的de筆bi記ji本ben電dian腦nao,測ce試shi係xi統tong上shang,預yu生sheng產chan和he生sheng產chan係xi統tong。而er這zhe一yi切qie完wan全quan不bu需xu要yao改gai變bian容rong器qi以yi及ji容rong器qi內nei的de應ying用yong程cheng序xu的de任ren何he內nei容rong。
在微服務對立麵,也有幾個容器軟件的特殊實現方式。但是大多數的發展勢頭都已經被Docker拋在了後麵。Docker的生態係統在日益增長。這必將在未來幾年更加鞏固,同時它也將變得比今天更加成熟。其他關於Docker技術的例子還有如, CoreOS’ rkt (Rocket) 及 Cloud Foundry’s Garden / Warden。請注意,所有這些容器的概念並不是什麼新鮮事,早在UNIX係統中就已經存在多年,比如Solaris Zones。
還有一些其他的商業案例如VMware Photon Platform / vSphere Integrated Containers 或者Microsoft’s Windows Server containers / Hyper-V containers or VMware Thinapp。
這裏我們有一個非常好的關於Docker以及容器的概括介紹:Docker, the Future of DevOps,另外”The Open Container Initiative (OCI)”則是在2015年中期建立的一個全球性的,廠商無關的標準。許多軟件供應商都是該委員會成員,包括Amazon, Intel, Docker, Facebook, IBM, Microsoft, Oracle, Pivotal, 和 VMware,以上隻是眾多官方支持者的一部分。
一個原生雲架構
微wei服fu務wu和he容rong器qi其qi獨du立li的de服fu務wu以yi及ji靈ling活huo的de部bu署shu僅jin僅jin是shi基ji礎chu需xu求qiu。下xia麵mian的de章zhang節jie會hui討tao論lun更geng多duo針zhen對dui原yuan生sheng雲yun架jia構gou的de附fu加jia需xu求qiu。請qing注zhu意yi,每mei節jie中zhong我wo們men都dou列lie出chu了le很hen多duo可ke用yong的de框kuang架jia例li子zi,這zhe不bu代dai表biao它ta們men是shi完wan整zheng的de列lie表biao。
- 原生雲架構實現了:
- 服務可擴展性
- 服務彈性
- 高可用性
- 自動負載均衡和故障切換
- DevOps
- 公有雲、私有雲及混合雲通用
- 廠商無關的部署
- 快速升級
- 更高的利用率並降低基礎設施成本
- 更高的效率和靈活性
有了這一切,你可以專注於創新和解決您的業務問題,而不是在“靜態和僵化的傳統架構”的(de)大(da)量(liang)技(ji)術(shu)問(wen)題(ti)中(zhong)浪(lang)費(fei)時(shi)間(jian)。要(yao)知(zhi)道(dao),原(yuan)生(sheng)雲(yun)意(yi)味(wei)著(zhe)你(ni)可(ke)以(yi)不(bu)僅(jin)僅(jin)在(zai)公(gong)共(gong)雲(yun)中(zhong)部(bu)署(shu)軟(ruan)件(jian)。私(si)有(you)雲(yun)或(huo)混(hun)合(he)雲(yun)的(de)部(bu)署(shu)也(ye)包(bao)含(han)在(zai)雲(yun)原(yuan)生(sheng)的(de)定(ding)義(yi)中(zhong)!
持續集成和持續交付
持續集成(CI) 和持續交付(CD) 需要很多不同的東西自動構建,部署和運行微服務。 這包括用於自動測試和部署,內部和外部的服務發現以及微服務和容器的分布式配置腳本。
自動化測試和部署腳本
持續集成CI 和持續交付CD始於數年前。你的包的構建,測試和部署服務全部自動化完成。這提高了生產率,生產效率和產品質量。下麵是被用於CI / CD創建腳本的主要框架和工具:
- 自動構建管理: Apache Ant, Apache Maven, Gradle, …
- 持續集成: Jenkins, Bamboo, …
- 持續交付: Chef, Puppet, SaltStack, Ansible, …
服務發現
我wo們men使shi用yong了le大da量liang不bu同tong的de獨du立li服fu務wu以yi及ji每mei個ge服fu務wu都dou有you數shu量liang龐pang大da分fen布bu式shi實shi例li在zai工gong作zuo。內nei部bu服fu務wu發fa現xian框kuang架jia用yong來lai實shi現xian定ding位wei服fu務wu實shi現xian負fu載zai均jun衡heng和he故gu障zhang切qie換huan目mu的de。因yin此ci,我wo們men需xu要yao每mei個ge服fu務wu提ti供gong者zhe在zai可ke用yong時shi向xiang服fu務wu發fa現xian者zhe登deng記ji注zhu冊ce。從cong而er使shi消xiao費fei者zhe能neng夠gou基ji於yu注zhu冊ce發fa現xian服fu務wu並bing連lian接jie使shi用yong它ta。
關於如何使用服務注冊中心有很多可選項,例如Netflix’ Eureka, Apache Zookeeper,Consul, Etcd。許多稍後討論的框架還包括隱式服務注冊。在本文中分類各種不同的框架並不是件簡單的事情,很多時候各種特性是相互重疊的。
除了內部服務發現外,外部服務發現框架用於暴露內部微服務接口給外界(其可以是公共互聯網,合作夥伴或其他內部部門)。這通常被稱為“Open API initiative”或“API Management”,並作為打包和API的自配置的入口(例如,在本例中的微服務),貨幣化和安全執法網關(如認證,授權,限流)。為API管理一些相關的選項有:
- JBoss apiman: 開源的,底層的編碼框架,可以利用其它Redhat的JBoss項目
- Apigee: 專注於API 管理市場的競爭者
- Akana (former SOA Software): 專注於API 管理市場的競爭者
- CA’s Layer7: 強大的安全網關,可以利用其他CA產品
- TIBCO’s Mashery: 強大的門戶網站和社區,可以利用其他TIBCO產品
- 應用TIBCO API Exchange Gateway滿足高級安全和路由要求
請參閱下麵文章的有關使用案例和“Open API”產品分類詳細信息:API管理如何改變雲計算,大數據,物聯網的遊戲規則。
動態分布式配置管理
在(zai)原(yuan)生(sheng)雲(yun)架(jia)構(gou)存(cun)在(zai)著(zhe)大(da)量(liang)敏(min)捷(jie)和(he)動(dong)態(tai)的(de)變(bian)化(hua)以(yi)適(shi)應(ying)分(fen)布(bu)式(shi)的(de)微(wei)服(fu)務(wu)和(he)容(rong)器(qi),你(ni)無(wu)法(fa)手(shou)工(gong)管(guan)理(li)和(he)配(pei)置(zhi)它(ta)們(men)。服(fu)務(wu)被(bei)設(she)計(ji)以(yi)適(shi)應(ying)失(shi)敗(bai),重(zhong)生(sheng)並(bing)迅(xun)速(su)更(geng)新(xin)。因(yin)此(ci),你(ni)需(xu)要(yao)自(zi)動(dong)化(hua)的(de)配(pei)置(zhi)管(guan)理(li)以(yi)設(she)置(zhi)分(fen)布(bu)式(shi)節(jie)點(dian)上(shang)的(de)新(xin)容(rong)器(qi)快(kuai)速(su)且(qie)自(zi)動(dong)配(pei)置(zhi)。一(yi)些(xie)所(suo)需(xu)的(de)功(gong)能(neng)如(ru)下(xia):
- 運行期動態自適應(例如,改變特定實例的服務行為,數據庫連接或者是日誌層級)
- 基於複雜的請求或部署上下文改變多維屬性
- 基於請求上下文啟用或者停用特性(例如,顯示特定的用戶界麵或者是特定的地區或者設備)
- 改變雲的設計模式行為(詳見後續章節中的“彈性設計模式”)
動態分布式配置管理的兩個相關的框架是Netflix’ Archaius和 Spring Cloud Config. 這些框架使用動態配置的輪詢和回調機製(特定IP地址和主機)以適應彈性和不斷變化的雲的本地環境,因為傳統的推送模式無法在其中正常工作。
可擴展性和故障切換
一個原生雲架構的主要特點就是根據負載彈性伸縮和SLA的能力。這需要先進的集群管理,以及服務器端和客戶端彈性的負載平衡和設計模式。
集群管理(計劃和編製)
靈(ling)活(huo)的(de)開(kai)發(fa)和(he)部(bu)署(shu)是(shi)微(wei)服(fu)務(wu)和(he)容(rong)器(qi)的(de)一(yi)個(ge)關(guan)鍵(jian)優(you)勢(shi)。包(bao)括(kuo)添(tian)加(jia)新(xin)功(gong)能(neng)以(yi)及(ji)舊(jiu)功(gong)能(neng)的(de)裁(cai)剪(jian)。零(ling)宕(dang)機(ji)和(he)故(gu)障(zhang)切(qie)換(huan)是(shi)必(bi)需(xu)的(de),同(tong)時(shi)你(ni)也(ye)需(xu)要(yao)保(bao)證(zheng)高(gao)效(xiao)的(de)資(zi)源(yuan)利(li)用(yong)率(lv)。
集群管理器是專為故障切換和高可擴展性而設計。 它被用於自動編排容器調度和管理主機,包括每個主機的規則和約束應用。
很多種集群管理框架已經實現,尤其是針對Docker。下麵是一些最相關的實施案例(更詳細地討論在這裏):
- Docker Swarm: 一個Docker原生框架,使用Docker API,可以很容易地利用其他Docker框架,如Docker Compose,它必須與其他框架如ETCD,Consul或ZooKeeper結合
- CoreOS Fleet: 基於systemd直接構建的底層框架,經常被用於作為高層解決方案的底層基礎架構
- Kubernetes: 來自Google的開源項目並且得到了眾多其他公司的支持包括IBM, Red Hat和Microsoft。Kubernetes是結合了複雜的功能和相對簡單的安裝/配置的一個偉大組合。它不同於其他一些先進的集群管理器,你甚至可以通過一個簡單的“docker run”命令就將它設置在本地計算機上。如果你在雲平台上安裝它,那麼它也可以利用平台的特定功能,例如在AWS上它可以使用亞馬遜的ELB,或者它也可以利用Google雲平台的Google LB。
- Mesos’ Marathon: 基於強大(且複雜)的Apache Mesos之上的一個編排框架,一個“分布式係統內核”。Mesos被用於大規模多用途的不同框架之上的封裝(如Apache Hadoop, containers via Marathon, batch processing via Chronos).
負載均衡(服務端和客戶端)
原生雲上有眾多服務器隨時在生生滅滅。由此基於微服務和容器的負載均衡需要變得更加錯綜複雜。隻是基於公共的IP地址和主機負載分布是不夠的了。如基於幾個因素的加權負載均衡概念能夠提供更卓越的彈性,如流量,資源使用情況或錯誤的條件。
傳統的服務器側負載平衡多年來用於在多個服務器之間分發網絡或應用流量以增加應用程序的容量和可靠性。著名的例子是F5公司的Big-IP產品或亞馬遜的AWS彈性負載均衡(ELB)服務。它們用於所謂的邊緣業務,即外部服務的消費者分別導入為最終用戶的網絡流量。
此外,許多微服務架構也包括客戶端負載平衡,以避免不必要的服務間的通信。因此一些框架,如Netflix Ribbon也嵌入到客戶端LB到每個微服務。這降低了通信的跳轉,而不再需要在內部的微服務之間服務通信多層跳轉,我們稱之為所謂中間層或核心服務。
韌性設計模式
suoyouyuanshengyunjiagoudexingainiandouxuyaoxindeshejimoshilaitigongyigekezhongfudetongyongfanganlaijiejuejingchangchuxiandewenti。renxingshejimoshitongguoshixiangaoyanshikuanrong,rongcuoheguzhanghuifuluojikeyifangzhiliansuoguzhang,yunxukuaisushibaihekuaisuhuifu.
其中一個著名的模式就是Circuit Breaker用來檢測故障並封裝邏輯從而防止故障持續性重複發生 (在維護,臨時的外部係統故障或係統意外的困難期間)。Akka framework就是對這個模式的很好的解讀和實現。Netflix Hystrix也提供了一個複雜的實現用於在分布式係統中達到延時和容錯的目的。“Application Resiliency Using Netflix Hystrix”就是Ebay Tech發布的一個非常好的文章用於解釋他們如何利用它來實現雲模式的。
我們已經有大量的雲計算模式出現(未來將會更多)。例如,Kubernetes的技術博客所解釋的“Patterns for Composite Containers”,例如“Sidecar容器”,“大使容器”或“適配器容器”。
容器解決方案堆棧
正如你在上麵的章節所看到的,目前已經有很多可用的框架和工具鏈,而且它們的數量還在每月增長。這可能會提醒許多讀者Apache Hadoop的故事,它不太成熟的框架,及其生態係統令人難以置信的增長速度。今天的Docker也是如此。因此,一些“解決方案堆棧”正在興起,以幫助用戶入門以及管理使用一個單一(和有商業支持的)容器堆棧的所有挑戰,就像眾所周知的Hadoop環境曾經遇到的一樣。 容器解決方案堆棧的幾個例子是Tectonic(Kubernetes + CoreOS平台),Docker數據中心,Mantl 或者 HashiCorp’s Nomad。 更多方案可能將在未來幾個月出現。
至(zhi)此(ci),我(wo)們(men)已(yi)經(jing)討(tao)論(lun)了(le)幾(ji)個(ge)概(gai)念(nian),框(kuang)架(jia)和(he)模(mo)式(shi),以(yi)利(li)用(yong)容(rong)器(qi)和(he)微(wei)服(fu)務(wu)實(shi)現(xian)雲(yun)計(ji)算(suan)的(de)本(ben)地(di)架(jia)構(gou)。但(dan)是(shi),你(ni)也(ye)需(xu)要(yao)某(mou)種(zhong)雲(yun)平(ping)台(tai)用(yong)以(yi)部(bu)署(shu)和(he)運(yun)行(xing)這(zhe)一(yi)切(qie)。
私有,公共和混合雲平台
一個雲平台可以是私有雲,公共雲或者混合雲,它提供了一種自助服務和靈活的雲計算基礎設施(基礎設施作為一種服務,即IaaS)。在雲基礎設施之上,你需要一個平台(平台作為一種服務,即PaaS),由此你可以部署和運行你的容器。下圖顯示了兩者的主要特點:

大多數企業選擇成熟可用的雲產品,如Amazon Web Services,Microsoft Azure或開源OpenStack的IaaS和PaaS的平台,如Red Hat’s OpenShift(這是基於Docker和Kubernetes的)或Cloud Foundry(提供開源並且由幾個供應商提供的增強版本如IBM with Bluemix 或 Pivotal)。
使用現有的PaaS平ping台tai的de主zhu要yao優you勢shi是shi一yi個ge原yuan生sheng雲yun架jia構gou的de主zhu要yao需xu求qiu,如ru靈ling活huo的de可ke伸shen縮suo性xing,容rong器qi編bian排pai,動dong態tai服fu務wu發fa現xian,負fu載zai平ping衡heng或huo動dong態tai分fen布bu式shi配pei置zhi管guan理li外wai的de即ji裝zhuang即ji用yong的de支zhi持chi。因yin此ci,你ni應ying該gai在zai基ji於yu上shang麵mian所suo討tao論lun的de各ge種zhong不bu同tong架jia構gou建jian立li自zi己ji的de平ping台tai之zhi前qian評ping估gu不bu同tong的dePaaS平台。大多數平台隱式利用了這些框架的其中一種或另一種。
在討論了所有這些原生雲架構的需求和可用的框架細節後,現在讓我們來看看為何說這一切和中間件都是相關的。
中間件的聯係(一體化,API管理,事務處理)
在進一步之前,我需要澄清:微服務,容器和原生雲架構並不適合所有的場景。請記住:這裏引入了很多新的概念和複雜性。“微服務不是免費的午餐”!
因yin為wei整zheng合he是shi大da多duo數shu中zhong間jian件jian項xiang目mu取qu得de成cheng功gong的de關guan鍵jian,因yin此ci在zai下xia麵mian的de段duan落luo中zhong我wo會hui格ge外wai注zhu重zhong平ping台tai集ji成cheng。無wu論lun是shi雲yun,移yi動dong,大da數shu據ju或huo物wu聯lian網wang等deng趨qu勢shi,都dou不bu可ke能neng在zai沒mei有you和heIT架構很好的融合下生存。
企業服務總線(ESB)是在許多企業作為自定義應用程序,商業現有軟件,遺留應用程序,數據庫和雲服務之間的戰略整合平台。然而,並非每一個ESB部署都需要是原生雲。在銀行,零售商,航空公司,電信公司和其他執行關鍵任務的公司,部署一個具有高性能,高可用性和容錯性的ESB中心仍可能是未來幾十年的最佳選擇。
在另一方麵來說,ESB並不是個像你可能認為的那樣複雜的,中央控製並且重量級的野獸。這在5至10年前可能是真實的(這也是其中一個多個SOA項目在那段時間失敗的原因之一)以及它在今天對於某些供應商來說仍然是真實情況。但總的來說(並且對許多廠商都是如此)企業服務總線在2016年已經是一個成熟,穩定,易於使用的組件,它應提供:
- 集成
- 編排和服務協同
- API和商業服務
- 消息
- 獨立部署
- 可擴展性和輕量級平台
- 自動化
根據你的需求,你應該能夠決定你需要什麼樣的原生雲以及是否能夠利用微服務及容器(包括所有的利弊)。不隻是選擇這些概念,也包括你真正需要的工具和功能。
中間件範例
說了這麼多,讓我們來看看幾個不同的中間件的例子,以及你可能會如何利用微服務,容器和原生雲架構為此服務:
- 集成: 構建(微)服務,並使用ESB的集成功能的API; 整合和協調不同(微)服務(構建複合服務)
- API管理: 通過API暴露,發布和貨幣化微服務給內部,外部合作夥伴或公共世界。
- 事務處理: 實時處理關聯分布的微服務事件增加商業價值(如欺詐檢測,交叉銷售和預測性維護)
上述所有的中間件組件:
- 需要敏捷性和靈活性
- 控製和利用其他微服務
- 必須支持微服務特征本身(容器, CI / CD, elastic 彈性伸縮性等) 適配到原生雲架構,並允許快速變化
讓我們回過頭來看整合平台的例子和ESB。如果你需要一個更靈活,原生雲集成的解決方案,而不是傳統的,更核心的ESB部署,那麼你有三種選擇(這裏不關心品牌或產品名稱):
基於PaaS集成中間件
這非常類似於預置部署ESB用於實施“核心服務”,例如: 中央部分,往往是複雜和關鍵任務的服務。開發是在傳統的IDE上完成。然而,關鍵的區別在於,該解決方案是原生雲即它支持容器和微服務。你可以使用這種集成中間件開發被本地部署到PaaS平台上,如Cloud Foundry或OpenShift上(shang)的(de)集(ji)成(cheng)應(ying)用(yong)。一(yi)些(xie)供(gong)應(ying)商(shang)提(ti)供(gong)了(le)一(yi)個(ge)供(gong)應(ying)商(shang)無(wu)關(guan)的(de)解(jie)決(jue)方(fang)案(an),在(zai)那(na)裏(li)你(ni)可(ke)以(yi)部(bu)署(shu)集(ji)成(cheng)應(ying)用(yong)程(cheng)序(xu)到(dao)任(ren)何(he)地(di)方(fang),而(er)不(bu)依(yi)賴(lai)於(yu)特(te)定(ding)的(de)雲(yun)平(ping)台(tai)或(huo)供(gong)應(ying)商(shang)。
你可以開發不同更敏捷,快速變化並且提供網絡擴展性的的“原生雲服務”:
- 集成應用程序和服務: 創建商業化的web APIs提供後端web 服務如ERP,CRM,利用如SOAP,SAP,Oracle,IBM MQ等企業的技術管理訂單係統。
- 功能微服務化: 創建應用隻需專注於業務功能,而無需理解底層代碼複雜性
- API協同服務: 圖形化的協同API充分利用PaaS的集成工具(如流程編排,數據映射器或連接器)
市場上對於部署基於PaaS平台的原生雲上創建集成應用並沒有很多可選項。
TIBCO的 BusinessWorks Container Edition 是一個供應商無關的配套例子支持CloudFoundry, Docker, Kubernetes, AWS ECS, 等。 JBoss Middleware Services 允許其中間件應用程序(包括JBoss Fuse和A-MQ)在OpenShift上部署。
雲集成中間件 (iPaaS)
一個IPaaS雲集成中間件是基於雲,使用web瀏覽器而不是桌麵IDE的de,並bing且qie支zhi持chi執zhi行xing集ji成cheng腳jiao本ben流liu程cheng,有you集ji成cheng的de開kai發fa和he生sheng命ming周zhou期qi管guan理li,有you應ying用yong流liu程cheng管guan理li和he監jian控kong,協xie同tong基ji本ben的de雲yun功gong能neng例li如ru多duo租zu戶hu,彈dan性xing和he自zi我wo配pei置zhi。iPaaS能和預置部署的ESB或基於PaaS平台上的集成中間件緊密合作。
iPaaS工具提供了直觀的基於Web的集成,它的目的在於提供給用戶一些技術理解。例如,如何創建和部署REST服務或配置連接和開放API的政策。它通常用來構建“邊緣服務”,有時也被稱為“微流”它可能會更頻繁地發生變化,它也往往不是關鍵任務。
一些iPaaS解決方案的示例如下:Dell Boomi, Informatica Cloud, MuleSoft Anypoint Platform,SnapLogic, Jitterbit, 以及 TIBCO Cloud Integration.
更詳細的介紹,包括iPaaS的利弊可以在這裏找到:“iPaaS: 什麼是雲技術以及為什麼它這麼重要”.
SaaS雲集成中間件 (iSaaS)
這種SaaS解決方案提供了企業用戶一個直觀的基於Web的用戶界麵,即“Citizen Integrator”,從而根據do-it-yourself (DIY)原則無需技術知識即可完成個人集成。 Citizen Integrators通過配置,而無需開發開發或從頭構建他們新的集成流程即可構建新的集成。例如,企業用戶創建一個自動流程通過從SaaS服務,如Salesforce或Marketo和他的微軟Excel表自助服務來同步他的數據。
iSaaS整合是預置部署,PaaS和iPaaS集成有明顯的互補性。對於沒有戰略和關鍵任務的企業,它們也應該被視為“邊緣業務”。但對於具體的業務用戶來說非常重要。iSaaS解決方案的例子有如下:SnapLogic, TIBCO Simplr, 或 IFTTT.
混合集成平台(HIP)
一個成功的關鍵是,你可以在不同的平台間傳輸內容。Gartner稱之為混合集成平台(HIP)。不同的組件共享元數據,一個單一的IDE和統一運營管理。卓越的集成能力以及API管理組件對於敏捷開發,部署和運維也是非常重要的。
例如,你可能希望開發一個基於PaaS的編排服務集成解決方案,並希望稍後移植它到預置集成平台版本。 或者你可能想用iPaaS中間件定義一個REST服務(基於“合同第一條原則”)以及模擬它在預定義後實現的預置ESB上的接口服務。同樣的服務也需要通過API暴露給合作者或者公共訪問者。
更多的中間件框架和供應商
最後,我想強調某些其他框架和供應商,它們可能會與實現你的原生雲微服務相關,但在文章中還未提及的:
WSO2 Jave微服務框架 是基於廠商開源中間件之上的低層次的編碼框架一個很好的例子。
Amazon EC2 容器服務 (ECS) 和 Google 容器引擎 是 “容器即服務(CaaS)”的兩個例子,允許容器作為SaaS解決方案的自助服務使用
其他雲供應商如Amazon, Microsoft, 或 Google同時也是中間件的供應商。 例如,Amazon AWS提供雲消息的服務(SQS 以及其他),流媒體和分析 (Kinesis), 容器 (ECS), 微服務 (Lambda)以及更多。
大量的其他中間件供應商同時也提供原生雲服務。更多細節見如下文章Software AG Cloud, Talend Integration Cloud, 或 Oracle Cloud Platform.
這些日子以來物聯網的中間件是另一個顯著增長的領域。例如,看看開源的集成解決方案,如Node-RED(基於js,由IBM開源)或Flogo(基於穀歌的Go Programming Language,很快由TIBCO發布並開源)。兩者都提供一個零代碼環境的Web IDE構建和部署,集成和數據處理以直接使用物聯網的標準,如連接設備MQTT, WebSockets, 或 CoaP。
最後,我想要提一下 原生雲計算基金會(CNCF), 它可能會在未來對本文中提及的一係列框架更加相關。該CNCF成立,目的是幫助促進開發者和操作者對部署原生雲和基於容器的應用程序服務共性技術之間的合作。創始成員包括Google, Cisco, IBM, Docker, 和 VMware。最初的兩個項目就是Kubernetes 和 Prometheus。
微服務,容器和原生雲不適合每個項目…
…但他們對我們的思想中關於IT架jia構gou有you著zhe巨ju大da的de影ying響xiang。在zai很hen多duo新xin的de項xiang目mu中zhong,這zhe些xie概gai念nian絕jue對dui有you意yi義yi並bing創chuang造zao了le很hen多duo益yi處chu,比bi如ru靈ling活huo的de開kai發fa,部bu署shu,和he運yun營ying。想xiang想xiang取qu舍she,並bing充chong分fen利li用yong原yuan生sheng雲yun架jia構gou的de那na些xie對dui你ni項xiang目mu有you意yi義yi的de部bu分fen。現xian代dai中zhong間jian件jian將jiang利li用yong微wei服fu務wu,容rong器qi和he原yuan生sheng雲yun架jia構gou!無論是對於集成,API管理,事務處理,流媒體分析,業務流程管理,或其他任何形式的無論預置部署或雲中間件。





閩公網安備 35020302001891號