Kubernetes與Openstack融合的企業(yè)級(jí)微服務(wù)架構(gòu)課件_第1頁(yè)
Kubernetes與Openstack融合的企業(yè)級(jí)微服務(wù)架構(gòu)課件_第2頁(yè)
Kubernetes與Openstack融合的企業(yè)級(jí)微服務(wù)架構(gòu)課件_第3頁(yè)
Kubernetes與Openstack融合的企業(yè)級(jí)微服務(wù)架構(gòu)課件_第4頁(yè)
Kubernetes與Openstack融合的企業(yè)級(jí)微服務(wù)架構(gòu)課件_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Kubernetes與Openstack融合的企業(yè)級(jí)微服務(wù)架構(gòu)技術(shù)創(chuàng)新 變革未來(lái)第1頁(yè),共28頁(yè)。第2頁(yè),共28頁(yè)。2016年,中國(guó)人看手機(jī)的時(shí)間平均超過2小時(shí)2016年,全球平均每個(gè)用戶花在移動(dòng)互聯(lián)網(wǎng)上的時(shí)間為3.1小時(shí)第3頁(yè),共28頁(yè)。云計(jì)算拉開”互聯(lián)網(wǎng)”架構(gòu)變革序幕OpenStack is not the end , it is the beginning or a journey towards ”Internet” Architecture移動(dòng)互聯(lián)(Mobile)社交(Social)大數(shù)據(jù)(Information)微服務(wù)和分布式架構(gòu)( Micro-service)云計(jì)算平臺(tái)( Clo

2、ud & OpenStack )軟件定義網(wǎng)絡(luò)( SDN)軟件定義存儲(chǔ)( SDS)虛擬化( virtualization)IT基礎(chǔ)設(shè)施(硬件和操作系統(tǒng))互聯(lián)網(wǎng)(”Internet” Architecture)第4頁(yè),共28頁(yè)。單體架構(gòu) VS 微服務(wù)架構(gòu) https:/bliki/MicroservicePremium.html伴隨業(yè)務(wù)的快速成長(zhǎng),當(dāng)你的應(yīng)用面臨以下瓶頸:業(yè)務(wù)復(fù)雜度日益增高 團(tuán)隊(duì)規(guī)模日益龐大原有單體應(yīng)用的維護(hù)、升級(jí)和部署難度變大 應(yīng)用的迭代效率越來(lái)越慢應(yīng)對(duì)高并發(fā)業(yè)務(wù)存在性能瓶頸 缺乏足夠的容錯(cuò)性是時(shí)候考慮微服務(wù)架構(gòu)了!第5頁(yè),共28頁(yè)。單體架構(gòu) VS 微服務(wù)架構(gòu) https:/ar

3、ticles/microservices.html微服務(wù)架構(gòu)是隨著云計(jì)算的發(fā)展應(yīng)運(yùn)而生的一種軟 件設(shè)計(jì)風(fēng)格,與之對(duì)立的是傳統(tǒng)的單體架構(gòu)技術(shù)視角采用一組服務(wù)的方式來(lái)構(gòu)建一個(gè)應(yīng)用系統(tǒng)微服務(wù)具備自包含性,可作為獨(dú)立的進(jìn)程存在不同微服務(wù)之間通過一些輕量級(jí)交互機(jī)制來(lái)通信,通常是HTTP型的API業(yè)務(wù)視角單一職責(zé)原則 (Single Responsibility Principle)按照業(yè)務(wù)(而非技術(shù))的邊界來(lái)確定服務(wù)的邊界第6頁(yè),共28頁(yè)。提升迭代效率與傳統(tǒng)單體架構(gòu)應(yīng)用不 同,每個(gè)微服務(wù)是一個(gè) 能獨(dú)立發(fā)布的應(yīng)用服 務(wù),可作為獨(dú)立組件進(jìn) 行編譯、部署升級(jí)代價(jià)小,大大提 升效率,需求變更響應(yīng) 速度快彈性擴(kuò)展

4、容錯(cuò)能力豐富的技術(shù)棧提高組織效率單體架構(gòu)緊耦合,而微 服務(wù)強(qiáng)調(diào)模塊化的結(jié)構(gòu), 微服務(wù)之間是松耦合的在應(yīng)用擴(kuò)展時(shí),僅需擴(kuò) 展有瓶頸的微服務(wù),有 利于應(yīng)用的模塊化擴(kuò) 展單體架構(gòu)應(yīng)用所有功能 在同一進(jìn)程內(nèi)實(shí)現(xiàn),一 個(gè)功能bug可能導(dǎo)致整 體崩潰,而微服務(wù)可實(shí) 現(xiàn)進(jìn)程級(jí)別隔離每個(gè)微服務(wù)是自治的, 單個(gè)服務(wù)的異常通常不 會(huì)導(dǎo)致整個(gè)系統(tǒng)的故障根據(jù)業(yè)務(wù)的需求,不同 的服務(wù)可以根據(jù)業(yè)務(wù)特 性實(shí)現(xiàn)靈活的技術(shù)選型不同的微服務(wù)可以依賴 不同的編程語(yǔ)言、開發(fā) 框架以及數(shù)據(jù)存儲(chǔ)技術(shù)。 針對(duì)不同的微服務(wù),可 以選擇最合適的技術(shù)棧每個(gè)微服務(wù)可以由獨(dú)立 的Team開發(fā)和維護(hù),依 賴方按照統(tǒng)一的接口規(guī) 范定義好輸入和輸出即 可

