微服務云平臺及DEVOPS培訓PPT課件_第1頁
微服務云平臺及DEVOPS培訓PPT課件_第2頁
微服務云平臺及DEVOPS培訓PPT課件_第3頁
微服務云平臺及DEVOPS培訓PPT課件_第4頁
微服務云平臺及DEVOPS培訓PPT課件_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/3/91 微服務及DEVOPS 楊鵬 2020年02月2021/3/92PART 01微服務介紹PART 02 持續(xù)集成持續(xù)構(gòu)建PART 03Devops介紹2021/3/93”微”即是小由一系列小服務組成獨立運行每個服務運行于自己的獨立進程業(yè)務建模圍繞著業(yè)務功能進行建模獨立部署每個服務獨立部署5分散式管理最低限度的集中管理微服務簡介2021/3/94單體服務架構(gòu)單體服務架構(gòu)用戶模塊訂單模塊產(chǎn)品模塊財務模塊公共模塊可用性低,宕機全死服務器要求高項目臃腫,代碼量飆升,耦合性過大系統(tǒng)架構(gòu)、業(yè)務架構(gòu)簡單,容易理解集中部署,運維容易2021/3/95微服務架構(gòu)微服務架構(gòu)用戶訂單財務產(chǎn)品郵件配

2、置業(yè)務架構(gòu)復雜拆分粒度難以界定部署維護困難高可用硬件配置低水平擴展業(yè)務簡單快速響應耦合性低支持異構(gòu)業(yè)務內(nèi)聚分布式2021/3/96單體架構(gòu)的訪問單體架構(gòu)的訪問用戶模塊訂單模塊產(chǎn)品模塊財務模塊公共模塊2021/3/97微服務架構(gòu)的訪問微服務架構(gòu)的訪問訂單財務產(chǎn)品郵件 6:800 1:8002800 2:8003 3:8004 4:8005 5:8006訪問關(guān)系復雜用戶1模塊用戶2用戶n 7:800 8:8002每個服務足夠內(nèi)聚,足夠小,代碼容易理解、開發(fā)效率提高每

3、個服務足夠內(nèi)聚,足夠小,代碼容易理解、開發(fā)效率提高服務之間可以獨立部署,微服務架構(gòu)讓持續(xù)部署成為可能服務之間可以獨立部署,微服務架構(gòu)讓持續(xù)部署成為可能;每個服務可以各自進行每個服務可以各自進行x擴展和擴展和z擴展,而且,每個服務可以根據(jù)自擴展,而且,每個服務可以根據(jù)自己的需要部署到合適的硬件服務器上己的需要部署到合適的硬件服務器上;容易擴大開發(fā)團隊,可以針對每個服務容易擴大開發(fā)團隊,可以針對每個服務(service)組件開發(fā)團隊組件開發(fā)團隊;提高容錯性提高容錯性(fault isolation),一個服務的內(nèi)存泄露并不會讓整個,一個服務的內(nèi)存泄露并不會讓整個系統(tǒng)癱瘓系統(tǒng)癱瘓;系統(tǒng)不會被長期限制

4、在某個技術(shù)棧上。系統(tǒng)不會被長期限制在某個技術(shù)棧上。1、同一功能的微服務部署多個,怎么訪問配置?、同一功能的微服務部署多個,怎么訪問配置?配置管理;配置管理;2、服務是否正常,怎么監(jiān)控?即:、服務是否正常,怎么監(jiān)控?即:服務的注冊和發(fā)現(xiàn);服務的注冊和發(fā)現(xiàn);3、怎么判斷服務壓力,壓力大時怎么進行熔斷?、怎么判斷服務壓力,壓力大時怎么進行熔斷?服務容錯;服務容錯;4、多態(tài)服務器的服務,怎么進行負載均衡;、多態(tài)服務器的服務,怎么進行負載均衡;負載均衡,服務網(wǎng)關(guān);負載均衡,服務網(wǎng)關(guān);2021/3/98Spring cloud與與Spring Boot的關(guān)系的關(guān)系 Spring boot 是 Spring

5、 的一套快速配置腳手架,可以基于spring boot 快速開發(fā)單個微服務,Spring Cloud是一個基于Spring Boot實現(xiàn)的云應用開發(fā)工具; Spring boot專注于快速、方便集成的單個個體,Spring Cloud是關(guān)注全局的服務治理框架; spring boot使用了默認大于配置的理念,很多集成方案已經(jīng)幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot來實現(xiàn)2021/3/99Spring Cloud組件組件 一一Spring Cloud Config配置管理開發(fā)工具包,可以讓你把配置放到遠程服務器,目前支持本地存儲、Git以及

