成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

中間件和微服務,Docker以及原生云架構的關系

云計算
現代中間件將利用微服務,容器和原生云架構,無論是對于集成,API管理,事務處理,流媒體分析,業務流程管理,或其他任何形式的無論預置部署或云中間件。

 

[[170483]]

 

微服務和Docker的發展勢頭

微服務和容器的主要目標是縮短軟件開發時間,以及實現開發、部署以及運維的更大靈活性。為什么它過去幾個月的發展勢頭這么猛?因為幾乎所有科技巨頭企業如亞馬遜,谷歌,Facebook,Netflix都在這里激烈競爭。

微服務就像是一個面向服務的架構(SOA):這是一種架構和供應商技術分別獨立的設計理念。因此,目前并沒有明確的界定標準或規范。你永遠需要在和其他人討論之前定義你所理解的微服務術語。每個人都有不同的定義。在這篇文章中微服務是被開發,部署和獨立縮放的服務。它們可以不針對任何技術來提供業務或整合邏輯。有些供應商提供建立微服務的特殊支持(我們將在后面的文章中看到的),但基本上不涉及任何特定的技術支持。

關于微服務架構的討論最早是一篇由Martin Fowler在2014寫的著名文章開始的,該文章的廣泛應用起始于NetFlix的一系列豐富的開源微服務應用框架。稍后我們會回來介紹更多細節,本文章的很多內容都是受到了Netflix杰出和詳細的技術博客帖子的啟發。

容器依賴其上運行的操作系統。容器的實現是基于Linux內核的資源隔離功能,如內核namespaces(隔離的應用程序運行環境,包括進程樹,網絡,用戶ID,以及安裝的文件系統),以及cgroup(提供資源限制,包括CPU,內存, I / O和網絡),和一個有聯合能力的文件系統如AUFS和其他。這允許獨立容器在單個Linux實例中運行,避免了初始化以及維持虛擬機的開銷。

相比于虛擬機,容器的主要特點是標準化包裝,可移植性,基于按需創建的目的從而達到較低的啟動和占用時間,可重復性,更好的資源利用率,更好地融入發展中的生態系統整體(如持續集成/持續交付)。容器化的應用程序可以在任何環境隨意創建和運行,無論是你的筆記本電腦,測試系統上,預生產和生產系統。而這一切完全不需要改變容器以及容器內的應用程序的任何內容。

在微服務對立面,也有幾個容器軟件的特殊實現方式。但是大多數的發展勢頭都已經被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,以上只是眾多官方支持者的一部分。

一個原生云架構

微服務和容器其獨立的服務以及靈活的部署僅僅是基礎需求。下面的章節會討論更多針對原生云架構的附加需求。請注意,每節中我們都列出了很多可用的框架例子,這不代表它們是完整的列表。

  • 原生云架構實現了:
  • 服務可擴展性
  • 服務彈性
  • 高可用性
  • 自動負載均衡和故障切換
  • DevOps
  • 公有云、私有云及混合云通用
  • 廠商無關的部署
  • 快速升級
  • 更高的利用率并降低基礎設施成本
  • 更高的效率和靈活性

有了這一切,你可以專注于創新和解決您的業務問題,而不是在“靜態和僵化的傳統架構”的大量技術問題中浪費時間。要知道,原生云意味著你可以不僅僅在公共云中部署軟件。私有云或混合云的部署也包含在云原生的定義中!

持續集成和持續交付

持續集成(CI) 和持續交付(CD) 需要很多不同的東西自動構建,部署和運行微服務。 這包括用于自動測試和部署,內部和外部的服務發現以及微服務和容器的分布式配置腳本。

自動化測試和部署腳本

持續集成CI 和持續交付CD始于數年前。你的包的構建,測試和部署服務全部自動化完成。這提高了生產率,生產效率和產品質量。下面是被用于CI / CD創建腳本的主要框架和工具:

  • 自動構建管理: Apache Ant, Apache Maven, Gradle, …
  • 持續集成: Jenkins, Bamboo, …
  • 持續交付: Chef, Puppet, SaltStack, Ansible, …