5、,溝通成本低、效率 高“2 pizza”原則,團(tuán)隊(duì) 小而精,釋放生產(chǎn)力12345第7頁(yè),共28頁(yè)。2017,基于云環(huán)境的創(chuàng)新模式設(shè)計(jì)者和開發(fā)者的比例直線上升第8頁(yè),共28頁(yè)。Step 1架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)微服務(wù)開發(fā)框架:Spring Cloud / Dubbo / 支撐平臺(tái):容器(Kubernetes / Docker / )IaaS平臺(tái)(OpenStack / 公有云 / )PaaS平臺(tái)(OpenShift / CloudFoundry / )業(yè)務(wù)域&技術(shù)域技術(shù)域組織結(jié)構(gòu)域&技術(shù)域DevOps持續(xù)集成: Jenkins / 代碼管理: GitLab / GitHub / 自動(dòng)部署:Ansible

6、 / Puppet / Step 2Step 3服務(wù)建模微服務(wù)拆分:領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) (DDD)第9頁(yè),共28頁(yè)。第10頁(yè),共28頁(yè)。Kubernetes設(shè)計(jì)理念源于Google過去15年在生產(chǎn)環(huán)境中運(yùn)行容器的管理經(jīng) 驗(yàn)(前身為Google數(shù)據(jù)中心資源管理系統(tǒng)Borg)2014年開源,目前已經(jīng)迭代到V1.5版本為管理容器而生,核心是面向應(yīng)用集合了社區(qū)中先進(jìn)的理念和實(shí)戰(zhàn)技術(shù)由CNCF(Cloud Native Computing Foundation) 管理主要功能完備的應(yīng)用生命周期管理彈性伸縮負(fù)載均衡服務(wù)編排服務(wù)發(fā)現(xiàn)資源調(diào)度服務(wù)自愈機(jī)制第11頁(yè),共28頁(yè)。服務(wù)發(fā)現(xiàn)Kube-DNSService配置

7、中心ConfigMapSecret負(fù)載均衡Kube-ProxyService容錯(cuò)性Self-HealingHealth Check彈性伸縮Auto-Scaling服務(wù)編排DeploymentHelm任務(wù)管理JobCronJob日志管理EFK監(jiān)控PrometheusHeapster升級(jí)Rolling-Update第12頁(yè),共28頁(yè)。kubednsdnsmasqexechealthzPodK8s livenessProbeK8s ServiceKube-DNSLookup upstreamnslookupnslookupHealth APIService ClusterIPLookup with

8、ServiceName.NamespaceK8s ServiceresourcesList/watch API基于云平臺(tái)構(gòu)建的微服務(wù)架構(gòu)的應(yīng)用,由于頻繁的擴(kuò)縮容和更新升級(jí),微服務(wù)的網(wǎng)絡(luò)標(biāo)識(shí)經(jīng)常會(huì)動(dòng)態(tài)變化,因此需要引入服務(wù)發(fā)現(xiàn)機(jī)制服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)方式:云平臺(tái)內(nèi)置的服務(wù)發(fā)現(xiàn)組件、自建服務(wù)發(fā)現(xiàn)系統(tǒng)(如Etcd、ZooKeeper、Consul)、微服務(wù)框架(如SpringCloud Eureka)Kubernetes通過集群內(nèi)部的DNS服務(wù)(Kube-DNS),配合Service,實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)實(shí)現(xiàn)原理: Kubernetes將Service的名稱當(dāng)做域名注冊(cè)到Kube-DNS中,通過DNS服務(wù)完成Se

9、rvice名稱到Service的ClusterIP的解析,因此通過Service的名稱就可以訪問其提供的服務(wù)第13頁(yè),共28頁(yè)。企業(yè)級(jí)應(yīng)用的配置管理復(fù)雜:配置信息的種類繁多多套環(huán)境并存:開發(fā)、測(cè)試、預(yù)發(fā)布、生產(chǎn)采用微服務(wù)設(shè)計(jì),服務(wù)數(shù)量增加導(dǎo)致配置管理復(fù)雜度增加ConfigMapService A-1Service B-1Service A-2Service B-2配置更新繁瑣:更新配置經(jīng)常需要重新構(gòu)建、部署應(yīng)用構(gòu)建微服務(wù)架構(gòu)的統(tǒng)一配置中心:Kubernetes ConfigMap配置與容器應(yīng)用分離集中管理應(yīng)用配置批量動(dòng)態(tài)更新應(yīng)用配置Secret:處理敏感信息第14頁(yè),共28頁(yè)。Service