6、Subversion。Spring Cloud Bus事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署。 Netflix Hystrix容錯管理工具,旨在通過控制服務和第三方庫的節(jié)點,從而對延遲和故障提供更強大的容錯能力。Spring Cloud for Cloud Foundry通過Oauth2協(xié)議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS云平臺。Spring Cloud Netflix針對多種Netflix組件提供的開發(fā)工具包,其中包括Eureka、Hystrix、Zu

7、ul、Archaius等。Netflix Eureka云端負載均衡,一個基于 REST 的服務,用于定位服務,以實現(xiàn)云端的負載均衡和中間層服務器的故障轉(zhuǎn)移。Netflix Zuul邊緣服務工具,是提供動態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務。 Netflix Archaius配置管理API,包含一系列配置管理API,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調(diào)機制等功能。2021/3/910Spring Cloud組件組件 二二經(jīng)驗總結(jié)246531Spring Cloud Data Flow:大數(shù)據(jù)操作工具,通過命令行方式操作數(shù)據(jù)流。Spring Cloud Security:安全工具包

8、,為你的應用程序添加安全控制,主要是指OAuth2。Spring Cloud Consul:封裝了Consul操作,consul是一個服務發(fā)現(xiàn)與配置工具,與Docker容器可以無縫集成。Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務注冊和發(fā)現(xiàn)。Spring Cloud Stream:數(shù)據(jù)流操作開發(fā)包,封裝了與Redis,Rabbit、Kafka等發(fā)送接收消息。Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。7Spring Cloud Sleuth:日志收集工具包,封裝

9、了Dapper,Zipkin和HTrace操作。2021/3/911服務發(fā)現(xiàn)Netflix Eureka客服端負載均衡Netflix Ribbon斷路器Netflix Hystrix服務網(wǎng)關(guān)Netflix Zuul分布式配置Spring Cloud ConfigSpringCloud分布式開發(fā)五大神獸分布式開發(fā)五大神獸2021/3/912Eureka服務注冊服務注冊123Register:服務注冊當Eureka客戶端向Eureka Server注冊時,它提供自身的元數(shù)據(jù),比如IP地址、端口,運行狀況指示符URL,主頁等。Renew:服務續(xù)約Eureka客戶會每隔30秒發(fā)送一次心跳來續(xù)約。 通過

10、續(xù)約來告知Eureka Server該Eureka客戶仍然存在,沒有出現(xiàn)問題。 正常情況下,如果Eureka Server在90秒沒有收到Eureka客戶的續(xù)約,它會將實例從其注冊表中刪除。Fetch Registries:獲取注冊列表信息Eureka客戶端從服務器獲取注冊表信息,并將其緩存在本地??蛻舳藭褂迷撔畔⒉檎移渌眨瑥亩M行遠程調(diào)用。該注冊列表信息定期(每30秒鐘)更新一次。每次返回注冊列表信息可能與Eureka客戶端的緩存信息不同, Eureka客戶端自動處理。Cancel:服務下線Eureka客戶端在程序關(guān)閉時向Eureka服務器發(fā)送取消請求。 發(fā)送請求后,該客戶端實例信息將

11、從服務器的實例注冊表中刪除。該下線請求不會自動完成,它需要調(diào)用以下內(nèi)容:DiscoveryManager.getInstance().shutdownComponent();5Eviction 服務剔除在默認的情況下,當Eureka客戶端連續(xù)90秒沒有向Eureka服務器發(fā)送服務續(xù)約,即心跳,Eureka服務器會將該服務實例從服務注冊列表刪除,即服務剔除。Eureka的高級架構(gòu)圖2021/3/913Ribbon負載均衡負載均衡123Ribbon的工作第一步有限選擇Eureka Server,它優(yōu)先選擇在同一個Zone且負載較少的Server,第二步在根據(jù)用戶指定的策略,在從Server取到的服

12、務注冊列表中選擇一個地址。其中Ribbon提供了多重策略,例如輪詢round robin、隨機Random、根據(jù)相應時間加權(quán)等。負載均衡策略l 簡單輪詢負載均衡l 加權(quán)響應時間負載均衡l 區(qū)域感知輪詢負載均衡l 隨機負載均衡Ribbon中還包括以下功能:l 易于與服務發(fā)現(xiàn)組件(比如Netflix的Eureka)集成l 使用Archaius完成運行時配置l 使用JMX暴露運維指標,使用Servo發(fā)布l 多種可插拔的序列化選擇Ribbon架構(gòu)圖Eureka Server服務消費者服務提供者1服務提供者2服務提供者3Ribbon注冊注冊注冊注冊可用服務列表負載均衡請求2021/3/914Hystri

