曹娜 崔文茂 于子雅
摘要:該文在對目前國內(nèi)大多數(shù)軟件研發(fā)類企業(yè)開發(fā)測試環(huán)境構建現(xiàn)狀分析的基礎上,介紹了云計算技術有關概念,提出了基于云計算的企業(yè)開發(fā)測試平臺的體系結(jié)構,說明了各層次的構成要素和工作原理,最后結(jié)合某企業(yè)的應用實例,闡述了其應用效果。
關鍵詞:開發(fā)測試平臺;云計算;虛擬化;Openstack;Docker
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)15-0145-02
在信息技術革命的推動下,軟件研發(fā)類企業(yè)蓬勃發(fā)展,IT建設規(guī)模不斷擴張,但同時該類企業(yè)也面臨著行業(yè)競爭激烈、更新?lián)Q代迅速的局面。在當前競爭態(tài)勢下,如何能在降低研發(fā)成本的同時具備敏捷高效的研發(fā)能力成為提升企業(yè)核心競爭力的關鍵,而研發(fā)能力的形成離不開開發(fā)測試環(huán)境的支撐。本文提出引入逐漸成熟的云計算相關技術來構建靈活、集約的開發(fā)測試云平臺的思路和方法。
1 現(xiàn)狀分析
國內(nèi)大多數(shù)軟件研發(fā)類企業(yè)一般采用傳統(tǒng)的“一項目一環(huán)境”的開發(fā)測試環(huán)境構建模式,為不同的研制項目搭建獨立的環(huán)境。此種構建模式的優(yōu)點在于環(huán)境是專門為項目建立,針對性強,獨立享有,構建單項目環(huán)境的成本相對較低,在項目任務不多的情況下,采用該模式還比較適合,但隨著業(yè)務的增長,項目不斷增多,這種模式的不足之處逐漸顯現(xiàn)。
一是資源獨享、投資重復,利用率低。以項目為單位申請并長期獨占設備、場地等資源,不利于資源共享,也造成設備的重復投資以及電力等能源的嚴重浪費。
二是資源分散、運維靠人,管理水平低。為保障環(huán)境的正常運行,需要對每個項目環(huán)境配備運維人員,無法統(tǒng)一進行系統(tǒng)監(jiān)控、資源統(tǒng)計,維護工作量大,管理難度大。
三是手工作業(yè)、時間周期長,工作效率低。開發(fā)測試環(huán)境的構建一般經(jīng)過場地調(diào)配、設備籌集架設、網(wǎng)絡敷設、系統(tǒng)以及工具軟件安裝配置等過程,一般需1到數(shù)周的時間,耗費了大量的時間和人力、物力、財力,降低了研發(fā)工作效率。
四是環(huán)境保留成本高、恢復難度大,一致率低。一旦項目完成,原有環(huán)境設備很難空置保留。若要重新恢復,相當于重新搭建,工作繁復,而且數(shù)據(jù)、參數(shù)配置等難以一致復原。
顯然,傳統(tǒng)的開發(fā)測試環(huán)境的構建模式已不符合企業(yè)高速發(fā)展的需要,亟需利用新技術進行變革。經(jīng)過論證分析,逐步落地的云計算是應對并解決當前問題的有效方法,其特性可以幫助整合現(xiàn)有資源,提升利用率、降低成本、提高效率、提升管理水平,打造核心競爭力,實現(xiàn)企業(yè)跨越式發(fā)展。
2 運用云計算構建開發(fā)測試平臺
2.1 云計算概述
云計算是網(wǎng)格計算、并行計算、分布式計算、效用計算、網(wǎng)絡存儲、虛擬化、負載均衡等傳統(tǒng)計算機和網(wǎng)絡技術發(fā)展融合的產(chǎn)物,涉及多種關鍵技術,其中,虛擬化技術可實現(xiàn)計算、存儲、網(wǎng)絡、操作系統(tǒng)等資源的統(tǒng)一抽象,是企業(yè)開發(fā)測試平臺構建中不可缺少的關鍵技術。
云計算具有五大關鍵特性,分別為:(1)按需自助服務;(2)泛在的網(wǎng)絡訪問方式;(3)動態(tài)的資源池;(4)快速可伸縮性;(5)可計量的服務。這些特性和開發(fā)測試平臺所需的按需分配、隨時訪問、動態(tài)調(diào)度、彈性擴充、自動部署的要求非常符合。
云計算提供三類服務模式,分別為:基礎設施即服務(IaaS)、平臺即服務(PaaS)和軟件即服務(SaaS)。其中,IaaS是最基礎的服務模式,將計算、存儲以及網(wǎng)絡等資源封裝為服務提供給用戶,并可根據(jù)需求動態(tài)分配;PaaS是提供應用程序的運行環(huán)境并負責資源的動態(tài)擴展和容錯管理,用戶可以在此基礎上進行程序開發(fā);SaaS將運行在云基礎設施上的應用程序作為服務提供給用戶,用戶可以根據(jù)需要對功能模塊進行組合。開發(fā)測試環(huán)境主要是計算、存儲、網(wǎng)絡資源以及應用程序運行環(huán)境的組合,比較適合采用IaaS和PaaS的服務模式。IaaS提供的服務偏底層,但使用也更靈活,用戶可以掌控操作系統(tǒng)以及應用程序的安裝和配置。PaaS可提供基礎的開發(fā)環(huán)境,開發(fā)人員不需關注底層的硬件環(huán)境以及操作系統(tǒng),降低了程序開發(fā)的復雜度和開發(fā)周期。
2.2 基于云計算的開發(fā)測試平臺體系架構
在對軟件研發(fā)類企業(yè)開發(fā)環(huán)境構建現(xiàn)狀分析的基礎上,以云計算關鍵技術為支撐,構建開發(fā)測試平臺體系架構,完整體系架構如圖1所示。這是一種面向服務的層次化體系結(jié)構。其中,物理資源層、虛擬資源層、資源調(diào)度層、資源服務層是體系架構的核心。通過物理資源層、虛擬資源層以及資源調(diào)度層的組合,可以實現(xiàn)IaaS服務模式,在此基礎上加上資源服務層就可提供PaaS服務。
2.2.1 物理資源層
物理資源層是底層基礎,囊括了構成開發(fā)測試平臺所需的各類硬件基礎設施,主要包括計算、存儲和網(wǎng)絡等物理資源,其中,根據(jù)實際需求,計算資源用于提供x86、Power、安騰等多種技術架構混合的計算資源支撐;存儲資源由各類存儲設備及系統(tǒng)構成,提供文件、塊、對象等多種類型存儲資源支撐。網(wǎng)絡資源主要由交換機、路由器、防火墻以及負載均衡等網(wǎng)絡設備構成,實現(xiàn)用戶端到開發(fā)測試平臺的訪問控制和訪問連接。
2.2.2 虛擬資源層
虛擬資源層通過計算虛擬化、存儲虛擬化和網(wǎng)絡虛擬化等一系列的虛擬化手段,將物理資源層的硬件資源虛擬化,構建完整的、可調(diào)配的虛擬資源池,在網(wǎng)絡連通的基礎上用戶可以遠程訪問虛擬資源。其中計算虛擬化最為成熟,可以讓一臺服務器變成多臺互相隔離的虛擬服務器,讓CPU、內(nèi)存、磁盤、I/O等變成可以動態(tài)管理的“資源池”,從而提高資源利用率。典型產(chǎn)品有閉源的Vmware的ESX和Microsoft Hyper-V以及開源的KVM和XEN。存儲虛擬化和網(wǎng)絡虛擬化目前于發(fā)展階段,各廠商有各自的理解和技術實踐。
2.2.3 資源調(diào)度層
資源調(diào)度層主要由可集成多種物理資源和虛擬資源接入適配器的資源調(diào)度管理系統(tǒng)構成。根據(jù)不同的需求和負載情況對物理資源和虛擬資源進行智能調(diào)度和自動化部署,實現(xiàn)資源管理、調(diào)配、回收等全過程管理,并達到系統(tǒng)各種資源的負載均衡。通過自動化手段,提高對資源的整體管理和調(diào)度能力,保證了平臺的高可用性和良好的用戶體驗。目前比較熱門的有開源的Openstack云管理平臺,部署后可以提供完整的IaaS服務,主要構件有Nova、Swift、Cinder、Glance、Neutorn、Keystone、Horizon等,同時提供公共應用接口API,業(yè)界主要廠商均支持與其集成對接。
2.2.4 資源服務層
資源服務層可直接面向開發(fā)者服務,為開發(fā)者直接生成所需編程語言構成的開發(fā)測試環(huán)境。目前比較流行的是容器技術,典型的有開源項目Docker,Docker 是一個基于LXC的容器引擎,利用輕量級虛擬化技術進行資源隔離,開發(fā)者可以將應用程序、依賴的運行庫文件打包并移植到一個新的容器中,然后發(fā)布到任何系統(tǒng)為Linux的機器上。Docker運行啟動快且資源開銷小,向PaaS 提供了基礎的資源隔離和標準化打包部署能力,因此利用Docker作為該層的構建較為高效簡單。
2.2.5 統(tǒng)一管理層
統(tǒng)一管理層承擔了提供整個IT物理資源和虛擬資源的全面有效管理、跟蹤和控制,為日常運行維護提供準確的信息,并提供統(tǒng)一的資源監(jiān)控、管理和調(diào)度,做到快速發(fā)現(xiàn)故障、自動部署、按需調(diào)度并提供研發(fā)資源性能、資源使用的統(tǒng)計分析、報表、匯總等方面的數(shù)據(jù)分析功能。
2.2.6 安全防護層
安全防護層用于保護企業(yè)信息的安全,確保開發(fā)測試平臺安全穩(wěn)定運行,主要由一系列安全防護產(chǎn)品或系統(tǒng)構成。其中備份存儲系統(tǒng)和容災系統(tǒng)分別提供數(shù)據(jù)備份和系統(tǒng)容災能力,確保數(shù)據(jù)安全;防病毒系統(tǒng)可以在虛擬化層進行病毒防護,隨時監(jiān)控和查殺病毒和惡意代碼;身份認證和訪問控制可以實現(xiàn)不同權限用戶的訪問控制,避免服務被非授權訪問;準入控制可以保證只有通過認證的合法用戶才可以正常訪問平臺資源;安全審計可以審計記錄用戶在網(wǎng)絡上的訪問行為;介質(zhì)控制用來嚴格控制各種端口和外設的使用。
2.2.7 綜合展示層
綜合展示層包括用戶門戶和管理者門戶組成。用戶門戶提供給用戶一個申請服務、審批服務、開通服務、監(jiān)控服務等自助服務平臺,用戶可以按需定制服務,通過相應的審批流程完成服務的開通。管理者門戶提供給運維、安全和監(jiān)控管理平臺,主要功能可包括用戶管理、服務管理、配置管理、資源池管理、服務計量和展現(xiàn)、監(jiān)控與報表、日志管理等。
3 應用實例
某企業(yè)以軟件研發(fā)和系統(tǒng)集成為主,企業(yè)內(nèi)部按照市場領域的不同,設置了22個事業(yè)部。由于歷史原因,各事業(yè)部的研發(fā)工作長期處于“各自為戰(zhàn)”的局面,幾乎每個事業(yè)部的開發(fā)測試環(huán)境都自成體系,所采用的硬件、軟件都不盡相同。市場狀況和盈利能力的差異,造成了事業(yè)部開發(fā)測試條件的“貧富不均”,從而導致浪費人力物力、降低效率、提高成本。為了解決這一問題,該企業(yè)通過建立基于云計算的開發(fā)測試平臺,整合各事業(yè)部的軟硬件資源,集中于數(shù)據(jù)中心,按需分配、彈性共享。由于各事業(yè)部項目技術體制各不相同,該企業(yè)選擇以IaaS服務為切入點構建該平臺。
該平臺主要通過虛擬化軟件將物理的計算、存儲、網(wǎng)絡資源進行池化,由云管理平臺實現(xiàn)資源的調(diào)度和管理。系統(tǒng)管理員在管理者門戶上通過云管理平臺功能,制作服務模板,對資源服務進行預定義并發(fā)布到開發(fā)者門戶上;開發(fā)用戶在開發(fā)者門戶上通過選用模板申請資源,由云管理平臺自動進行調(diào)度和分配后,推送給開發(fā)用戶使用。如圖2所示。
通過該平臺,在部門層面各事業(yè)部只需按需申請和使用資源,無需關心硬件管理和維護,可以更專心于軟件開發(fā)工作,開發(fā)效率明顯提升;在企業(yè)層面實現(xiàn)了開發(fā)資源的共享,降低了成本,同時通過與資源使用情況掛鉤的績效考核機制,有效的激勵了各事業(yè)部提升業(yè)績的緊迫感和積極性;同時該平臺的使用,還促進了各事業(yè)部開發(fā)成果的共享交流和相互復用,成為意外收益。
4 結(jié)束語
以云計算技術為基礎的開發(fā)測試平臺構建模式,實現(xiàn)了資源的集中管控,有利于快速搭建、部署、重構、恢復和使用所需開發(fā)測試環(huán)境,充分發(fā)揮了資源效能并實現(xiàn)了研發(fā)能力的提升。在實際應用時平臺的部署方式應根據(jù)企業(yè)的規(guī)模、性質(zhì)、投入能力等情況進行決策,如大中型企業(yè),可以選擇構建私有云平臺,安全可控,但投入不菲;對于小微企業(yè),則可以選擇租用公有云服務構建自己的平臺,靈活且投入較小,但不適宜涉及企業(yè)敏感信息??偠灾朴嬎氵€處于高速發(fā)展階段,我們不能定性的判斷哪種形態(tài)的開發(fā)測試云平臺的最好,只有選用最合適的才會對企業(yè)發(fā)展提供最大的幫助。
參考文獻:
[1] 周洪波.云計算:技術、應用、標準和商業(yè)模式[M].北京:電子工業(yè)出版社,2011.
[2] 丁祥郭.基于云計算的消防通信指揮系統(tǒng)架構研究[J].計算機光盤軟件與應用,2014.
[3] 張忠琳.基于openstack 云平臺的docker 應用[J].軟件,2014.