10、ClusterIP : PortNodeNodePodPodPodPodPodPodKube-Proxy (Iptables)外部 ClientPodKubernetes Service到后端一組Pod實(shí)例的負(fù)載均衡和請(qǐng)求轉(zhuǎn)發(fā), 由Kubernetes組件Kube-Proxy實(shí)現(xiàn)Kube-Proxy借助Iptables工具,設(shè)置轉(zhuǎn)發(fā)規(guī)則,將Service的流量進(jìn)行重定向默認(rèn)采用輪詢方式(Round Robin)進(jìn)行分配,支持會(huì)話保持外部負(fù)載均衡實(shí)現(xiàn):自建軟件/硬件負(fù)載均衡器(HAProxy/Nginx/F5)Kubernetes Ingress使用IaaS平臺(tái)的負(fù)載均衡器第15頁(yè),共28頁(yè)。應(yīng)

11、對(duì)高并發(fā)高流量業(yè)務(wù)場(chǎng)景定時(shí)性/周期性秒殺活動(dòng)促銷活動(dòng)定時(shí)搶票突發(fā)性突發(fā)應(yīng)急性事件熱點(diǎn)事件提前規(guī)劃, 手動(dòng)實(shí)施彈 性伸縮基于監(jiān)控指 標(biāo),設(shè)置自 動(dòng)彈性伸縮典型應(yīng)用行業(yè)金融電商運(yùn)營(yíng)商公共服務(wù)應(yīng)急管理調(diào)整RC/RS 控制的Pod 實(shí)例副本數(shù) 量設(shè)置HPA, 根據(jù)Pod負(fù) 載動(dòng)態(tài)調(diào)整 實(shí)例數(shù)量第16頁(yè),共28頁(yè)。故障自愈(Self-Healing):容器異常時(shí),自動(dòng)重啟Node節(jié)點(diǎn)宕機(jī)時(shí),重新調(diào)度并啟動(dòng)容器應(yīng)用健康檢查(Health-Check):Liveness探針:檢查容器是否處于運(yùn)行狀態(tài),如檢測(cè)到容器運(yùn)行狀態(tài)不正常,則Kubelet會(huì) 殺掉容器,并根據(jù)設(shè)置的Restart Policy進(jìn)行相應(yīng)操

12、作(如本地重啟)Readness探針:判斷容器內(nèi)服務(wù)是否已正常工作,如未啟動(dòng)完成或工作異常,則將該服務(wù) 所在Pod的IP從Service的Endpoint中移除,不接受請(qǐng)求三種類型的檢測(cè):TCP檢查:通過容器的IP和端口號(hào)進(jìn)行TCP檢查HTTP檢查:通過容器的IP、端口號(hào)及路徑,進(jìn)行HTTP檢查在容器內(nèi)部執(zhí)行一條命令,以判斷容器健康狀態(tài)第17頁(yè),共28頁(yè)。Deployment 編排文件示例副本數(shù)量Pod定義模板Deployment對(duì)Pod和Replica Set的定義和描述模板,目的 是更好的解決容器應(yīng)用的編排問題典型應(yīng)用場(chǎng)景:通過創(chuàng)建Deployment對(duì)象來(lái)生成Pod和RSDeployme

13、nt更新/回滾(均采用灰度方式)檢查Deployment狀態(tài)來(lái)查看部署進(jìn)度Helm項(xiàng)目第18頁(yè),共28頁(yè)?;叶壬?jí):采用Kubernetes原生的灰度升級(jí)方式,保證業(yè)務(wù)系統(tǒng)在升級(jí)過程中不中斷,升級(jí)過程中新/舊版本并存快速回滾:Docker鏡像版本管理機(jī)制,在升級(jí)發(fā)生問題時(shí),保障鏡像版本可隨時(shí)進(jìn)行回滾操作降低微服務(wù)升級(jí)的風(fēng)險(xiǎn)第19頁(yè),共28頁(yè)。第20頁(yè),共28頁(yè)。狀態(tài)問題:有狀態(tài)(集群)服務(wù)并不完全適合部署在容器上,如何處理?管理問題:容器需要與虛擬機(jī)、物理機(jī)協(xié)同工作,如何管理和編排?安全問題:容器化微服務(wù)應(yīng)用,應(yīng)用之間如何實(shí)現(xiàn)安全隔離?新的問題網(wǎng)絡(luò)問題:異構(gòu)支撐平臺(tái)的SDN網(wǎng)絡(luò)解決方案,如何選