13、x熔斷器熔斷器123服務雪崩效應形成的原因l服務提供者不可用l重試加大流量l服務調(diào)用者不可用Hystrix的設計原則包括:l資源隔離l熔斷器l命令模式熔斷器的概念熔斷器即斷路器,斷路器(Cricuit Breaker)是一種能夠在遠程服務不可用時自動熔斷(打開開關(guān)),并在遠程服務恢復時自動恢復(閉合開關(guān))的設施,Spring Cloud通過Netflix的Hystrix組件提供斷路器、資源隔離與自我修復功能。Hystrix架構(gòu)圖2021/3/915ZUUL網(wǎng)關(guān)網(wǎng)關(guān)123驗證與安全保障識別面向各類資源的驗證要求并拒絕那些與要求不符的請求。審查與監(jiān)控在邊緣位置追蹤有意義數(shù)據(jù)及統(tǒng)計結(jié)果,從而為我們帶

14、來準確的生產(chǎn)狀態(tài)結(jié)論。動態(tài)路由以動態(tài)方式根據(jù)需要將請求路由至不同后端集群處。ZUUL架構(gòu)圖4壓力測試逐漸增加指向集群的負載流量,從而計算性能水平。5負載分配為每一種負載類型分配對應容量,并棄用超出限定值的請求。6靜態(tài)響應處理在邊緣位置直接建立部分響應,從而避免其流入內(nèi)部集群。7多區(qū)域彈性跨越AWS區(qū)域進行請求路由,旨在實現(xiàn)ELB使用多樣化并保證邊緣位置與使用者盡可能接近。2021/3/916Spring Cloud Config配置中心配置中心Spring Cloud Config 架構(gòu)圖Spring Cloud Config提供基于以下3個維度的配置管理:應用這個比較好理解,每個配置都是屬于

15、某一個應用的環(huán)境每個配置都是區(qū)分環(huán)境的,如dev, test,uat, prod等版本l 這個可能是一般的配置中心所缺乏的,就是對同一份配置的不同版本管理l Spring Cloud Config提供版本的支持,也就是說對于一個應用的不同部署實例,可以從服務端獲取到不同版本的配置,這對于一些特殊場景如:灰度發(fā)布,A/B測試等提供了很好的支持2021/3/917 產(chǎn)出于spring大家族,spring在企業(yè)級開發(fā)框架中無人能敵,來頭很大,可以保證后續(xù)的更新、完善。比如dubbo現(xiàn)在就差不多死了有spring Boot 這個獨立干將可以省很多事,大大小小的活spring boot都搞的挺不錯。作為

16、一個微服務治理的大家伙,考慮的很全面,幾乎服務治理的方方面面都考慮到了,方便開發(fā)開箱即用。Spring Cloud 活躍度很高,教程很豐富,遇到問題很容易找到解決方案輕輕松松幾行代碼就完成了熔斷、均衡負責、服務中心的各種平臺功能Spring Cloud 的優(yōu)勢的優(yōu)勢2021/3/918PART 01微服務介紹PART 02 持續(xù)集成持續(xù)構(gòu)建PART 03Devops介紹2021/3/9191、微服務一般一個功能、微服務一般一個功能2-3天開發(fā)完畢,微服務的應用改動部署后,并且頻繁的改動,測試的工作量很大,天開發(fā)完畢,微服務的應用改動部署后,并且頻繁的改動,測試的工作量很大,測試人員壓力較大;測

17、試人員壓力較大;2、微服務的應用很多,很多運維環(huán)境需要搭建,運維人員部署、微服務的應用很多,很多運維環(huán)境需要搭建,運維人員部署1000臺臺/10w臺機器,監(jiān)控臺機器,監(jiān)控1000臺臺/10w臺機器,難度加大;臺機器,難度加大;3、其他問題;、其他問題;微服務帶來的測試、集成、構(gòu)建、部署問題DEVOPS我的代碼是好的, 要么是你們部署的姿勢不對,要么就是你們的基礎(chǔ)架構(gòu)有問題基礎(chǔ)設施肯定是好的, 一定是你們代碼的問題2021/3/920微服務帶來的測試、集成、構(gòu)建、部署問題2021/3/921TDD(測試驅(qū)動開發(fā)) TDD得原理是在開發(fā)功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什么

