版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
微服務(wù)及DEVOPS楊鵬2020年02月微服務(wù)及DEVOPSPART01微服務(wù)介紹PART02
持續(xù)集成持續(xù)構(gòu)建PART03Devops介紹PART01PART02PART03”微”即是小由一系列小服務(wù)組成獨立運行每個服務(wù)運行于自己的獨立進程業(yè)務(wù)建模圍繞著業(yè)務(wù)功能進行建模獨立部署每個服務(wù)獨立部署5分散式管理最低限度的集中管理微服務(wù)更小更強更快微服務(wù)簡介”微”即是小由一系列小服務(wù)組成獨立運行每個服務(wù)運行于自己的獨單體服務(wù)架構(gòu)用戶模塊……訂單模塊產(chǎn)品模塊財務(wù)模塊……公共模塊優(yōu)點:缺點:可用性低,宕機全死服務(wù)器要求高項目臃腫,代碼量飆升,耦合性過大系統(tǒng)架構(gòu)、業(yè)務(wù)架構(gòu)簡單,容易理解集中部署,運維容易單體服務(wù)架構(gòu)用戶模塊……訂單模塊產(chǎn)品模塊財務(wù)模塊……公共模塊微服務(wù)架構(gòu)用戶訂單財務(wù)產(chǎn)品郵件……配置優(yōu)點:缺點:業(yè)務(wù)架構(gòu)復(fù)雜拆分粒度難以界定部署維護困難高可用硬件配置低水平擴展業(yè)務(wù)簡單快速響應(yīng)耦合性低支持異構(gòu)業(yè)務(wù)內(nèi)聚分布式微服務(wù)架構(gòu)用戶訂單財務(wù)產(chǎn)品郵件……配置優(yōu)點:缺點:業(yè)務(wù)架構(gòu)復(fù)單體架構(gòu)的訪問用戶模塊……訂單模塊產(chǎn)品模塊財務(wù)模塊……公共模塊單體架構(gòu)的訪問用戶模塊……訂單模塊產(chǎn)品模塊財務(wù)模塊……公共模微服務(wù)架構(gòu)的訪問訂單財務(wù)產(chǎn)品郵件……10.0.0.6:800110.0.0.1:800210.0.0.2:800310.0.0.3:800410.0.0.4:800510.0.0.5:8006訪問關(guān)系復(fù)雜用戶1模塊用戶2用戶n10.0.0.7:800210.0.0.8:8002每個服務(wù)足夠內(nèi)聚,足夠小,代碼容易理解、開發(fā)效率提高服務(wù)之間可以獨立部署,微服務(wù)架構(gòu)讓持續(xù)部署成為可能;每個服務(wù)可以各自進行x擴展和z擴展,而且,每個服務(wù)可以根據(jù)自己的需要部署到合適的硬件服務(wù)器上;容易擴大開發(fā)團隊,可以針對每個服務(wù)(service)組件開發(fā)團隊;提高容錯性(faultisolation),一個服務(wù)的內(nèi)存泄露并不會讓整個系統(tǒng)癱瘓;系統(tǒng)不會被長期限制在某個技術(shù)棧上。1、同一功能的微服務(wù)部署多個,怎么訪問配置?配置管理;2、服務(wù)是否正常,怎么監(jiān)控?即:服務(wù)的注冊和發(fā)現(xiàn);3、怎么判斷服務(wù)壓力,壓力大時怎么進行熔斷?服務(wù)容錯;4、多態(tài)服務(wù)器的服務(wù),怎么進行負載均衡;負載均衡,服務(wù)網(wǎng)關(guān);微服務(wù)架構(gòu)的訪問訂單財務(wù)產(chǎn)品郵件……:800Springcloud與SpringBoot的關(guān)系Springboot是Spring的一套快速配置腳手架,可以基于springboot快速開發(fā)單個微服務(wù),SpringCloud是一個基于SpringBoot實現(xiàn)的云應(yīng)用開發(fā)工具;Springboot專注于快速、方便集成的單個個體,SpringCloud是關(guān)注全局的服務(wù)治理框架;springboot使用了默認大于配置的理念,很多集成方案已經(jīng)幫你選擇好了,能不配置就不配置,SpringCloud很大的一部分是基于Springboot來實現(xiàn)Springcloud與SpringBoot的關(guān)系SprSpringCloud組件一SpringCloudConfig配置管理開發(fā)工具包,可以讓你把配置放到遠程服務(wù)器,目前支持本地存儲、Git以及Subversion。SpringCloudBus事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與SpringCloudConfig聯(lián)合實現(xiàn)熱部署。
NetflixHystrix容錯管理工具,旨在通過控制服務(wù)和第三方庫的節(jié)點,從而對延遲和故障提供更強大的容錯能力。SpringCloudforCloudFoundry通過Oauth2協(xié)議綁定服務(wù)到CloudFoundry,CloudFoundry是VMware推出的開源PaaS云平臺。SpringCloudNetflix針對多種Netflix組件提供的開發(fā)工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。NetflixEureka云端負載均衡,一個基于REST的服務(wù),用于定位服務(wù),以實現(xiàn)云端的負載均衡和中間層服務(wù)器的故障轉(zhuǎn)移。NetflixZuul邊緣服務(wù)工具,是提供動態(tài)路由,監(jiān)控,彈性,安全等的邊緣服務(wù)。
NetflixArchaius配置管理API,包含一系列配置管理API,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調(diào)機制等功能。SpringCloud組件一SpringCloudCSpringCloud組件二經(jīng)驗總結(jié)246531SpringCloudDataFlow:大數(shù)據(jù)操作工具,通過命令行方式操作數(shù)據(jù)流。SpringCloudSecurity:安全工具包,為你的應(yīng)用程序添加安全控制,主要是指OAuth2。SpringCloudConsul:封裝了Consul操作,consul是一個服務(wù)發(fā)現(xiàn)與配置工具,與Docker容器可以無縫集成。SpringCloudZookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務(wù)注冊和發(fā)現(xiàn)。SpringCloudStream:數(shù)據(jù)流操作開發(fā)包,封裝了與Redis,Rabbit、Kafka等發(fā)送接收消息。SpringCloudCLI:基于SpringBootCLI,可以讓你以命令行方式快速建立云組件。7SpringCloudSleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。SpringCloud組件二經(jīng)驗總結(jié)246531Spri服務(wù)發(fā)現(xiàn)NetflixEureka客服端負載均衡NetflixRibbon斷路器NetflixHystrix服務(wù)網(wǎng)關(guān)NetflixZuul分布式配置SpringCloudConfigSpringCloud分布式開發(fā)五大神獸服務(wù)發(fā)現(xiàn)NetflixEureka客服端負載均衡NetflEureka服務(wù)注冊123Register:服務(wù)注冊當(dāng)Eureka客戶端向EurekaServer注冊時,它提供自身的元數(shù)據(jù),比如IP地址、端口,運行狀況指示符URL,主頁等。Renew:服務(wù)續(xù)約
Eureka客戶會每隔30秒發(fā)送一次心跳來續(xù)約。通過續(xù)約來告知EurekaServer該Eureka客戶仍然存在,沒有出現(xiàn)問題。正常情況下,如果EurekaServer在90秒沒有收到Eureka客戶的續(xù)約,它會將實例從其注冊表中刪除。
FetchRegistries:獲取注冊列表信息Eureka客戶端從服務(wù)器獲取注冊表信息,并將其緩存在本地??蛻舳藭褂迷撔畔⒉檎移渌?wù),從而進行遠程調(diào)用。該注冊列表信息定期(每30秒鐘)更新一次。每次返回注冊列表信息可能與Eureka客戶端的緩存信息不同,Eureka客戶端自動處理。Cancel:服務(wù)下線Eureka客戶端在程序關(guān)閉時向Eureka服務(wù)器發(fā)送取消請求。發(fā)送請求后,該客戶端實例信息將從服務(wù)器的實例注冊表中刪除。該下線請求不會自動完成,它需要調(diào)用以下內(nèi)容:
DiscoveryManager.getInstance().shutdownComponent();5Eviction服務(wù)剔除在默認的情況下,當(dāng)Eureka客戶端連續(xù)90秒沒有向Eureka服務(wù)器發(fā)送服務(wù)續(xù)約,即心跳,Eureka服務(wù)器會將該服務(wù)實例從服務(wù)注冊列表刪除,即服務(wù)剔除。Eureka的高級架構(gòu)圖Eureka服務(wù)注冊123Register:服務(wù)注冊當(dāng)EurRibbon負載均衡123Ribbon的工作
第一步有限選擇EurekaServer,它優(yōu)先選擇在同一個Zone且負載較少的Server,
第二步在根據(jù)用戶指定的策略,在從Server取到的服務(wù)注冊列表中選擇一個地址。其中Ribbon提供了多重策略,例如輪詢roundrobin、隨機Random、根據(jù)相應(yīng)時間加權(quán)等。負載均衡策略
簡單輪詢負載均衡加權(quán)響應(yīng)時間負載均衡區(qū)域感知輪詢負載均衡隨機負載均衡Ribbon中還包括以下功能:易于與服務(wù)發(fā)現(xiàn)組件(比如Netflix的Eureka)集成使用Archaius完成運行時配置使用JMX暴露運維指標,使用Servo發(fā)布多種可插拔的序列化選擇Ribbon架構(gòu)圖EurekaServer服務(wù)消費者服務(wù)提供者1服務(wù)提供者2服務(wù)提供者3Ribbon注冊注冊注冊注冊可用服務(wù)列表負載均衡請求Ribbon負載均衡123Ribbon的工作
第一步有限選擇Hystrix熔斷器123服務(wù)雪崩效應(yīng)形成的原因
服務(wù)提供者不可用重試加大流量服務(wù)調(diào)用者不可用Hystrix的設(shè)計原則包括:
資源隔離熔斷器命令模式熔斷器的概念熔斷器即斷路器,斷路器(CricuitBreaker)是一種能夠在遠程服務(wù)不可用時自動熔斷(打開開關(guān)),并在遠程服務(wù)恢復(fù)時自動恢復(fù)(閉合開關(guān))的設(shè)施,SpringCloud通過Netflix的Hystrix組件提供斷路器、資源隔離與自我修復(fù)功能。
Hystrix架構(gòu)圖Hystrix熔斷器123服務(wù)雪崩效應(yīng)形成的原因服務(wù)提供者不ZUUL網(wǎng)關(guān)123驗證與安全保障
識別面向各類資源的驗證要求并拒絕那些與要求不符的請求。審查與監(jiān)控在邊緣位置追蹤有意義數(shù)據(jù)及統(tǒng)計結(jié)果,從而為我們帶來準確的生產(chǎn)狀態(tài)結(jié)論。動態(tài)路由以動態(tài)方式根據(jù)需要將請求路由至不同后端集群處。ZUUL架構(gòu)圖4壓力測試逐漸增加指向集群的負載流量,從而計算性能水平。5負載分配為每一種負載類型分配對應(yīng)容量,并棄用超出限定值的請求。6靜態(tài)響應(yīng)處理在邊緣位置直接建立部分響應(yīng),從而避免其流入內(nèi)部集群。7多區(qū)域彈性跨越AWS區(qū)域進行請求路由,旨在實現(xiàn)ELB使用多樣化并保證邊緣位置與使用者盡可能接近。ZUUL網(wǎng)關(guān)123驗證與安全保障
識別面向各類資源的驗證要求SpringCloudConfig配置中心SpringCloudConfig架構(gòu)圖SpringCloudConfig提供基于以下3個維度的配置管理:應(yīng)用這個比較好理解,每個配置都是屬于某一個應(yīng)用的環(huán)境每個配置都是區(qū)分環(huán)境的,如dev,test,uat,prod等版本這個可能是一般的配置中心所缺乏的,就是對同一份配置的不同版本管理SpringCloudConfig提供版本的支持,也就是說對于一個應(yīng)用的不同部署實例,可以從服務(wù)端獲取到不同版本的配置,這對于一些特殊場景如:灰度發(fā)布,A/B測試等提供了很好的支持SpringCloudConfig配置中心Spring
產(chǎn)出于spring大家族,spring在企業(yè)級開發(fā)框架中無人能敵,來頭很大,可以保證后續(xù)的更新、完善。比如dubbo現(xiàn)在就差不多死了有springBoot這個獨立干將可以省很多事,大大小小的活springboot都搞的挺不錯。作為一個微服務(wù)治理的大家伙,考慮的很全面,幾乎服務(wù)治理的方方面面都考慮到了,方便開發(fā)開箱即用。SpringCloud活躍度很高,教程很豐富,遇到問題很容易找到解決方案輕輕松松幾行代碼就完成了熔斷、均衡負責(zé)、服務(wù)中心的各種平臺功能SpringCloud的優(yōu)勢SpringCloud的優(yōu)勢PART01微服務(wù)介紹PART02
持續(xù)集成持續(xù)構(gòu)建PART03Devops介紹PART01PART02PART031、微服務(wù)一般一個功能2-3天開發(fā)完畢,微服務(wù)的應(yīng)用改動部署后,并且頻繁的改動,測試的工作量很大,測試人員壓力較大;2、微服務(wù)的應(yīng)用很多,很多運維環(huán)境需要搭建,運維人員部署1000臺/10w臺機器,監(jiān)控1000臺/10w臺機器,難度加大;3、其他問題;微服務(wù)帶來的測試、集成、構(gòu)建、部署問題DEVOPS我的代碼是好的,要么是你們部署的姿勢不對,要么就是你們的基礎(chǔ)架構(gòu)有問題基礎(chǔ)設(shè)施肯定是好的,一定是你們代碼的問題1、微服務(wù)一般一個功能2-3天開發(fā)完畢,微服務(wù)的應(yīng)用改動部署微服務(wù)帶來的測試、集成、構(gòu)建、部署問題微服務(wù)帶來的測試、集成、構(gòu)建、部署問題TDD(測試驅(qū)動開發(fā))TDD得原理是在開發(fā)功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什么產(chǎn)品代碼。TDD得基本思路就是通過測試來推動整個開發(fā)得進行,但測試驅(qū)動開發(fā)并不只是單純的測試工作,而是把需求分析,設(shè)計,質(zhì)量控制量化的過程。優(yōu)點:在任意一個開發(fā)節(jié)點都可以拿出一個可以使用,含少量bug并具一定功能的產(chǎn)品。缺點:增加代碼量。測試代碼是系統(tǒng)代碼的兩倍或更多。FDD(特征驅(qū)動開發(fā))敏捷測試的方法TDD(測試驅(qū)動開發(fā))TDD得原理是在開發(fā)功能代碼之前,先編CI/CD全過程管理CI/CD全過程管理容器Container鏡像images倉庫Repositories執(zhí)行構(gòu)建分發(fā)Docker的鏡像類似虛擬機的模板,但是更輕量例如:一個鏡像可以包含一個完整的Linux操作系統(tǒng)環(huán)境,里面僅安裝了Tomcat或用戶需要的其它應(yīng)用程序鏡像可以用來創(chuàng)建容器等同于從模板中創(chuàng)建虛擬機容器是從鏡像創(chuàng)建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺??梢园讶萜骺醋鍪且粋€簡易版的Linux環(huán)境(包括root用戶權(quán)限、進程空間、用戶空間和網(wǎng)絡(luò)空間等)和運行在其中的應(yīng)用程序。JAVA項目如何通過Docker實現(xiàn)持續(xù)部署(只需簡單四步),全程無需運維人員參與即:1、開發(fā)人員通過gitpush上傳代碼2、經(jīng)Git和Jenkins配合3、自動完成程序部署4、發(fā)布存放鏡像的集合。倉庫會包含不同軟件的不同版本的鏡像,通過<倉庫嗎>:<標簽>存儲。分層存儲不同軟件的鏡像。容器管理技術(shù)Docker三大核心概念Docker是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的
Linux或Windows機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。即:隔離空間。一次執(zhí)行,處處運行容器鏡像倉庫執(zhí)行構(gòu)建分發(fā)Docker的鏡像類似虛擬機的模板基于容器構(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ā)代碼構(gòu)建代碼構(gòu)建自動形成開發(fā)環(huán)境自動形成測試環(huán)境自動部署到生產(chǎn)環(huán)境測試集成我們項目最初的系統(tǒng)配置管理工作是由架構(gòu)師來做的,主要需要做如下這些事:?a)?部署運行項目組開發(fā)需要用到公共的服務(wù)組件、例如zookeeper注冊中心、Docker?Registry鏡像倉庫、數(shù)據(jù)庫等;?b)?為子項目編寫在git上打分支的腳本,便于測試發(fā)版的時候打分支;c)?編寫各類型應(yīng)用發(fā)布部署成鏡像的Dockerfile;?d)?制作或者在網(wǎng)上找到現(xiàn)成的開發(fā)所需環(huán)境的Docker鏡像,并且Push到項目開發(fā)使用的私有鏡像庫中;?e)?編寫Shell腳本實現(xiàn)將子項目打包成Docker鏡像,并且Push到鏡像倉庫中。?f)?在Jenkins上配置自動編譯或者部署任務(wù),實現(xiàn)持續(xù)集成和部署基于容器構(gòu)筑具備完全一致性的開發(fā)測試環(huán)境DockerDock容器管理平臺整體架構(gòu)容器管理平臺整體架構(gòu)開發(fā)運維集群流程變化開發(fā)運維集群流程變化容器編排工具的一些關(guān)鍵能力概括如下:集群管理:將虛擬機和物理機器的集群管理為一臺大型機器。這些機器在資源能力方面可能有些差異,但大體上都是以Linux作為操作系統(tǒng)的機器。這些虛擬集群可以建立在云上、本地或兩者的混合。部署:能處理有大量機器的應(yīng)用程序和容器的自動部署。支持多個版本的應(yīng)用程序容器,并且還支持跨越大量集群機器的滾動升級。這些工具還能夠處理故障回滾??缮炜s性:支持應(yīng)用實例的自動和手動伸縮,以性能優(yōu)化為主要目標。健康:它管理集群、節(jié)點和應(yīng)用程序的健康??梢詮募褐幸瞥惓5臋C器和應(yīng)用程序?qū)嵗;A(chǔ)結(jié)構(gòu)抽象化:開發(fā)人員不必擔(dān)心機器、容量等問題。完全是容器編排工具來決定如何調(diào)度和運行應(yīng)用程序。這些工具也抽象化機器的細節(jié)、能力、使用和位置。對于應(yīng)用程序所有者來說,它們相當(dāng)于一個容量幾乎無限的大型機器。資源優(yōu)化:這些工具以有效的方式在一組可用機器上分配容器工作負載,從而降低成本,通過從簡單的到復(fù)雜的算法可有效地提高利用率。資源分配:基于應(yīng)用程序開發(fā)人員設(shè)置的資源可用性和約束來分配服務(wù)器。資源分配將基于約束、規(guī)則、端口要求、應(yīng)用依賴性、健康等等。服務(wù)可用性:確保服務(wù)在集群中正常運行。在機器故障的情況下,容器編排會自動通過在集群中的其他機器上重新啟動這些服務(wù)來處理故障。敏捷性:敏捷性工具能夠快速分配工作負載到可用資源,或者在資源需求發(fā)生變化時跨機器移動工作量。此外,可以根據(jù)業(yè)務(wù)臨界性、業(yè)務(wù)優(yōu)先級等來設(shè)置約束重新調(diào)整資源。隔離:一些工具提供了資源隔離。因此,即使應(yīng)用程序不是容器化的,也可以實現(xiàn)資源隔離。什么容器編排工具容器編排工具的一些關(guān)鍵能力概括如下:什么容器編排工具容器的編排管理工具K8S2017年docker官方宣布支持K8s;現(xiàn)在國內(nèi)大多數(shù)公司都可使用k8s進行傳統(tǒng)IT服務(wù)轉(zhuǎn)換,以實現(xiàn)高效管理等;harbor鏡像倉庫是由VMware開源的一款企業(yè)級鏡像倉庫,它包括權(quán)限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復(fù)制等諸多功能。容器的編排管理工具K8S2017年docker官方宣布支持KK8s集群搭建K8s集群K8s-存儲K8s-網(wǎng)絡(luò)鏡像倉庫業(yè)務(wù)部署負載均衡彈性伸縮灰度發(fā)布打包二進制包+dockerfileK8s集群搭建K8s集群K8s-存儲K8s-網(wǎng)絡(luò)鏡像倉庫業(yè)務(wù)LB負載均衡CD/云平臺灰度發(fā)布典型流程:可部分更新服務(wù),并選擇更新的實例數(shù)如果更新成功,更新會暫??蓪⒉糠至髁恳龑?dǎo)至新實例,進行測試如果測試通過,可繼續(xù)更新剩余實例如果測試失敗,可將服務(wù)回滾至舊版本在任何階段如果更新發(fā)生錯誤,可將服務(wù)回滾到舊版本真正的灰度發(fā)布需要實現(xiàn)應(yīng)用容器化、數(shù)據(jù)庫分布化以及負載均衡的無狀態(tài)切換灰度發(fā)布與容器化(基于K8s或Mesos)LB負載均衡CD/云平臺灰度發(fā)布典型流程:真正的灰度發(fā)布需要DevOps與云平臺的關(guān)系DevOps與云平臺的關(guān)系DevOps在大Paas規(guī)劃中的定位DevOps是大Paas平臺規(guī)劃中的核心組成部分,有了DevOps能力才使快速交付、熱修復(fù)和灰度發(fā)布成為可能SaaSPaaSIaaS通用fu’wuX86服務(wù)器DockerVMPower網(wǎng)絡(luò)\存儲…網(wǎng)絡(luò)\存儲基礎(chǔ)設(shè)施業(yè)務(wù)能力渠道中心客戶中心營銷中心產(chǎn)品中心客服中心資源中心訂單中心支付中心開通中心合作伙伴計費中心結(jié)算中心賬務(wù)中心信用中心賬單中心策略中心IDE開發(fā)工具開發(fā)需求BUG管理版本管理發(fā)布管理開發(fā)流水線企業(yè)內(nèi)部應(yīng)用CRMECSESOP……對外能力提供數(shù)據(jù)共享電信接口社會服務(wù)……IPSDocker引擎多租戶管理資源管理組件超市集群管理系統(tǒng)管理服務(wù)管理軟件資產(chǎn)管理業(yè)務(wù)服務(wù)技術(shù)服務(wù)COMFRAMECSFDADBLog4XAmberAICache關(guān)系數(shù)據(jù)庫AMBER規(guī)則引擎負載均衡負載均衡MSGFS彈性計算服務(wù)大數(shù)據(jù)服務(wù)規(guī)則中心統(tǒng)一事件中心日志處理框架二維碼權(quán)限管理框架消息處理中心資源調(diào)度與編排應(yīng)用生命周期管理技術(shù)能力服務(wù)與管理倉庫技術(shù)組件統(tǒng)一異常處理灰度發(fā)布熱修復(fù)平臺調(diào)用連分析日志分析配置管理審批管理系統(tǒng)配置Paas平臺門戶運營方OP使用方OP提供方OPDevOpsCloudDevOps在大Paas規(guī)劃中的定位DevOps是大PaasPART01微服務(wù)介紹PART02持續(xù)集成持續(xù)構(gòu)建PART03Devops介紹PART01PART02PART03傳統(tǒng)軟件開發(fā)模式傳統(tǒng)軟件開發(fā)模式移動互聯(lián)網(wǎng)時代的特征就是快,產(chǎn)品的決策快、推出快、迭代快、變革快,快能抓住機遇、掌握主動。生態(tài)變化產(chǎn)品應(yīng)用變化渠道變化商業(yè)模式變化客戶行為變化快DevOps開發(fā)運維QA階段要求開發(fā)業(yè)務(wù)架構(gòu):多中心、能力開放技術(shù)架構(gòu):SOA、微服務(wù)、技術(shù)組件標準化/服務(wù)化QA持續(xù)集成自動化測試運維快速發(fā)布、滾動升級、灰度發(fā)布、彈性伸縮開發(fā)、測試、生成環(huán)境的標準化案例分析:支撐系統(tǒng)有2000多萬行代碼,代碼構(gòu)建一次需要40多分鐘;由于各個應(yīng)用之間錯綜復(fù)雜,在集中提交代碼模式下構(gòu)建發(fā)布失敗率超過20%;一次產(chǎn)品發(fā)布需要2周以上的時間流程方法工具互聯(lián)網(wǎng)業(yè)務(wù)的變化移動互聯(lián)網(wǎng)時代的特征就是快,產(chǎn)品的決策快、推出快、迭代快、變需求提出需求分析功能設(shè)計代碼開發(fā)測試驗證發(fā)布上線運維監(jiān)控1-2個月長周期交付無法及時響應(yīng)需求變化需求從提出到上線反饋時間長1-2周短周期交付快速響應(yīng)需求變化自動化測試保證質(zhì)量瀑布式開發(fā)敏捷開發(fā)瀑布式開發(fā)和敏捷開發(fā)需求提出需求分析功能設(shè)計代碼開發(fā)測試驗證發(fā)布上線運維監(jiān)控1-業(yè)務(wù)人員開發(fā)測試人員運維人員最終用戶想法市場計劃和需求開發(fā)和測試發(fā)布和部署反饋和優(yōu)化持續(xù)業(yè)務(wù)計劃和需求分析協(xié)作式開發(fā)持續(xù)測試持續(xù)監(jiān)控持續(xù)發(fā)布和部署DevOps精益和敏捷原理持續(xù)改進、持續(xù)反饋、持續(xù)優(yōu)化DevOps理念業(yè)務(wù)人員開發(fā)運維人員最終用戶想法市場計劃和需求開發(fā)和測試發(fā)基本原則項目不停、需求不斷持續(xù)迭代、持續(xù)交付Devops的基本定義基本原則項目不停、需求不斷持續(xù)迭代、持續(xù)交付Devops的基敏捷開發(fā)CI/CD自動化測試代碼掃描工具成果展示建立融合型的敏捷開發(fā)團隊業(yè)務(wù)POMaster團隊運維提供業(yè)務(wù)需求及相關(guān)素材、負責(zé)需求澄清說明及驗收確認需求轉(zhuǎn)化拆分為用戶故事、面向團隊代表客戶進行需求跟蹤協(xié)助團隊完成迭代任務(wù)、排除團隊面臨的障礙、確保團隊遵守敏捷開發(fā)規(guī)則根據(jù)需求實現(xiàn)迭代承諾并交付、完成迭代開發(fā)中的各項工程實踐任務(wù)在團隊實現(xiàn)需求時提出運維建議并在迭代評審時進行確認迭代啟動會迭代計劃會每日立會迭代評審迭代回顧迭代開始前3天進行,評估分析可以進入迭代的需求范圍,后續(xù)進行需求分析,時長1小時迭代開始前1天進行,根據(jù)完成分析的需求進行迭代任務(wù)拆分,估算任務(wù)工作量,時長1小時迭代中每天早上9點40分準時開始,團隊成員講述任務(wù)完成情況,時長15分鐘迭代結(jié)束后進行迭代評審,演示并驗證交付的需求,展示單元測試和自動化測試結(jié)果,時長1小時迭代評審后進行迭代回顧,總結(jié)迭代中的經(jīng)驗教訓(xùn),確定下迭代的改進內(nèi)容,時長30分鐘敏捷團隊與會議敏捷宣言的價值觀(四大宣言)個體和交互?重于?過程和工具?工作的軟件?重于?詳盡的文檔?客戶合作?重于?合同談判?響應(yīng)變化?重于?遵循計劃三種角色五大會議敏捷開發(fā)CI/CD自動化測試代碼掃描工具成果展示建立融合型的敏捷的進度管理看板每日工作圍繞用戶故事展開什么是用戶故事描述高級的功能代表一小部分終端用戶功能是合作書寫的結(jié)果是對未來的承諾,是“更為詳細的”語言包含書面文字、口頭敘述、圖片等包含了用戶故事的驗收標準的邊界
用戶故事和看板的使用例子:敘述:作為一個…手機銀行的用戶我想要…查看我的賬戶信息所以…我可以了解我的賬戶活動情況驗收標準:給定……我已經(jīng)登錄系統(tǒng)當(dāng)……我選擇在我的手機銀行賬戶查看賬戶信息時然后……我能根據(jù)所選擇的賬戶(賬戶名稱、投資理財方案、外匯購買等)查看賬戶細節(jié)為什么使用看板?看板促進流動的概念,以持續(xù)為客戶/最終用戶提供價值通過可視化工作流程,我們可以為每個人都看到任務(wù),活動和瓶頸正在進行中的工作(WIP)確保我們專注于提高質(zhì)量,增加對任務(wù)的關(guān)注,并確保我們停止啟動并開始整理主要原則:可視化工作限制正在進行的工作管理流程明確制定流程政策實施反饋回路協(xié)同改進,實驗演變敏捷的進度管理看板每日工作圍繞用戶故事展開什么是用戶故事用戶Sonar效果:1)阻斷級違規(guī):405->202)嚴重級違規(guī):
2307->22913)代碼變更行數(shù):
190->360+敏捷開發(fā)CI/CD自動化測試成果展示DevOps實施落地–代碼掃描工具代碼掃描工具Sonar效果:敏捷開發(fā)CI/CD自動化測試成果展示DevOCI/CD整體流程開發(fā)活動、測試活動、生產(chǎn)交付活動通過CI/CD系統(tǒng)串聯(lián)自動化并全領(lǐng)域覆蓋Agile-敏捷活動CI-持續(xù)集成CD-持續(xù)交付設(shè)計開發(fā)需求軟件構(gòu)建(代碼&SQL)代碼掃描單元測試Junit應(yīng)用部署(測試環(huán)境)自動化測試(接口&UI)集成測試版本交付應(yīng)用部署(準生產(chǎn)環(huán)境)驗收測試應(yīng)用部署(生產(chǎn)環(huán)境)系統(tǒng)運營敏捷開發(fā)CI/CD自動化測試成果展示流程節(jié)點可定制DevOps實施落地-CI/CD整體流程圖代碼掃描工具CI/CD整體流程開發(fā)活動、測試活動、生產(chǎn)交付活動通過CI/多業(yè)務(wù)環(huán)境的處理按交付領(lǐng)域不同的環(huán)境進行分領(lǐng)域多維度的統(tǒng)一管理開發(fā)環(huán)境測試環(huán)境準生產(chǎn)環(huán)境生產(chǎn)環(huán)境分領(lǐng)域集成預(yù)處理軟件構(gòu)建部署發(fā)布在線測試多維度敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具DevOps實施落地-CI/CD按環(huán)境管理多業(yè)務(wù)環(huán)境的處理按交付領(lǐng)域不同的環(huán)境進行分領(lǐng)域多維度的統(tǒng)一管開發(fā)人員直觀視角開發(fā)人員提交代碼時,CI根據(jù)任務(wù)單號自動捕獲、自動編譯、自動測試環(huán)境部署需求單提交測試分支構(gòu)建版本生成部署版本生成測試環(huán)境部署交付分支構(gòu)建版本生成準生產(chǎn)環(huán)境部署生產(chǎn)環(huán)境部署交付使用敏捷開發(fā)CI/CD自動化測試成果展示CI/CD任務(wù)單提交變更流程代碼掃描工具開發(fā)人員直觀視角開發(fā)人員提交代碼時,CI根據(jù)任務(wù)單號自動捕獲其他對接系統(tǒng)用戶HA/LVS安全認證APIGateway消息中心消息總線消息路由探測微服務(wù)性能測試微服務(wù)任務(wù)調(diào)度微服務(wù)仿真微服務(wù)7*24小時業(yè)務(wù)監(jiān)控UI及接口自動化測試對壓力性能測試進行管理代碼審查微服務(wù)對源碼進行編碼審查安全掃描微服務(wù)對系統(tǒng)進行安全掃描Web服務(wù)器集群測試過程管理數(shù)據(jù)存儲測試案例管理測試任務(wù)管理缺陷管理服務(wù)注冊服務(wù)發(fā)現(xiàn)共享緩存日志管理配置管理測試計劃管理運維管理自動化測試微服務(wù)測試流程管控數(shù)據(jù)存儲Iaas(測試資源管理)可持續(xù)集成敏捷開發(fā)CI/CD自動化測試成果展示DevOps實施落地–自動測試平臺(ATP)代碼掃描工具其他對接系統(tǒng)用戶HA/LVS安全認證APIGateway消原理接口測試的原理是通過測試程序模擬客戶端向服務(wù)器發(fā)送請求報文,服務(wù)器接收請求報文后對相應(yīng)的報文做出處理然后再把應(yīng)答報文發(fā)送給客戶端,客戶端接收應(yīng)答報文這一個過程。目的測試接口的正確性和穩(wěn)定性(持續(xù)集成是接口測試的核心)。1)LoadRunner:一款商業(yè)性能測試工具,用來做接口測試,很好很強大
2)Jmeter:一款開源的性能測試工具,操作簡單,方便,既有jdbcrequest操作數(shù)據(jù)庫數(shù)據(jù),也有httprequest和soaprequest應(yīng)對測試3)poster:火狐瀏覽器自帶接口測試工具,插件中安裝即可,界面簡單明了,容易上手。4)postman:谷歌瀏覽器的擴展工具,谷歌商店中選中安裝,界面同poster差別不大,界面簡潔
5)SoapUI:開源測試工具,通過soap/http來檢查、調(diào)用、實現(xiàn)WebService的功能/負載/符合性測試;該工具既可作為一個單獨的接口測試工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans和intellij中使用。敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具DevOps實施落地–接口自動化測試工具介紹原理接口測試的原理是通過測試程序模擬客戶端向服務(wù)器發(fā)送請求報自動化測試工具有很多,如QTP,Selenium,RFT,MonkeyTest,Jmeter等。五花八門,有開源的也有商業(yè)的,但主流的測試工具還是QTP和Selenium,由于Selenium的開源和強大的瀏覽器兼容性和跨平臺性,正在被越來越多的人使用;Selenium測試直接在瀏覽器中運行,就像真實用戶所做的一樣。Selenium測試可以在Windows、Linux和Macintosh上的InternetExplorer、Mozilla和Firefox中運行。其他測試工具都不能覆蓋如此多的平臺。使用Selenium和在瀏覽器中運行測試還有很多其他好處。通過編寫模仿用戶操作的Selenium測試腳本,可以從終端用戶的角度來測試應(yīng)用程序。通過在不同瀏覽器中運行測試,更容易發(fā)現(xiàn)瀏覽器的不兼容性。Selenium的核心,也稱browserbot,是用JavaScript編寫的。這使得測試腳本可以在受支持的瀏覽器中運行。browserbot負責(zé)執(zhí)行從測試腳本接收到的命令,測試腳本或者是用HTML的表布局編寫的,或者是使用一種受支持的編程語言編寫的。編程語言可以實現(xiàn)復(fù)雜的邏輯,從而實現(xiàn)一些較復(fù)雜的測試任務(wù)。技術(shù)預(yù)研需求分析編寫方案與計劃搭建測試框架腳本,用例,數(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自動化測試成果展示代碼掃描工具自動化測試工具有很多,如QTP,Selenium,RFT,M代碼編譯頻率編譯時長部署時長編譯問題處理測試環(huán)境部署頻率SQL合并&執(zhí)行自動化測試持續(xù)集成(編譯、部署、接口&UI自動化)實施前1次/天20分鐘30分鐘人工分析&口頭協(xié)調(diào)1次/天人工收集執(zhí)行無各環(huán)節(jié)人工觸發(fā)實施后大于5次4分鐘7分鐘自動定位&自動郵件>=4次/天自動收集執(zhí)行應(yīng)用部署后自動觸發(fā)約23分鐘流程自動化過程可視化反饋及時化測試常態(tài)化解放人力促進協(xié)同增強溝通保證質(zhì)量問題及早發(fā)現(xiàn)結(jié)果持續(xù)可見過程自動提效持續(xù)集成部署綜合效率提升超過300%,8月份共編譯92次,部署48次敏捷開發(fā)CI/CD自動化測試成果展示DevOps實施成果展示–CI/CD過程提效代碼掃描工具代碼編譯編譯時長部署時長編譯問題測試環(huán)境部署頻率SQL合并&團隊進行需求分解快速完成并行任務(wù)迭代交付完整需求團隊合作取代單打獨斗知識技能團隊共享團隊能力和士氣快速提升通過站會、評審、討論、任務(wù)完成獎勵等方式提高團隊熟悉程度和信任成員之間自動產(chǎn)生了提前完成任務(wù)的比較心理新技術(shù)手段的引入,帶來了成員新的學(xué)習(xí)熱情以團隊合作取代單打獨斗的工作方式,團隊內(nèi)形成了良好的知識分享和技能提升的氛圍,大家可以積極領(lǐng)取任務(wù)并保質(zhì)完成,在迭代結(jié)束時可以看到完成的成果,士氣得到了很好的提升。敏捷開發(fā)CI/CD自動化測試成果展示代碼掃描工具DevOps實施成果展示–團隊能力提升團隊進行需求分解快速完成并行任務(wù)迭代交付完整需求團隊合作取代DevOps體系全景圖整體流程BACKLOG用戶需求用戶故事用戶故事用戶需求用戶故事用戶故事用戶需求用戶故事用戶故事開發(fā)任務(wù)測試任務(wù)設(shè)計任務(wù)單元測試驗證測試開發(fā)任務(wù)開發(fā)任務(wù)BACKLOG障礙問題計劃會議:PO主持創(chuàng)建Sprintbacklog評審會議:PO主持驗收用戶故事回顧會議:只有團隊成員參與好的、待改進、如何改進看板+每日例會:可視化流程鼓勵團隊溝通產(chǎn)品backlog:條目化用戶故事優(yōu)先級排序按用戶故事組織開發(fā)和交付SprintBacklog:經(jīng)任務(wù)分解和估算的用戶故事經(jīng)設(shè)計的測試用例可以迭代完成的周期持續(xù)集成:自動化隨需的軟件構(gòu)建、靜態(tài)代碼掃描、單元測試、部署任務(wù)領(lǐng)取編碼&單元測試測試用例&自動化測試腳本集成測試環(huán)境準生產(chǎn)環(huán)境生產(chǎn)環(huán)境開發(fā)分支測試分支交付(生產(chǎn))分支持續(xù)集成版本發(fā)布集成自動化測試UAT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美團騎手2025年度團隊協(xié)作與企業(yè)文化融入合同4篇
- 二零二五年度醫(yī)院護理人員專業(yè)發(fā)展合同4篇
- 2025年度數(shù)據(jù)中心冷卻系統(tǒng)承包合同4篇
- 2025年度冷庫制冷設(shè)備進出口貿(mào)易代理合同2篇
- 二零二五年度南京市高新園區(qū)房地產(chǎn)抵押租賃合同
- 二零二五年度新型木托盤租賃及信息化管理服務(wù)合同4篇
- 2025版新型節(jié)能門窗安裝與綠色建筑合同2篇
- 2025年度牛奶飲品國際市場拓展與海外銷售代理合同4篇
- 2025年專業(yè)培訓(xùn)班股權(quán)投資與管理合同4篇
- 2025年度鋼構(gòu)加工企業(yè)信用風(fēng)險防范合同
- 小兒甲型流感護理查房
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 2021年全國高考物理真題試卷及解析(全國已卷)
- 拆遷評估機構(gòu)選定方案
- 趣味知識問答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級下冊核心素養(yǎng)目標全冊教學(xué)設(shè)計
- JJG 692-2010無創(chuàng)自動測量血壓計
- 三年級下冊口算天天100題(A4打印版)
- CSSD職業(yè)暴露與防護
評論
0/150
提交評論