14、擇?存儲(chǔ)問題:異構(gòu)支撐平臺(tái)的軟件定義存儲(chǔ)解決方案,如何選擇?通過Kubernetes與OpenStack的融合,構(gòu)建一體化支撐平臺(tái)第21頁(yè),共28頁(yè)。OpenStack專注于云數(shù)據(jù)中心基礎(chǔ)設(shè) 施的編排、管理和調(diào)度Kubernetes以應(yīng)用為中心,專注于創(chuàng)新型云原生應(yīng)用的交付和管理融合架構(gòu)愿景1+1 2二者優(yōu)勢(shì)互補(bǔ),打通云數(shù)據(jù)中心 新一代應(yīng)用交付的最后一公里加速應(yīng)用交付,助力業(yè)務(wù)創(chuàng)新第22頁(yè),共28頁(yè)。一體化運(yùn)維管理統(tǒng)一管理視圖統(tǒng)一編排統(tǒng)一應(yīng)用中心統(tǒng)一網(wǎng)絡(luò)鏡像管理容器集群管理企業(yè)級(jí)容器云平臺(tái)DevOps應(yīng)用管理Neutron統(tǒng)一存儲(chǔ)計(jì)算資源管理企業(yè)級(jí)OpenStack平臺(tái) 網(wǎng)絡(luò)資源管理存儲(chǔ)資源管

15、理LBaaS / FWaaS / VPNaaS / Cinder / ManilaCeph 分布式存儲(chǔ)集中式商業(yè)存儲(chǔ)虛擬機(jī)物理機(jī)VMVMVMVM監(jiān)控告警日志管理租戶管理安全認(rèn)證計(jì)量計(jì)費(fèi)自動(dòng)部署Kubernetes容器集群容器VMVMVM虛擬機(jī)Kubernetes容器集群容器 物理機(jī)第23頁(yè),共28頁(yè)。接入API層AppAppAppWEB負(fù)載均衡器ZoZookoekeepeepre集r集群群(服務(wù)Z注oZoo冊(cè)koe和keep發(fā)eep現(xiàn)re集)r集群群(服服務(wù)務(wù)注Z注o冊(cè)o冊(cè)和ke和發(fā)ep發(fā)現(xiàn)e現(xiàn))r集)群(服服務(wù)務(wù)注注冊(cè)冊(cè)和和發(fā)發(fā)現(xiàn)現(xiàn))負(fù)載均衡器負(fù)載均衡器登錄服務(wù) 下單服務(wù)搶單服務(wù) 下單服務(wù)

16、搶單服務(wù) 監(jiān)控指揮 搶單服務(wù) 監(jiān)控指揮撮合系統(tǒng) 廣告操控 路徑分析撮合系統(tǒng) 廣告操控 路徑分析 撮合系統(tǒng) 廣告操控 路徑分析ReRdeids集is集群群(緩緩存存服Re服務(wù)di務(wù)器s集器)群)(緩存服務(wù)器)MMonognogDoBD集B集群群(文文檔M檔型o型n數(shù)g數(shù)據(jù)oD據(jù)庫(kù)B庫(kù))集)群(文檔型數(shù)據(jù)庫(kù))MMMaraaiarriDiaaBDDBB集群(關(guān)系型數(shù)據(jù)庫(kù))微服務(wù)應(yīng)用層登錄服務(wù)優(yōu)惠券統(tǒng)計(jì)分析登錄服務(wù)優(yōu)惠券統(tǒng)計(jì)分析支付支付 清算 清算RPC狀態(tài)數(shù)據(jù),撮合數(shù)據(jù), 訂單數(shù)據(jù)位置數(shù)據(jù)訂單數(shù)據(jù)請(qǐng)求服務(wù)AppAppAppWEBWEBWEBAPIAPISocket SocketRestRestAPIAPISocket SocketRestRestAPIAPISocket SocketRestRestAPIAPISocket Socket RestRest第24頁(yè),共28頁(yè)。統(tǒng) 一云 計(jì) 算 管 理平 臺(tái) 裸機(jī) 部署區(qū)容器 部署區(qū)虛機(jī) 部署區(qū)登錄服務(wù)搶單 服務(wù)撮合系統(tǒng)優(yōu)惠券下單服務(wù)登錄 服務(wù)搶單 服務(wù)撮合 系統(tǒng)優(yōu)惠券下單 服務(wù)支付清算支付清算API服務(wù)VMAPI服務(wù)VMZooke eper VMRedisVMRedisVM監(jiān)控指揮統(tǒng)計(jì)分析廣告 操控路徑 分

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論