18、產(chǎn)品代碼。 TDD得基本思路就是通過測試來推動整個開發(fā)得進行,但測試驅(qū)動開發(fā)并不只是單純的測試工作,而是把需求分析,設計,質(zhì)量控制量化的過程。 優(yōu)點:在任意一個開發(fā)節(jié)點都可以拿出一個可以使用,含少量bug并具一定功能的產(chǎn)品。 缺點:增加代碼量。測試代碼是系統(tǒng)代碼的兩倍或更多。FDD (特征驅(qū)動開發(fā))敏捷測試的方法2021/3/922CI/CD全過程管理2021/3/923容器Container鏡像images倉庫Repositories執(zhí)行構(gòu)建分發(fā)Docker 的鏡像類似虛擬機的模板,但是更輕量例如:一個鏡像可以包含一個完整的 Linux 操作系統(tǒng)環(huán)境,里面僅安裝了 Tomcat或用戶需要的其

19、它應用程序鏡像可以用來創(chuàng)建容器等同于從模板中創(chuàng)建虛擬機容器是從鏡像創(chuàng)建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺??梢园讶萜骺醋鍪且粋€簡易版的 Linux 環(huán)境(包括root用戶權(quán)限、進程空間、用戶空間和網(wǎng)絡空間等)和運行在其中的應用程序。JAVA項目如何通過Docker實現(xiàn)持續(xù)部署(只需簡單四步),全程無需運維人員參與全程無需運維人員參與即:1 1、開發(fā)人員通過、開發(fā)人員通過git pushgit push上傳代碼上傳代碼2 2、經(jīng)、經(jīng)GitGit和和JenkinsJenkins配合配合3 3、自動完成程序部署、自動完成程序部署4 4、發(fā)布、發(fā)布存放鏡

20、像的集合。倉庫會包含不同軟件的不同版本的鏡像,通過:存儲。分層存儲不同軟件的鏡像。容器管理技術(shù)Docker三大核心概念Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows 機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。即:隔離空間隔離空間。一次執(zhí)行,處處運行一次執(zhí)行,處處運行2021/3/924基于容器構(gòu)筑具備完全一致性的開發(fā)測試環(huán)境Docker開發(fā)環(huán)境Docker功能測試環(huán)境Docker集成測試環(huán)境Docker生產(chǎn)環(huán)境開發(fā)構(gòu)建部署發(fā)布鏡像倉庫代碼庫變更時手動或自動觸發(fā)代碼

21、構(gòu)建代碼構(gòu)建自動形成開發(fā)環(huán)境自動形成測試環(huán)境自動部署到生產(chǎn)環(huán)境測試集成我們項目最初的系統(tǒng)配置管理工作是由架構(gòu)師來做的,主要需要做如下這些事:a)部署運行項目組開發(fā)需要用到公共的服務組件、例如zookeeper注冊中心、DockerRegistry鏡像倉庫、數(shù)據(jù)庫等;b)為子項目編寫在git上打分支的腳本,便于測試發(fā)版的時候打分支;c)編寫各類型應用發(fā)布部署成鏡像的Dockerfile;d)制作或者在網(wǎng)上找到現(xiàn)成的開發(fā)所需環(huán)境的Docker鏡像,并且Push到項目開發(fā)使用的私有鏡像庫中;e)編寫Shell腳本實現(xiàn)將子項目打包成Docker鏡像,并且Push到鏡像倉庫中。f)在Jenkins上配置

22、自動編譯或者部署任務,實現(xiàn)持續(xù)集成和部署2021/3/925容器管理平臺整體架構(gòu)2021/3/926開發(fā)運維集群流程變化2021/3/927容器編排工具的一些關(guān)鍵能力概括如下:集群管理:集群管理:將虛擬機和物理機器的集群管理為一臺大型機器。這些機器在資源能力方面可能有些差異,但大體上都是以Linux作為操作系統(tǒng)的機器。這些虛擬集群可以建立在云上、本地或兩者的混合。部署:部署:能處理有大量機器的應用程序和容器的自動部署。支持多個版本的應用程序容器,并且還支持跨越大量集群機器的滾動升級。這些工具還能夠處理故障回滾。可伸縮性:可伸縮性:支持應用實例的自動和手動伸縮,以性能優(yōu)化為主要目標。健康:健康:

23、它管理集群、節(jié)點和應用程序的健康??梢詮募褐幸瞥惓5臋C器和應用程序?qū)嵗;A(chǔ)結(jié)構(gòu)抽象化:基礎(chǔ)結(jié)構(gòu)抽象化:開發(fā)人員不必擔心機器、容量等問題。完全是容器編排工具來決定如何調(diào)度和運行應用程序。這些工具也抽象化機器的細節(jié)、能力、使用和位置。對于應用程序所有者來說,它們相當于一個容量幾乎無限的大型機器。資源優(yōu)化:資源優(yōu)化:這些工具以有效的方式在一組可用機器上分配容器工作負載,從而降低成本,通過從簡單的到復雜的算法可有效地提高利用率。資源分配:資源分配:基于應用程序開發(fā)人員設置的資源可用性和約束來分配服務器。資源分配將基于約束、規(guī)則、端口要求、應用依賴性、健康等等。服務可用性:服務可用性:確保服務在集