服務發現

我們使用了大量不同的獨立服務以及每個服務都有數量龐大分布式實例在工作。內部服務發現框架用來實現定位服務實現負載均衡和故障切換目的。因此,我們需要每個服務提供者在可用時向服務發現者登記注冊。從而使消費者能夠基于注冊發現服務并連接使用它。

關于如何使用服務注冊中心有很多可選項,例如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管理如何改變云計算,大數據,物聯網的游戲規則。

動態分布式配置管理

在原生云架構存在著大量敏捷和動態的變化以適應分布式的微服務和容器,你無法手工管理和配置它們。服務被設計以適應失敗,重生并迅速更新。因此,你需要自動化的配置管理以設置分布式節點上的新容器快速且自動配置。一些所需的功能如下:

  • 運行期動態自適應(例如,改變特定實例的服務行為,數據庫連接或者是日志層級)
  • 基于復雜的請求或部署上下文改變多維屬性
  • 基于請求上下文啟用或者停用特性(例如,顯示特定的用戶界面或者是特定的地區或者設備)
  • 改變云的設計模式行為(詳見后續章節中的“彈性設計模式”)

動態分布式配置管理的兩個相關的框架是Netflix’ Archaius和 Spring Cloud Config. 這些框架使用動態配置的輪詢和回調機制(特定IP地址和主機)以適應彈性和不斷變化的云的本地環境,因為傳統的推送模式無法在其中正常工作。

可擴展性和故障切換

一個原生云架構的主要特點就是根據負載彈性伸縮和SLA的能力。這需要先進的集群管理,以及服務器端和客戶端彈性的負載平衡和設計模式。

集群管理(計劃和編制)

靈活的開發和部署是微服務和容器的一個關鍵優勢。包括添加新功能以及舊功能的裁剪。零宕機和故障切換是必需的,同時你也需要保證高效的資源利用率。

集群管理器是專為故障切換和高可擴展性而設計。 它被用于自動編排容器調度和管理主機,包括每個主機的規則和約束應用。

很多種集群管理框架已經實現,尤其是針對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到每個微服務。這降低了通信的跳轉,而不再需要在內部的微服務之間服務通信多層跳轉,我們稱之為所謂中間層或核心服務。

韌性設計模式

所有原生云架構的新概念都需要新的設計模式來提供一個可重復的通用方案來解決經常出現的問題。韌性設計模式通過實現高延時寬容,容錯和故障恢復邏輯可以防止連鎖故障,允許快速失敗和快速恢復.

其中一個著名的模式就是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。 更多方案可能將在未來幾個月出現。

至此,我們已經討論了幾個概念,框架和模式,以利用容器和微服務實現云計算的本地架構。但是,你也需要某種云平臺用以部署和運行這一切。

私有,公共和混合云平臺

一個云平臺可以是私有云,公共云或者混合云,它提供了一種自助服務和靈活的云計算基礎設施(基礎設施作為一種服務,即IaaS)。在云基礎設施之上,你需要一個平臺(平臺作為一種服務,即PaaS),由此你可以部署和運行你的容器。下圖顯示了兩者的主要特點:

 

 

大多數企業選擇成熟可用的云產品,如Amazon Web Services,Microsoft Azure或開源OpenStack的IaaS和PaaS的平臺,如Red Hat’s OpenShift(這是基于Docker和Kubernetes的)或Cloud Foundry(提供開源并且由幾個供應商提供的增強版本如IBM with Bluemix 或 Pivotal)。

使用現有的PaaS平臺的主要優勢是一個原生云架構的主要需求,如靈活的可伸縮性,容器編排,動態服務發現,負載平衡或動態分布式配置管理外的即裝即用的支持。因此,你應該在基于上面所討論的各種不同架構建立自己的平臺之前評估不同的PaaS平臺。大多數平臺隱式利用了這些框架的其中一種或另一種。

