企業級分佈式應用服務EDAShtml
產品概述前端
在EDAS上.能夠一站式完成應用生命週期管理,包括髮布,啓動,中止,擴容,縮容和刪除等java
全局事務服務(Global Transaction Service,簡稱 GTS)是一款高性能、高可靠、接入簡單的分佈式事務中間件,用於解決分佈式環境下的事務一致性問題。該產品支持 DRDS、RDS、Oracle、MySQL、PostgreSQL、H2 等多種數據源,並能夠配合使用 EDAS、Dubbo 及多種私有 RPC 框架,同時還兼容 MQ 消息隊列等中間件產品,可以輕鬆實現分佈式數據庫事務、多庫事務、消息事務、服務鏈路級事務及其各類組合,策略豐富,易用性和性能兼顧。數據庫
應用場景安全
在雲環境中,應用發佈與管理會變得十分複雜.本地開發完成的應用須要到每一臺服務器進行發佈和部署,以及應用的重啓,擴容等.服務器的不斷增長對運維人員是一個極大的挑戰.服務器
針對這個場景,EDAS 提供了一個可視化的控制檯,不管集羣規模多大,均可以在控制檯上輕鬆地進行應用生命週期管理。網絡
名詞解釋架構
Ali-Tomcat:Ali-Tomcat 是 EDAS 中的服務運行時必須依賴的一個容器,主要集成了服務的發佈、訂閱、調用鏈追蹤等一系列的核心功能,不管是開發環境仍是運行時,均必須將應用程序發佈在該容器中。負載均衡
Dubbo:Dubbo 是一個分佈式服務框架,致力於提供高性能和透明化的 RPC 遠程服務調用方案,是阿里巴巴 SOA 服務化治理方案的核心框架,天天爲2,000+個服務提供3,000,000,000+次訪問量支持,並被普遍應用於阿里巴巴集團的各成員站點。框架
EDAS:企業級分佈式應用服務(Enterprise Distributed Application Service)。以阿里巴巴中間件團隊多款久經沙場的分佈式產品做爲核心基礎組件,面向企業級雲計算市場提供高可用分佈式解決方案,是阿里巴巴企業級互聯網架構解決方案的核心產品。EDAS 充分利用阿里雲的資源管理和服務體系,引入阿里巴巴中間件整套成熟的分佈式產品,幫助企業級客戶輕鬆構建大型分佈式應用服務系統。
EDAS Agent:EDAS Agent 是 EDAS 中安裝在您的 ECS 上,主要用於 EDAS 服務集羣與部署在相應的 ECS 上的應用程序之間進行通訊的 Daemon 程序,在運行的過程當中主要承擔應用管理、狀態回報、信息獲取等功能;同時也是 EDAS 控制檯與您的應用程序之間信息溝通的主要橋樑。
EDAS RPC 服務:EDAS RPC 服務提供對 Dubbo 框架的支持。一個使用 Dubbo 框架開發的,並以 WAR 爲部署方式的應用,能夠無縫在 EDAS 平臺進行應用的發佈和管理,並使用全部 EDAS 所提供的服務治理和數據化運營功能。
EDAS 應用生命週期:應用是 EDAS 管理的基本單位,一個應用下面一般包含了多臺機器。EDAS 提供了完整的應用生命週期管理機制,能夠完成應用從發佈到運行過程的全面管理,包括應用建立、部署、啓動、回滾,擴容縮容和中止刪除等操做。
EDAS 鷹眼監控系統/分佈式鏈路跟蹤:EDAS 鷹眼監控系統用於分析分佈式系統的系統調用、消息發送和數據庫訪問,從而精準發現系統的瓶頸和隱患。
EDAS 應用實例數限額:表示主帳號及其名下的子帳號所擁有的全部應用下面的實例數上限。付費帳號在給主帳號分配此限額的時候,其下的全部主帳號的限額之和不能大於付費帳號的總應用實例數限額。
IaaS 基礎監控:EDAS 的監控功能之一,可以針對應用的運行狀態,對機器的 CPU、內存、負載、網絡和磁盤等基礎指標進行詳細的監控。
服務調用監控:EDAS 的監控功能之一,可以針對應用的服務調用狀況,對服務的 QPS、響應時間和出錯率進行全方面的監控
分佈式配置管理:EDAS 提供的功能,將分佈式系統的配置信息在 EDAS 控制檯上進行集中管理,能夠實時增長、修改、刪除配置,並將配置更新在全局範圍或者應用內部進行推送
分佈式任務調度:任務調度服務容許您配置任意週期性調度的單機或者分佈式任務,並能對任務運行週期進行管理,同時提供對任務的歷史執行記錄進行查詢。適用於諸如天天凌晨2點定時遷移歷史數據,每隔5分鐘進行任務觸發,每月的第一天發送系統月報等任務調度場景。
服務鑑權:HSF 服務框架致力於保證您每一次分佈式調用的穩定與安全。在服務註冊、服務訂閱以及服務調用等每個環節,都進行嚴格的服務鑑權。
服務限流:EDAS 能夠對每個應用提供的衆多服務配置限流規則,以實現對服務的流控,確保服務可以穩定運行。限流規則能夠從 QPS 和線程兩個維度進行配置,幫助您在應對流量高峯時,確保系統能以最大的支撐能力平穩運行。
服務降級:與服務限流相反,每個應用會調用許多外部服務,對於這些服務配置降級規則能夠實現對劣質服務的精準屏蔽,確保應用自身可以穩定運行,防止劣質的服務依賴影響應用自身的服務能力。EDAS 從響應時間維度對降級規則進行配置,幫助您在應對流量高峯時合理地屏蔽劣質依賴。
自動化壓測:首創的自動化壓測工具模型,可以幫助客戶將性能壓測融入到平常生活中。值得一提的是,全部自動化壓測的流量,全是生產環境真實流量,經過對服務權重的控制,在保證穩定的前提下,真正意義上作到線上壓測。
安裝EDAS Agent
在EDAS部署應用以前,須要先在ECS上安裝EDAS Agent.EDAS Agent是EDAS服務器集羣與部署在相應的ECS之間進行通訊的Daemin程序
注意:EDAS Agent 中默認安裝 JDK 8。若是您須要使用 JDK7,能夠經過使用命令腳本手動安裝 Agent,並在末尾加上 -force -java 7。
好比華北2(北京 Region)安裝 JDK 7 的命令以下:
wget -q -O /root/install.sh http://${selectedregion url}/install.sh && sh /root/install.sh -force -java 7
使用命令腳本手動安裝Agent
在購買ECS時經過EDAS基礎鏡像自動安裝Agent
經過導入ECS自動安裝Agent
注意:確認導入 ECS 後,系統會把 ECS 上的全部數據清除,使用 EDAS 的官方鏡像重裝操做系統。請記住新密碼。
發佈應用
發佈應用包括建立應用、部署應用和配置負載均衡 3 步。
建立應用
說明:
部署應用
EDAS 提供同時部署多臺 ECS 實例的功能。本文以一臺 ECS 實例爲例,因此在分批發布次數下拉列表選擇默認的 1 次就能夠。
配置負載均衡
若是配置選項中沒有SLB悠閒建立並配置SLB
(若是須要進行 SLB 端口監聽)勾選 SLB 端口監聽右側的開啓選項,設置 SLB 前端端口,而後單擊配置負載均衡。
用戶指南
EDAS 中的資源主要是指雲服務器 ECS (Elastic Compute Service)、負載均衡 SLB(Server Load Balancer)、專有網 絡 VPC(Virtual Private Cloud)這三類。
ECS
VPC
在 VPC 網絡內,ECS 實例與 EDAS 服務器隔離。因此須要安裝日誌採集器來收集 ECS 的信息。單擊實例列表操做列中的安裝日誌採集器進行安裝。安裝日誌採集器的具體步驟,請參考安裝日誌採集器。
日誌採集器
在 EDAS 提供的一系列服務中,不少數據都是從本地機器拉取的,這就要求服務器能夠鏈接到對應的機器上。
阿里雲的網絡環境分爲經典網絡和 VPC 網絡兩種。
日誌採集器分爲 Server 端和 Client 端。SProxy 則是安裝在您機器上的日誌採集器 Client。
必須在 VPC 內部選取一臺機器(假設爲機器 A)來安裝日誌採集器。即SProxy,而後機器A會收集VPC內的其餘機器信息,來與EDAS集羣(Server端)記性通訊
資源組
資源組是EDAS對資源的一種劃分,資源組只能綁定ECS或者SLB,不能綁定VPC.當您使用主帳號負責購買資源,子帳號負責應用運維時,可使用資源組對帳號的權限進行控制。
集羣
支持ECS集羣,Swarm集羣,kubernetes集羣.網絡類型包括經典網絡和VPC網絡,其中K8S只支持VPC網絡
命名空間
您在使用 EDAS 的過程當中,一般須要進行資源(ECS)隔離。EDAS 支持按不一樣帳號分配資源,利用帳號實現資源隔離。同時,也能夠利用 VPC 的網絡隔離特性實現資源隔離。但這兩種方式會在操做難度(帳號切換)和實現成本(須要購買多個 VPC)兩方面給您形成沒必要要的負擔,並且不能兼顧資源隔離和統一管理。在經典網絡中也沒法實現資源的網絡隔離。
爲了解決這個問題,EDAS 實現了一個新功能:命名空間。在某個地域(Region)的經典網絡或 VPC 中,一個命名空間對應一個環境(包含一個或多個集羣),不一樣命名空間之間邏輯上自然隔離。同時,一個帳號能夠建立多個命名空間。命名空間幫助您將多個環境間的資源徹底隔離,並可使用一個帳號進行統一管理。
應用管理
應用簡介
EDAS支持三種累心應用的發佈:
如下轉載自:http://www.cnblogs.com/ealenxie/p/8967012.html
EDAS支持語言Java,C++,PHP。EDAS支持Idea,Eclipse;Eclipse插件安裝等編譯工具。EDAS初級版僅支持應用的部署管理,不支持HSF功能。EDAS基礎版不支持RPC框架。
EDAS提供高性能的RPC框架,能構建高可用的分佈式系統,考慮各個應用之間的分佈式服務發現、服務路由、服務調用以及服務安全等細節。EDAS能單獨部署到公司內網。
EDAS HSF服務框架保證用戶每次分佈式調用的穩定與安全。在服務註冊、服務訂閱以及服務調用等環節都進行嚴格的服務鑑權。
HSF設置超時時間 : 經過HSF標籤methodSpecials和clientTimeout進行配置,優先級由高到低是 : 客戶端methodSpecials>客戶端clientTimeout>服務端methodSpecials>服務端clientTimeout
EDAS控制檯域名 : https://edas.console.aliyun.com
EDAS控制檯提供日誌瀏覽功能,可查看服務器上所部署的應用運行日誌。收斂日誌用於將單個應用中相似格式的日誌合併和排序。收斂日誌配置後須要等待大概5分鐘才能生效。
EDAS安裝輕量配置中心 : 啓動配置中心將會佔用此臺機器的8080和9600端口,須要在hosts中添加 {輕量配置中心公網 ip} jmenv.tbsite.net。若是此臺機器是多網卡的,可啓動腳本startup.bat或startup.sh中添加啓動參數: -Daddress.server.ip={指定的 IP 地址};經過 -Dhsf.server.ip參數指定要註冊服務的IP。
EDAS 服務限流的限流規則(限流規則僅適用於服務調用者)可以從QPS和線程兩個維度進行配置。可進行HSF限流和HTTP限流。
EDAS 提供了從響應時間維度對降級規則(降級規則僅僅適合服務提供者)的配置。
EDAS 鷹眼監控系統可以分析分佈式系統的每一次系統調用、消息發送和數據庫訪問。主要包括應用拓撲(可查看調用拓撲和流量QPS),調用鏈查詢(可查看慢業務和出錯業務),調用鏈詳情(基於TraceId查詢)。
EDAS 提供報警功能,但目前只有短信與郵件通知的方式。
EDAS 的應用主要分爲兩種類型:中間件服務化應用(JAR/WAR包類型的普通應用和Docker應用)和 Kubernetes 應用。Kubernetes應用只支持VPC網絡。
EDAS 的應用部署類型有兩種 : ECS獨佔實例(在一臺獨立的ECS機器上,僅容許部署單獨一個應用),Docker實例(單個應用在同一ECS上只能部署一個實例)
EDAS 可以針對應用的服務調用狀況,對服務的QPS、響應時間(RT)和出錯率進行全方面的監控。
EDAS 可以針對應用的運行狀態,對機器的CPU、內存、負載(Load)、網絡和磁盤等基礎指標進行詳細的監控。EDAS還提供容器監控功能(應用診斷)。基礎監控(可提供以應用爲維度的數據)面向的是機器,容器監控面向是應用所在的容器。基礎監控存在時延,容器監控基本是實時的。
EDAS 提供彈性伸縮功能來根據集羣內服務器的CPU、RT和Load三個指標實現自動的擴容或者縮容。
EDAS 對應用的生命週期管理,包括建立、部署、啓動/中止和刪除(應用刪除不可恢復)。可設置JVM參數,Tomcat參數,可對應用的實例分組(可按分組部署應用,添加實例到分組),可配置負載均衡。可配置健康檢測URL。
EDAS 包含兩種集羣:Swarm(部署普通應用和Docker應用)和Kubernetes集羣(部署Kubernetes應用)。
EDAS 的配置推送分爲全局配置推送和應用內部的配置推送。全局配置推送能操做該用戶的全部配置信息,應用內的配置推送只能操做該應用所屬的配置信息。一個配置信息由三元組(group、DataId、Content)組成。
EDAS 提供主子帳號體系,付費帳號都是主帳號(擁有EDAS全部資源,全部權限),但不是全部的主帳號都是付費帳號。1個付費帳號最多能綁定5個主帳號。RAM子帳號由主帳號在RAM系統中建立,子帳號名要在主帳號內惟一。RAM帳號有兩種受權方式 : RAM受權,EDAS受權(兩種方式互斥,有了RAM受權,那麼就不能在EDAS中受權),主帳號能夠對綁定的子帳號(用戶)進行權限分配、資源分配等。應用的受權只能是主帳號對子帳號進行受權。
EDAS 的資源主要是指雲服務器ECS(Elastic Compute Service)、負載均衡SLB(Server Load Balancer)、專有網絡VPC(Virtual Private Cloud)這三類。
VPC環境調用鏈和監控數據須要有訪問請求流量纔會產生,若是無客戶訪問網站,則不會有曲線。肯定機器的8182端口打開。執行 netstat -antp|grep 8182查看是否端口開放。
EDAS Agent是EDAS中安裝在用戶ECS上,主要用於EDAS服務集羣與部署在相應的ECS上的應用程序之間進行通訊的Daemon程序,在運行的過程當中主要承擔應用管理、狀態回報、信息獲取等功能,Edas Agent在每一個區的安裝腳本都是不同的。若是安裝Agent的過程當中發現卸載Java,說明指定的JDK版本與安裝版本不一致;若是EDAS Agent心跳中止了, ECS的實時狀態會變成Agent異常 ,此時,任何對該ECS的部署、啓動、中止等命令均無效。重啓服務器後EDAS Agent會自動重啓,可是Tomcat不會。若是配置JVM參數(在EDAS Agent2.8.0 版本及以上纔有效),參數會被寫到容器目錄下的bin/setenv.sh文件中,須要重啓Tomcat和應用才能夠生效。
EDAS 容器由AliTomcat,Pandora和定製的Pandora插件組成。EDAS容器發佈不會對已部署的應用產生任何影響。
Ali-Tomcat是EDAS中的服務運行時必須依賴的容器,主要集成服務的發佈、訂閱、調用鏈追蹤等一系列的核心功能,不管是開發環境仍是運行時,均必須將應用程序發佈在該容器中。
Pandora是輕量級的隔離容器,也就是taobao-hsf.sar,用來隔離Web App和中間件的依賴,隔離中間件之間的依賴,讓其相互之間互不影響。
定製的Pandora插件中集成了實現服務發現的插件、實現配置推送的插件、實現調用鏈跟蹤的插件等各類中間件產品插件。對EDAS應用進行服務監控、治理、跟蹤、分析等全方位運維管理。
EDAS高級版的流量管理規則有兩種模式 : 參數取模和名單分流。一般用於灰度發佈,藍綠部署,A/B 測試,營銷需求(新產品發佈)。
EDAS提供Open API,能夠提供資源查詢,應用生命週期管理和帳號管理功能。
EDAS日誌採集器(鵲橋) : 僅支持CentOS 6.5/7.0/7.2 64位和Ali-Linux 15.1 64位,可在多臺機器上安裝,推薦在安裝了EDAS Agent的機器上安裝(並非必須的)。安裝完成後手動檢測端口(8000)是否創建成功。
Dubbo是第一代RPC框架。