24、群中正常運行。在機器故障的情況下,容器編排會自動通過在集群中的其他機器上重新啟動這些服務來處理故障。敏捷性:敏捷性:敏捷性工具能夠快速分配工作負載到可用資源,或者在資源需求發(fā)生變化時跨機器移動工作量。此外,可以根據(jù)業(yè)務臨界性、業(yè)務優(yōu)先級等來設置約束重新調(diào)整資源。隔離:隔離:一些工具提供了資源隔離。因此,即使應用程序不是容器化的,也可以實現(xiàn)資源隔離。什么容器編排工具2021/3/928容器的編排管理工具K8S2017年docker官方宣布支持K8s;現(xiàn)在國內(nèi)大多數(shù)公司都可使用k8s進行傳統(tǒng)IT服務轉(zhuǎn)換,以實現(xiàn)高效管理等;harbor鏡像倉庫是由VMware開源的一款企業(yè)級鏡像倉庫,它包括權(quán)限管理

25、(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復制等諸多功能。2021/3/929K8s集群搭建K8sK8s集群集群K8s-K8s-存儲存儲K8s-K8s-網(wǎng)絡網(wǎng)絡鏡像倉庫鏡像倉庫業(yè)務部署業(yè)務部署負載均衡負載均衡彈性伸縮彈性伸縮灰度發(fā)布灰度發(fā)布打包打包二進制包+dockerfile2021/3/930灰度發(fā)布典型流程:可部分更新服務,并選擇更新的實例數(shù)如果更新成功,更新會暫??蓪⒉糠至髁恳龑е列聦嵗?,進行測試如果測試通過,可繼續(xù)更新剩余實例如果測試失敗,可將服務回滾至舊版本在任何階段如果更新發(fā)生錯誤,可將服務回滾到舊版本真正的灰度發(fā)布需要實現(xiàn)應用容器化、數(shù)據(jù)庫分布化以及負載均衡的無

26、狀態(tài)切換灰度發(fā)布與容器化(基于K8s或Mesos)2021/3/931DevOps與云平臺的關(guān)系2021/3/932DevOps在大Paas規(guī)劃中的定位DevOps是大Paas平臺規(guī)劃中的核心組成部分,有了DevOps能力才使快速交付、熱修復和灰度發(fā)布成為可能SaaSPaaSIaaS通用fuwuX86服務器DockerVMPower網(wǎng)絡存儲網(wǎng)絡存儲基礎(chǔ)設施業(yè)務能力渠道中心客戶中心營銷中心產(chǎn)品中心客服中心資源中心訂單中心支付中心開通中心合作伙伴計費中心結(jié)算中心賬務中心信用中心賬單中心策略中心IDE開發(fā)工具開發(fā)需求BUG管理版本管理發(fā)布管理開發(fā)流水線 企業(yè)內(nèi)部應用CRMECSESOP對外能力提供數(shù)

27、據(jù)共享電信接口社會服務IPSDocker引擎多租戶管理資源管理組件超市集群管理系統(tǒng)管理服務管理軟件資產(chǎn)管理業(yè)務服務技術(shù)服務COMFRAMECSFDADBLog4XAmberAICache關(guān)系數(shù)據(jù)庫AMBER規(guī)則引擎負載均衡負載均衡MSGFS彈性計算服務大數(shù)據(jù)服務規(guī)則中心統(tǒng)一事件中心日志處理框架二維碼權(quán)限管理框架消息處理中心資源調(diào)度與編排應用生命周期管理技術(shù)能力服務與管理倉庫技術(shù)組件統(tǒng)一異常處理灰度發(fā)布熱修復平臺調(diào)用連分析日志分析配置管理審批管理系統(tǒng)配置Paas平臺門戶運營方OP使用方OP提供方OPDevOps Cloud2021/3/933PART 01微服務介紹PART 02持續(xù)集成持續(xù)構(gòu)建

28、PART 03Devops介紹2021/3/934傳統(tǒng)軟件開發(fā)模式2021/3/935移動互聯(lián)網(wǎng)時代的特征就是快,產(chǎn)品的決策快、推出快、迭代快、變革快,快能抓住機遇、掌握主動??霥evOps開發(fā)運維QA階段要求開發(fā)業(yè)務架構(gòu):多中心、能力開放技術(shù)架構(gòu):SOA、微服務、技術(shù)組件標準化/服務化QA持續(xù)集成自動化測試運維快速發(fā)布、滾動升級、灰度發(fā)布、彈性伸縮開發(fā)、測試、生成環(huán)境的標準化案例分析:支撐系統(tǒng)有2000多萬行代碼,代碼構(gòu)建一次需要40多分鐘;由于各個應用之間錯綜復雜,在集中提交代碼模式下構(gòu)建發(fā)布失敗率超過20%;一次產(chǎn)品發(fā)布需要2周以上的時間流程方法工具互聯(lián)網(wǎng)業(yè)務的變化2021/3/936需

29、求提出需求分析功能設計代碼開發(fā)測試驗證發(fā)布上線運維監(jiān)控1-2個月長周期交付無法及時響應需求變化需求從提出到上線反饋時間長1-2周短周期交付快速響應需求變化自動化測試保證質(zhì)量瀑布式開發(fā)敏捷開發(fā)瀑布式開發(fā)和敏捷開發(fā)2021/3/937業(yè)務人員開發(fā)測試人員運維人員 最終用戶想法市場計劃和需求開發(fā)和測試發(fā)布和部署反饋和優(yōu)化持續(xù)業(yè)務計劃和需求分析協(xié)作式開發(fā)持續(xù)測試持續(xù)監(jiān)控持續(xù)發(fā)布和部署DevOps精益和敏捷原理持續(xù)改進、持續(xù)反饋、持續(xù)優(yōu)化DevOps理念2021/3/938基本原則項目不停、需求不斷持續(xù)迭代、持續(xù)交付Devops的基本定義2021/3/939敏捷開發(fā)CI/CD自動化測試代碼掃描工具成果展

30、示建立融合型的敏捷開發(fā)團隊業(yè)務POMaster團隊運維提供業(yè)務需求及相關(guān)素材、負責需求澄清說明及驗收確認需求轉(zhuǎn)化拆分為用戶故事、面向團隊代表客戶進行需求跟蹤協(xié)助團隊完成迭代任務、排除團隊面臨的障礙、確保團隊遵守敏捷開發(fā)規(guī)則根據(jù)需求實現(xiàn)迭代承諾并交付、完成迭代開發(fā)中的各項工程實踐任務在團隊實現(xiàn)需求時提出運維建議并在迭代評審時進行確認迭代啟動會迭代計劃會每日立會迭代評審迭代回顧迭代開始前3天進行,評估分析可以進入迭代的需求范圍,后續(xù)進行需求分析,時長1小時迭代開始前1天進行,根據(jù)完成分析的需求進行迭代任務拆分,估算任務工作量,時長1小時迭代中每天早上9點點40分準時開始,團隊成員講述任務完成情況,

31、時長15分鐘迭代結(jié)束后進行迭代評審,演示并驗證交付的需求,展示單元測試和自動化測試結(jié)果,時長1小時迭代評審后進行迭代回顧,總結(jié)迭代中的經(jīng)驗教訓,確定下迭代的改進內(nèi)容,時長30分鐘敏捷團隊與會議敏捷宣言的價值觀(四大宣言)敏捷宣言的價值觀(四大宣言) u 個體和交互個體和交互重于重于過程和工具過程和工具u 工作的軟件工作的軟件重于重于詳盡的文檔詳盡的文檔u 客戶合作客戶合作重于重于合同談判合同談判u 響應變化響應變化重于重于遵循計劃遵循計劃三三種種角角色色五五大大會會議議2021/3/940敏捷的進度管理看板每日工作圍繞用戶故事展開 什么是用戶故事什么是用戶故事描述高級的功能代表一小部分終端用戶

32、功能是合作書寫的結(jié)果是對未來的承諾,是“更為詳細的”語言包含書面文字、口頭敘述、圖片等包含了用戶故事的驗收標準的邊界用戶故事和看板的使用例子例子 : :敘述:敘述:作為一個作為一個手機銀行的用戶我想要我想要查看我的賬戶信息所以所以我可以了解我的賬戶活動情況驗收標準驗收標準: :給定給定我已經(jīng)登錄系統(tǒng)我已經(jīng)登錄系統(tǒng)當當我選擇在我的手機銀行賬戶查我選擇在我的手機銀行賬戶查看賬戶信息時看賬戶信息時然后然后我能根據(jù)所選擇的賬戶(賬我能根據(jù)所選擇的賬戶(賬戶名稱、投資理財方案、外匯購買等)戶名稱、投資理財方案、外匯購買等)查看賬戶細節(jié)查看賬戶細節(jié)為什么使用看板?為什么使用看板?看板促進流動的概念,以持續(xù)

33、為客戶/最終用戶提供價值通過可視化工作流程,我們可以為每個人都看到任務,活動和瓶頸正在進行中的工作(WIP)確保我們專注于提高質(zhì)量,增加對任務的關(guān)注,并確保我們停止啟動并開始整理主要原則:主要原則:可視化工作 限制正在進行的工作管理流程 明確制定流程政策 實施反饋回路 協(xié)同改進,實驗演變2021/3/941Sonar效果:1) 阻斷級違規(guī): 405 - 202) 嚴重級違規(guī): 2307-22913) 代碼變更行數(shù): 190 - 360+敏捷開發(fā)CI/CD自動化測試成果展示DevOps實施落地 代碼掃描工具代碼掃描工具2021/3/942開發(fā)活動、測試活動、生產(chǎn)交付活動通過開發(fā)活動、測試活動、生