在討論了所有這些原生云架構的需求和可用的框架細節后,現在讓我們來看看為何說這一切和中間件都是相關的。

中間件的聯系(一體化,API管理,事務處理)

在進一步之前,我需要澄清:微服務,容器和原生云架構并不適合所有的場景。請記?。哼@里引入了很多新的概念和復雜性。“微服務不是免費的午餐”!

因為整合是大多數中間件項目取得成功的關鍵,因此在下面的段落中我會格外注重平臺集成。無論是云,移動,大數據或物聯網等趨勢,都不可能在沒有和IT架構很好的融合下生存。

企業服務總線(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上的集成應用。一些供應商提供了一個供應商無關的解決方案,在那里你可以部署集成應用程序到任何地方,而不依賴于特定的云平臺或供應商。

你可以開發不同更敏捷,快速變化并且提供網絡擴展性的的“原生云服務”:

  • 集成應用程序和服務: 創建商業化的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的,并且支持執行集成腳本流程,有集成的開發和生命周期管理,有應用流程管理和監控,協同基本的云功能例如多租戶,彈性和自我配置。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架構有著巨大的影響。在很多新的項目中,這些概念絕對有意義并創造了很多益處,比如靈活的開發,部署,和運營。想想取舍,并充分利用原生云架構的那些對你項目有意義的部分?,F代中間件將利用微服務,容器和原生云架構!無論是對于集成,API管理,事務處理,流媒體分析,業務流程管理,或其他任何形式的無論預置部署或云中間件。

責任編輯:趙寧寧 來源: 36大數據
相關推薦

2011-12-30 10:31:38

云計算

2010-03-19 15:24:15

云服務

2011-08-23 14:58:54

Gartner云服務中間件

2021-09-09 09:05:30

開源字節跳動CloudWeGo

2025-06-12 08:34:48

云原生開源中間件

2012-09-13 15:48:16

云計算中間件

2018-02-01 10:19:22

中間件服務器系統

2014-06-05 14:41:20

金蝶中間件

2009-06-16 10:53:01

JBoss中間件JBoss架構

2013-05-28 13:28:19

紅帽公司JBoss

2018-12-07 12:47:06

iPaaS混合云多云

2022-07-14 08:17:59

中間件微服務開發

2018-11-07 15:30:19

數據庫NewSQLNoSQL

2022-11-18 07:54:02

Go中間件項目

2012-11-01 15:16:22

金蝶中間件研究院院長

2016-11-11 21:00:46

中間件

2011-10-24 07:41:38

SOA中間件應用服務器

2024-01-05 08:17:53

FiberGolang路由

2011-05-24 15:10:48

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧洲精品在线 | 久久久久久999 | 国产精品久久久亚洲 | 黄网免费 | 91一区二区三区在线观看 | 日韩在线中文 | 成人av一区| 欧美一级特黄aaa大片在线观看 | 国产精品免费一区二区三区四区 | 久久久久久91香蕉国产 | 欧美日韩亚洲国产综合 | 91精品国产综合久久久久久 | 五月激情综合 | 亚洲精品第一页 | 成人亚洲一区 | 在线观看日本高清二区 | 美女午夜影院 | 天天爽天天干 | 成人精品影院 | 黑人巨大精品欧美一区二区免费 | 91精品国产综合久久久久蜜臀 | 久久一区二区三区免费 | 成人影院在线 | 超碰综合| 99精品视频免费观看 | 久久久人| av黄色网 | 久久99精品久久久久久国产越南 | 成人精品一区二区户外勾搭野战 | 久久久一二三 | 一级黄色绿像片 | 久久婷婷av| 久久美女视频 | 欧美午夜精品久久久久免费视 | 天天干夜夜操 | 久久成人综合 | 欧美九九 | 亚洲成人精品一区 | 日韩超碰在线 | 国产一区二区av | 成人小视频在线观看 |