GOPS全球運維大會---大型云平臺的DevOps實踐
【中國,上海】2018年9月14日-15日,GOPS全球運維大會正式開啟,上千位各行業運維者及DevOps的實踐者們參會,華為云DevCloud專家受邀參加本次大會, 在主會場分享了華為在大型云平臺上的DevOps實踐。
踐行DevOps理念,DevOps逐步成為企業核心競爭力
DevOps是Development+Operation的組合,旨在促進軟件開發、運維和質量保障等部門間的溝通和協作,讓軟件交付具有5-10倍的TTM和效率優勢。據調研數據顯示,云在企業的發展成熟度及采用率越來越高,DevOps已經成為被廣泛接受的軟件交付新模式。95%的企業和組織在使用和評估云,軟件服務化、云化是大勢所趨,這又對DevOps提出了更強烈的訴求。但是應用上云不是目的,只是技術手段,上云目的是產品競爭力更強,成本更低,資源利用率更高,系統更可靠更安全等。要達到這樣的目的,我們需要在4個方面進行轉變,開發模式向DevOps轉變,應用架構向微服務轉變,應用部署要容器化、基礎設施要云化。近80%的企業接受DevOps并積極向DevOps轉型,但是落地DevOps并不容易,除了研發組織和企業文化帶來障礙,缺少智能高效的研發平臺也是導致轉型困難的重要因素。
華為云DevCloud專家講到,華為向Cloud Native云原生轉型,DevOps是工程基礎。Cloud Native是云原生、為云而生的意思,是一種新的系統實踐范式,讓軟件能更好地基于云環境、適應云環境、受益云環境。云原生計算基金會(CNCF)于2015年成立,致力于推廣Cloud Native,華為是初創級鉑金會員,今年4月,華為和Google一同成為CNCF技術監督委員會TOC成員,決定CNCF社區的技術走向。華為公司也于2017年向Cloud Native轉型,所有和云相關的產品都要采用Cloud Native的模式來構建,支撐公司全面云化戰略。主要從3個方面來落地實踐:架構、工程、組織,包括充分利用云基礎設施與平臺服務,具備微服務架構、彈性伸縮、分布式、高可用、多租戶、自動化運維等關鍵特征的架構實踐;建立與系統架構匹配的全功能團隊、發展全棧工程師并高度協作的組織實踐;采用DevOps、自動化工具,實現微服務持續交付的工程實踐。通過架構、工程、組織面向云環境的協同實踐,實現Cloud Native系統對外體現的快速、可靠、規模、靈活、高效的價值收益。
華為云DevCloud的DevOps實踐
華為在近30年的發展過程中,研發模式、流程、工具也在不斷演進。華為在DevOps實踐上也進行了積極地探索并取得成果,開放華為30年研發實踐打造華為云DevCloud。這樣一個產品,我們怎樣進行DevOps實踐?
首先,以服務為單位組建全功能團隊。Conway定律指出:任意一個軟件都反映出制造它的團隊的組織結構,團隊的組織結構和代碼架構是緊密相關的。要想產品的架構盡量松耦合,團隊的組織結構就要盡量扁平,華為云DevCloud每個服務由一個團隊負責,團隊人數通常在10人左右,就是我們常說的Two pizza團隊的規模,團隊中有產品經理、架構師、開發、測試、運維等角色。產品經理負責Why&What,負責產品的競爭力規劃和構建、產品的設計和體驗、產品運營,對產品的商業結果負責 ;開發團隊負責What&How,主要關注需求的交付效率和產品質量 ;每個團隊采用敏捷Scrum的開發流程,并融入精益的思想,自己管理自己的需求,有自己的流水線和發布流程,這也是一個規模化敏捷的場景 。
很多時候一個產品的成敗,取決于我們對用戶需求的把握程度。在量子力學中,對關系的定義就是信息,我們和用戶關系的好壞,就是對用戶信息掌握的多少,你了解用戶心中所想,就能更好地把握用戶的需求,就更容易做出成功的產品 。不管是敏捷、精益、DevOps,除了要解決快速交付、還要能夠快速反饋,通過反饋快速試錯,不斷驗證我們對市場和用戶需求的理解和判斷,就能不斷調整方向,對準用戶和市場的需求 。為什么說需求就是競爭力呢,我們做產品最可悲就是沒有用戶使用,沒有人給你提需求,只要有用戶使用,不斷給我們提需求,陪伴我們一起成長,我們就可以不斷完善產品,逐步具備競爭力 。無場景不需求,就是要將需求放在一個場景下,才能更準確地理解需求,用戶很多時候表達不清楚他們的需求,要通過深入洞察用戶的行為,才能搞清楚用戶的真實需求,找到產品爆點。
我們回想一下不同時期的架構方法,EJB、SOA、Web Service、Restful API、微服務等,每個時期出現的架構方法,都要解決一個問題:解耦 。華為云DevCloud早期,整個產品多個服務耦合在一起,一個月發布一個版本,每次發布都很痛苦,各個服務相互等待,效率低,發布流程復雜,要配置的環境參數很多,經常出錯;隨著架構的不斷解耦,各個服務可以獨立發布,消除了等待,發布效率大幅提高,達到一周發布一次;隨著微服務化的不斷深入,各個微服務可以獨立上線發布,我們現在可以達到天級交付 。為了保證微服務的接口一致性,以Swagger YAML為中心,自動生成接口框架代碼、測試用例框架、API文檔、Mock測試樁,并定期反向同步 ,保證了接口的一致性。并通過Mock Server和契約測試,解耦接口依賴,實現API的并行開發、自動化測試和獨立發布。
在DevOps中,反饋非常重要,測試其實也是一種反饋,就像代碼評審、代碼檢查、構建、部署等,通過反饋讓我們及時發現代碼和系統的問題,反饋周期越短,我們就能越早發現問題,成本越低。如果能在其它環節更多地保障質量,那么測試環節的工作量就可以相應減少 。華為公司對安全非常重視,任何對外的產品都要通過安全紅線、必須通過ICSL安全稽查才能商用、每半年送檢一次。
華為云DevCloud專家還分享了流水線、灰度發布模型,多Region同步發布,性能測試,自動化運維,以及APM方面的一些實踐。60%以上的生產事故源于人為操作不當,所以我們構建自動化運維平臺,大幅減少因人工誤操作帶來的現網問題。自動化運維平臺主要實現4部分功能,1)配置自動化:早期,DevCloud在生產環境部署后,經常出問題,問題定位后發現大都是環境參數配置問題,后來用CMDB來管理環境參數,問題就大幅減少了 。2)監控告警自動化:10萬+監控項,問題提前攔截率達到90%以上 。3)作業自動化:通過自動化腳本固化常用操作,并進行權限隔離,大幅減少操作失誤導致的問題 。4)分析自動化:通過日志分析、API調用鏈分析、問題智能化輔助定位,實現MTTR從40分鐘縮短到20分鐘,運維自動化率提升到80%以上 。
一個傳統的應用,交付給客戶就意味著研發的結束,對云服務來說,上線只是一個開始,后期的運維和運營非常關鍵。云服務本質上是商業模式的改變,從賣License走向Pay as you go,技術的云化不代表商業的云化。一個新服務從交付完成到GA商用,通常包括邀測、公測和GA 3個階段,需要產品、運營、運維的緊密配合。
DevOps平臺的構建思考和探索
***,華為云DevCloud專家向與會企業探討了DevOps平臺的構建思考與探索。DevOps工具平臺的構建非常復雜,理念和方法論是工具平臺的靈魂、主線,工具承載先進理念和方法論,固化流程、經驗和***實踐。華為云DevCloud是華為云的組成部分, 是華為30余年研發實踐和前沿理念的結晶,為開發者提供一站式全流程安全可信的DevOps工具服務,同時,也是幫助企業修煉內功的一大利器,可以有效支撐企業DevOps落地,實現項目的高效、高質量迭代。未來,華為云DevCloud也將攜手各企業各開發運維者,精誠合作互通,及時響應反饋,更好的為廣大開發者提供穩定可靠的DevOps工具,助力軟件企業專注業務創新。
HUAWEI CONNECT 2018作為華為自辦的面向ICT產業的全球性年度旗艦大會,將于2018年10月10日-12日在上海隆重舉行。本屆大會以“+智能,見未來”為主題,旨在搭建一個開放、合作、共享的平臺,與客戶伙伴一起共同探討如何把握新機遇創造智能未來。欲了解更多詳情,請參閱:
https://www.huawei.com/cn/press-events/events/huaweiconnect2018