34、產(chǎn)交付活動通過CICD系統(tǒng)串聯(lián)自動化并全領(lǐng)域覆蓋系統(tǒng)串聯(lián)自動化并全領(lǐng)域覆蓋Agile-敏捷活動CI-持續(xù)集成CD-持續(xù)交付設計開發(fā)需求軟件構(gòu)建(代碼&SQL)代碼掃描單元測試Junit應用部署(測試環(huán)境)自動化測試(接口&UI)集成測試版本交付應用部署(準生產(chǎn)環(huán)境)驗收測試應用部署(生產(chǎn)環(huán)境)系統(tǒng)運營敏捷開發(fā)CI/CD自動化測試成果展示流程節(jié)點可定制DevOps實施落地 CI/CD整體流程圖代碼掃描工具2021/3/943 按交付領(lǐng)域不同的環(huán)境進行分領(lǐng)域多維度的統(tǒng)一管理按交付領(lǐng)域不同的環(huán)境進行分領(lǐng)域多維度的統(tǒng)一管理開發(fā)環(huán)境測試環(huán)境準生產(chǎn)環(huán)境生產(chǎn)環(huán)境分領(lǐng)域集成預處理軟件構(gòu)建部署發(fā)

35、布在線測試多維度敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具DevOps實施落地 CI/CD按環(huán)境管理2021/3/944 開發(fā)人員提交代碼時,開發(fā)人員提交代碼時,CI根據(jù)任務單號自動捕獲、自動編譯、自動測試環(huán)境部署根據(jù)任務單號自動捕獲、自動編譯、自動測試環(huán)境部署需求單提交測試分支構(gòu)建版本生成部署版本生成測試環(huán)境部署交付分支構(gòu)建版本生成準生產(chǎn)環(huán)境部署生產(chǎn)環(huán)境部署交付使用敏捷開發(fā)CI/CD自動化測試成果展示CI/CD任務單提交變更流程代碼掃描工具2021/3/945其他對接系統(tǒng)用戶HA/LVS安全認證API Gateway消息中心消息總線消息路由探測微服務性能測試微服務任務調(diào)度微服務仿真微服

