法曉宇
(中國電子科技集團公司第28 研究所,江蘇 南京 210007)
devops是軟件開發(fā)、技術(shù)運營和質(zhì)量保障的有機結(jié)合,包括軟件開發(fā)與項目管理階段所包含的基本方法和實踐策略。相關(guān)人員應(yīng)注重在架構(gòu)設(shè)計、開發(fā)、測試和運維階段,對整個過程進行研究,并且利用精細(xì)化管理理念和全過程思維,對devops軟件進行有效開發(fā)與應(yīng)用,滿足項目管理與控制工作要求。
devops包含development和operations,是開發(fā)和運營維護的總稱。軟件設(shè)計過程中,應(yīng)對開發(fā)部門、運維部門進行協(xié)調(diào),確保各項工作流程與方法高效使用,為項目管理工作提供可靠參考?;赿evops軟件開發(fā)源于2009年歐洲傳統(tǒng)IT模式,對解決運維管理問題起到關(guān)鍵作用。為鞏固軟件設(shè)計與開發(fā)結(jié)果,將開發(fā)、運維與測試結(jié)合一起,形成了devops軟件開發(fā)管理模式[1]。
基于devops軟件開發(fā)可對測試環(huán)境進行應(yīng)用,同時可將數(shù)據(jù)包融入到軟件環(huán)境中。devops立足全局角度,對開發(fā)效果進行分析,加強人員之間的合作與交流也是軟件開發(fā)設(shè)計工作重點,應(yīng)對其進行合理安排。在devops框架下,對軟件進行開發(fā)可實現(xiàn)自動化操作,使得人機交互方案應(yīng)用具有可行性。
devops集中軟件開發(fā)運維和質(zhì)量控制,是先進的軟件開發(fā)管理模式,為IT從業(yè)人員提供了可靠的技術(shù)參考。實踐工作中,應(yīng)認(rèn)識到軟件開發(fā)技術(shù)應(yīng)用的必要性,對相關(guān)設(shè)計理念進行分析,使得研發(fā)優(yōu)勢得到彰顯。同時,在軟件設(shè)計與運維過程中,通過對devops設(shè)計框架的研究,有利于促進開發(fā)團隊與運營團隊之間協(xié)調(diào)配合,可提高工作效率,促進運維管理信息化與現(xiàn)代化。
以某數(shù)據(jù)中心的運維管理平臺為例,對devops軟件的常用工具進行分析,包括項目管理、開發(fā)工具、持續(xù)集成、交付部署和持續(xù)運營等部分。利用devops軟件,項目經(jīng)理構(gòu)建了Backlog與Sprint,同時,對Sprint下的具體任務(wù)進行設(shè)計開發(fā)運維人員利用工具中程序,對任務(wù)進行跟進與狀態(tài)更新。更新后的數(shù)據(jù)實時顯示在項目管理平臺上,方便查看和調(diào)用[2]。
由于Subversion是一個開源版本的管理系統(tǒng),需要將其放在中心版本庫中,對文件進行記錄,不僅可對代碼進行開發(fā),同時也可運維腳本進行監(jiān)控。與普通的文件服務(wù)器比較,其最大的使用優(yōu)勢是對以往數(shù)據(jù)的恢復(fù),可通過修改目錄的方式將管理數(shù)據(jù)恢復(fù)到以前版本。同時,在devops中也存在項目構(gòu)建工具、腳本處理和測試工具,為相關(guān)任務(wù)管理和自動化檢測工作提供技術(shù)支持。此外,也包括基于Java開發(fā)的持續(xù)系統(tǒng)集成工具,用于發(fā)布軟件測試版本。
基于devops軟件開發(fā)中,應(yīng)用了交付與部署軟件,通過Ansible與Python開發(fā)了自動化運維工具,并且集合puppet,cfengine、chef等框架結(jié)構(gòu)優(yōu)點,對設(shè)計語言進行批量操作,同時,也優(yōu)化了系統(tǒng)配置和程序調(diào)用軟件,對開發(fā)維護技術(shù)選擇提供了參考價值。本項目研究中,主要利用Ansible實現(xiàn)流程編排與批量系統(tǒng)配置,真正做到在devops軟件系統(tǒng)中,對相關(guān)模塊進行設(shè)計[3]。
Devops開發(fā)流程可具體分為以下方面:一是管理與計劃;二是集成與測試;三是交付與部署;四是監(jiān)控與運維。管理與計劃階段,功能負(fù)責(zé)人應(yīng)對設(shè)計過程進行討論,并且制定詳盡的計劃,從實際角度出發(fā),對項目開發(fā)的可行性進行研究。項目整體計劃和任務(wù)情況,被創(chuàng)建在管理平臺上,并且對所有人可見。集成測試階段,應(yīng)開發(fā)實踐應(yīng)用方法,確保代碼與產(chǎn)品結(jié)合。每一次代碼的改動均需要在模擬環(huán)境中完成,并且對設(shè)計結(jié)果進行嚴(yán)格的自動化檢測,以期確保相關(guān)服務(wù)和功能得到實現(xiàn)[4]。
運維管理平臺為企業(yè)員工管理系統(tǒng),采用Devops架構(gòu)進行設(shè)計,主要包括以下方面內(nèi)容:
一是制定方案,由項目經(jīng)理和相關(guān)領(lǐng)導(dǎo)層對本管理平臺的年度Backlog進行方案設(shè)計,并且將總體目標(biāo)和預(yù)期達到的效果進行明示,交付項目設(shè)計團隊,進行軟件管理系統(tǒng)設(shè)計。在此過程中,該企業(yè)相關(guān)負(fù)責(zé)人,對軟件的設(shè)計要點和完成時間進行要求,要求在Backlog中確定Sprint系統(tǒng),并且對系統(tǒng)內(nèi)的任務(wù)模塊進行開發(fā),詳細(xì)制定sprint任務(wù)分配情況[5]。
二是定義細(xì)節(jié),該階段對應(yīng)需求分析環(huán)節(jié),考慮軟件功能、開發(fā)流程和設(shè)計效果,致力于將運維管理各項因素進行細(xì)節(jié)分析,完成相關(guān)設(shè)計圖。在具體設(shè)計中,相關(guān)人員應(yīng)并測試用例和自動化測試代碼,并且對數(shù)據(jù)庫表結(jié)構(gòu)進行詳細(xì)設(shè)計,滿足運維管理工作需求。值得注意的是,相關(guān)設(shè)計文檔、測試用例和運維腳本都需要在Subversion框架內(nèi)進行設(shè)計[6]。為落實精細(xì)化管理理念,應(yīng)做好功能分區(qū),對不合理的功能區(qū)進行重新劃分,并且對名稱進行修改,實現(xiàn)對系統(tǒng)任務(wù)的有效調(diào)整,滿足軟件設(shè)計與更新要求。
三是開發(fā)應(yīng)用,該運營管理平臺運用Maven對代碼生命周期進行管理,代碼創(chuàng)建者應(yīng)對Jar壓縮吧進行解析,注重以pom.xml的形式完成文件配置,實現(xiàn)對相關(guān)文件的下載和應(yīng)用。具體應(yīng)用中,開發(fā)人員應(yīng)在SVN框架內(nèi),度模塊代碼進行解析,關(guān)注代碼指令應(yīng)用效果,并且保證開發(fā)環(huán)境中的代碼與產(chǎn)品模擬環(huán)境中的代碼各自獨立,實現(xiàn)對devops架構(gòu)的合理設(shè)計[7]。
優(yōu)秀的軟件系統(tǒng)框架應(yīng)滿足以下方面要求:(1)穩(wěn)定性要求,即保證軟件負(fù)載均衡,具有較強的運維能力,可做到在多種環(huán)境下穩(wěn)定工作[8]。(2)擴展性。軟件研發(fā)中,應(yīng)注重增加系統(tǒng)功能。技術(shù)人員可對較小模塊進行設(shè)計,并且對軟件系統(tǒng)部分模塊進行升級,無線對整個系統(tǒng)進行重新構(gòu)建。同時擴展性功能也是軟件升級穩(wěn)定合理的保證,應(yīng)注重在devops架構(gòu)內(nèi)對相關(guān)功能進行研究。(3)自我保護與安全性。通過對系統(tǒng)軟件的開發(fā)設(shè)計,實現(xiàn)對部分結(jié)構(gòu)的拆解,利用隊列和限流等手段,控制高峰流量對系統(tǒng)造成的負(fù)載壓力,促使系統(tǒng)結(jié)構(gòu)更加穩(wěn)定,達到對運行環(huán)境的合理保護[9]??紤]到運行安全要求,可將敏感服務(wù)加入到權(quán)限與認(rèn)證體系中,通過該種方式了減少常見的漏洞和安全風(fēng)險。例如,在SQL命令語句中,添加XSS、CSRF等語句,實現(xiàn)對風(fēng)險要素有效控制[10]。
綜上所述,在devops架構(gòu)設(shè)計中,應(yīng)對其常用工具進行分析,對相關(guān)的運行腳本進行控制,滿足設(shè)計要求。同時,在軟件研發(fā)與應(yīng)用中,需要對開發(fā)流程進行明確,關(guān)注開發(fā)計劃方案制定和軟件設(shè)計規(guī)范,并且做好軟件維護管理,使得計算機系統(tǒng)中,devops架構(gòu)設(shè)計科學(xué)有效,與新時期軟件設(shè)計理念相符合。