利用OpenStack技術來構建開發測試平臺實現精益研發
當前的云計算領域,OpenStack在IaaS層的主導地位毋庸置疑,然而僅僅靠基礎架構層的云化并不能滿足企業所需的敏捷性、靈活性,前沿的云計算技術實踐,還需要通過PaaS層的變革實現應用的高效交付。日前, HPE高級架構師梁建民接受CSDN記者周建丁專訪 ,分享了基于OpenStack技術構建高可用的開發測試平臺實現精益研發的核心技術和關鍵工作。
采訪嘉賓介紹:
梁建民,HPE高級架構師,北京航空航天大學碩士畢業,擁有多年的研發和項目管理經驗,長期專注于云計算方向,對基于云的應用架構設計、云平臺交付與管理、應用遷移和DevOps有深入的理解和實踐經驗,深諳如何充分基于云平臺及DevOps加速業務系統開發測試交付以及提升研發運維的效率和質量。曾服務于北京世紀互聯云快線和三星云計算部門。
為什么要基于OpenStack實現精益研發
梁建民首先介紹了他對精益研發和DevOps的理解。“精益”是來自豐田生產方式的一種理念,其核心是更快速的交付和消除生產過程中資源的浪費。
精益研發和此前業界談及的敏捷開發概念有本質的不同:
- 關注點不同,這是最大的差異
- 敏捷開發僅僅關注怎么快速地交付一些產品滿足客戶更快的需求。
- 精益研發關注的是在滿足客戶需求的過程中如何消除各個研發環節的各種浪費,包括資源的浪費、人力的浪費和時間的浪費等。
- 實現方式不同
- 敏捷開發有一些固定的方法論,比如Scrum。
- 精益研發目前沒有成型的方法論,一般是以某一種敏捷開發方法論作為起點來逐步實現,但在滿足客戶更快的需求過程中,精益研發具有更廣泛的視角,比如關注在外圍的生產、外圍的企業合作等過程中消除一些資源的浪費。
企業需要引入精益研發的動因在于現實的市場需求:
- 想要更快地滿足客戶的需求,需要更快地驗證產品的模型。
- 想要在激烈的競爭中占據優勢,需要超出市場預期的速度把產品推向市場。
- 充分利用企業現有的IT和人力資源,實現高質量的研發。
精益研發的一種成功實踐是DevOps,后者是從業務角度理解的一個概念,包括開發、運維和測試怎么更好地合作來滿足客戶的更快速的交付的需求。DevOps理念的實現需要整合一系列的開發工具、運維工具和測試工具來支持,以消除資源的浪費。這同樣需要一個更快速更敏捷的基礎架構來支撐,而開源的OpenStack平臺,在眾多技術公司的支持之下,社區和生態不斷完善、成熟,經過10多個版本的迭代,OpenStack已成為構建敏捷的云計算基礎架構的優選技術。HPE也選擇在OpenStack之上構建DevOps實踐的技術棧。
基于OpenStack的開發測試平臺
HPE最近于OpenStack奧斯汀峰會上發布的HPE Helion OpenStack 3.0(HOS 3.0)之上實現了自己的開發測試平臺,以及CI(持續集成)和CD(持續交付)的工具。梁建民介紹, Helion Code Engine產品支持團隊不斷集成和部署代碼以快速迭代,從而實現CI和CD,允許企業隨時準備出貨,并收集反饋和快速迭代 。
Helion平臺的目的是交付安全的、可靠的、企業級云平臺。社區版OpenStack云平臺以免費來降低客戶入云門檻,但它們帶給客戶的卻是上云后昂貴的運維成本,以及無保障的服務。
開發測試平臺包括兩部分:
- HPE Helion Development Platform:支持開發團隊更快速更敏捷地利用OpenStack的資源,以更快地滿足客戶的需求。
- HPE Helion Stackato:如果開發團隊有自己的基礎設施,Helion Stackato支持更快速敏捷地利用自己的基礎設施來滿足客戶的需求。
通過開發測試平臺滿足了開發團隊對敏捷的基礎設施的需求之后,HPE的Helion Code Engine可以實現兩個平臺的結合,以便更快速地交付產品,實現客戶的需求。
OpenStack基礎設施
HOS 3.0是基于OpenStack Liberty版本開發的,作為OpenStack社區貢獻量巨大的白金會員,HPE在OpenStack社區版的基礎上做了很多的增強功能,3.0的特性包括更靈活的配置、操控性更強、易于運用等。開源OpenStack包含的組件非常多,對于企業尤其是小型企業來說,如何很好地運用是非常痛苦的事情, HPE開發了基于Ansible自動化運維的部署工具來實現一鍵部署、一鍵平滑升級,對OpenStack做全生命周期的管理操作 。
除了社區版本基礎之上的一些組件的維護增強以外,HPE也開發了自己的模塊來增強這個企業級的平臺,和高可用各種工具的集成,包括控制器的高可用(一旦控制器掛掉,整個集群就可不用),網絡方面L2/L3 Agent的高可用、安全的高可用、VM的高可用增強,以及負載均衡(包括F5)集成、SDN/NFV的支持等等。
PaaS構建思路
在OpenStack基礎設施之上,HPE還做了PaaS平臺的一些工作, 通過HPE自己開發的SaaS服務來一鍵安裝部署PaaS平臺 。PaaS平臺目前支持傳統應用的開發,如Java、PHP、Python等語言的開發。
PaaS平臺基于開源的Cloud Foundry,HPE也在開源的Cloud Foundry之上做了一些增強功能的開發。
-
Cloud Foundry原先的后端是Warden,HPE把Warden替換掉以后,實現自己的Docker服務,用Docker來進行APP容器的服務。
-
Cloud Foundry的最前端是Router,要響應所有用戶的請求,包括PaaS性能的管理組件的請求和流量,以及客戶上傳APP過程中的請求。HPE針對Router做了一些高可用的操作,通過擴展的方式來實現,以及一些硬件的負載均衡的集成。
-
Cloud Controller方面,HPE也做了高可用的增強,包括用戶的授權認證,原先是通過UAA的方式來實現,HPE現在改成AOK,并和LDAP認證集成;APP的打包、部署、運行,一切的調度工作也都是通過Cloud Controller來做,也做了高可用,通過調度后端的程序DEA模塊,通過監控模塊監控容器的負載,如果業務量突然爆發,容器會快速地自動擴展來滿足業務的需求。
-
平臺還提供一些managerment和unmanagerment的服務,比如數據庫、消息隊列、中間件服務等。
在OpenStack上把Cloud Foundry構建出來,可以通過OpenStack提供的RESTful API的方式——把Cloud Foundry功能模塊提前做好構成鏡像,通過調用OpenStack API。首先構建一個VM作為構建PaaS平臺的構造器,再調用OpenStack的API去把Cloud Foundry集群構建出來,當然中間會用OpenStack的其他一些技術,如Heat編排等。構建出來以后,可以在IaaS平臺上通過直接訪問到PaaS平臺的URL訪問PaaS平臺。
CI/CD
CI/CD是DevOps的精髓。這方面 HPE開發了Code Engine 產品,集成基于Github代碼的智能結合,開發滿足現在流行的微服務的一些技術要點如12因子(Twelve-Factor)的產品 。
有一些企業可能有自己的Git倉庫,HPE也開發了單獨的組件,通過pull/request探測開發人員提交的代碼,如果代碼通過評審,HPE有自己的編譯的worker和測試的worker,測試worker集成第三方的工具(如LR性能測試工具),測試以后通過部署的worker,一鍵部署到PaaS平臺上,當然前提是PaaS平臺是基于Docker做的。
CI/CD的架構,前端是一個Web,后端是Code Engine的API服務,一切的用戶請求都放到API上。包括開發層面的編譯、測試、部署、通知、Git/Push五個worker,以及調度的worker(調度前述工作的銜接和運行)。用戶首先需要創建環境(最后應用是部署在基于OpenStack的PaaS平臺還是其他的CF平臺上),配置好用戶環境之后,可以配置第三方工具的集成,然后構建Build,需要和Github集成,在Github上創建project,Code Engine回調的URL配置好,通過探測pull/request自動化測試、編譯開發人員提交通過的代碼。
具體的流程,Git/Push的worker自動把代碼拉下來,容器的worker從容器倉庫中拉出一個容器來,把代碼放進容器,通過自動化的工具測試并編譯,然后部署的worker把容器自動化部署到PaaS平臺上。
梁建民分享了一個客戶實現DevOps的案例:客戶有自己的CI工具和F5負載均衡,HPE幫助構建它構建PaaS平臺。PaaS構建好之后,Router做了高可用,通過F5做負載均衡,PaaS和CI進行整合,滿足快發開發、快速迭代的需求。
容器技術的選擇
從業務角度理解,具體利用什么工具來滿足自己的業務需求,每個企業都有不同的工具的選擇,根據自己的業務決定;從技術角度來說,Docker是較新的事物,做單獨的容器使用是沒有問題的,但是如果是作為一個集群的方式,或者跨數據中心的方式,它的調度是一個技術難點。調度管理方面大家還處于探索階段,所以就有Kubernetes、Mesos等工具來解決, HPE目前是通過開發自己的Fance組件來和Cloud Foundry做一個集成,來管理Docker服務 。
Kubernetes、Mesos等工具純粹是為了管理容器而產生的,至于這個容器是構建在IaaS之上呢,還是基于構建在裸機之上,是兩個層面的東西。如果想基于裸機或者基于IaaS管理容器的編排,可以通過這些工具來做,實現通用的PaaS平臺。
HPE走的是另一條道,即和OpenStack高度集成(同時也支持單獨部署PaaS),更快的更敏捷的利用IaaS資源,然后基于Cloud Foundry開發了自己的Fance工具管理Docker。HPE開發的組件和開源社區的組件是相互兼容的,都可以更好地利用容器來實現更敏捷、更靈活的交付,不排除以后會做一些整合。
總結
通過利用OpenStack、Cloud Foundry和Docker技術來構建開發測試平臺,業務層面重新構建開發、測試、運維人員結構,運用DevOps和微服務理念,達到更快的交付高質量的產品,隨時可以高效的應對市場和客戶需求從面形成閉環,使企業具有較強的競爭力。
來自: http://geek.csdn.net/news/detail/72997