36、務7*24小時業(yè)務監(jiān)控UI及接口自動化測試對壓力性能測試進行管理代碼審查微服務對源碼進行編碼審查安全掃描微服務對系統(tǒng)進行安全掃描Web服務器集群測試過程管理數(shù)據(jù)存儲測試案例管理測試任務管理缺陷管理服務注冊服務發(fā)現(xiàn)共享緩存日志管理配置管理測試計劃管理運維管理自動化測試微服務測試流程管控數(shù)據(jù)存儲Iaas(測試資源管理)可持續(xù)集成敏捷開發(fā)CI/CD自動化測試成果展示DevOps實施落地 自動測試平臺(ATP)代碼掃描工具2021/3/946原理接口測試的原理是通過測試程序模擬客戶端向服務器發(fā)送請求報文,服務器接收請求報文后對相應的報文做出處理然后再把應答報文發(fā)送給客戶端,客戶端接收應答報文這一個過程

37、。目的測試接口的正確性和穩(wěn)定性(持續(xù)集成是接口測試的核心)。 1)LoadRunner:一款商業(yè)性能測試工具,用來做接口測試,很好很強大 2)Jmeter:一款開源的性能測試工具,操作簡單,方便,既有jdbc request操作數(shù)據(jù)庫數(shù)據(jù),也有http request和soap request應對測試 3)poster:火狐瀏覽器自帶接口測試工具,插件中安裝即可,界面簡單明了,容易上手。 4)postman:谷歌瀏覽器的擴展工具,谷歌商店中選中安裝,界面同poster差別不大,界面簡潔 5)SoapUI:開源測試工具,通過soap/http來檢查、調(diào)用、實現(xiàn)Web Service的功能/負載/

38、符合性測試;該工具既可作為一個單獨的接口測試工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具DevOps實施落地 接口自動化測試工具介紹2021/3/947l 自動化測試工具有很多,如QTP,Selenium,RFT,Monkey Test,Jmeter等。五花八門,有開源的也有商業(yè)的,但主流的測試工具還是QTP和Selenium,由于Selenium的開源和強大的瀏覽器兼容性和跨平臺性,正在被越來越多的人使用;l Selenium 測試直接在瀏覽器中運行,就像真實用戶所做的一樣。Sele

39、nium 測試可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Mozilla 和 Firefox 中運行。其他測試工具都不能覆蓋如此多的平臺。使用 Selenium 和在瀏覽器中運行測試還有很多其他好處。l 通過編寫模仿用戶操作的 Selenium 測試腳本,可以從終端用戶的角度來測試應用程序。通過在不同瀏覽器中運行測試,更容易發(fā)現(xiàn)瀏覽器的不兼容性。Selenium 的核心,也稱browser bot,是用 JavaScript 編寫的。這使得測試腳本可以在受支持的瀏覽器中運行。browser bot 負責執(zhí)行從測試腳本接收到的命令,測試腳本

40、或者是用 HTML 的表布局編寫的,或者是使用一種受支持的編程語言編寫的。編程語言可以實現(xiàn)復雜的邏輯,從而實現(xiàn)一些較復雜的測試任務。技術(shù)預研需求分析編寫方案與計劃搭建測試框架腳本,用例,數(shù)據(jù)編寫腳本調(diào)試DevOps實施落地 UI自動化測試工具: Selenium 另外開發(fā)了快速驗證channel、commission、app-web-console等多平臺發(fā)布狀態(tài)的冒煙測試案例,用于日常發(fā)布環(huán)境驗證。UI自動化測試計劃已經(jīng)可以從持續(xù)集成(CI)調(diào)用同步開展CRM和BOSS側(cè)UI自動化測試工作敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具2021/3/948代碼編譯頻率編譯時長部署時長編譯問題

41、處理測試環(huán)境部署頻率SQL合并&執(zhí)行自動化測試持續(xù)集成(編譯、部署、接口&UI自動化)實施前1次/天20分鐘30分鐘人工分析&口頭協(xié)調(diào)1次/天人工收集執(zhí)行無各環(huán)節(jié)人工觸發(fā)實施后大于5次4分鐘7分鐘自動定位&自動郵件=4次/天自動收集執(zhí)行應用部署后自動觸發(fā)約23分鐘流程自動化過程可視化反饋及時化測試常態(tài)化解放人力促進協(xié)同增強溝通保證質(zhì)量問題及早發(fā)現(xiàn)結(jié)果持續(xù)可見過程自動提效持續(xù)集成部署綜合效率提升超過持續(xù)集成部署綜合效率提升超過3 300%,8月份共編譯月份共編譯92次次,部署,部署48次次敏捷開發(fā)CI/CD自動化測試成果展示DevOps實施成果展示 CI/CD過程

42、提效代碼掃描工具2021/3/949團隊進行需求分解快速完成并行任務迭代交付完整需求團隊合作取代單打獨斗知識技能團隊共享團隊能力和士氣快速提升 通過站會、評審、討論、任務完成獎勵等方式提高團隊熟悉程度和信任 成員之間自動產(chǎn)生了提前完成任務的比較心理 新技術(shù)手段的引入,帶來了成員新的學習熱情以團隊合作取代單打獨斗的工作方式,團隊內(nèi)形成了良好的知識分享和技能提升的氛圍,大家可以積極領(lǐng)取任務并保質(zhì)完成,在迭代結(jié)束時可以看到完成的成果,士氣得到了很好的提升。敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具DevOps實施成果展示 團隊能力提升2021/3/950DevOps體系全景圖用戶需求用戶故事用戶故事用戶需求用戶故事用戶故事用戶需求用戶故事用戶故事開發(fā)任務測試任務設計任務單元測試驗證測試開發(fā)任務開發(fā)任務障礙問題計劃會議:PO主持創(chuàng)建Sprint backlog評審會議:PO主持驗收用戶故事回顧會議:只有團隊成員參與好的、待改進、如何改進看板+每日例會:可視化流程鼓勵團隊溝通產(chǎn)品backlog:條目化用戶故事優(yōu)先級排序按用戶故事組織開發(fā)和交付Sprint Backlog:經(jīng)任務分解和估算的用戶故事經(jīng)設計的測試用例可以迭代完成的周期持續(xù)集成:自動化隨需的軟件構(gòu)建、靜態(tài)代碼掃描、單元測試、

溫馨提示

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

最新文檔

評論

0/150

提交評論