OPNFV XCI:跨社區(qū)集成實現(xiàn)開放創(chuàng)新

Linux基金會下的OPNFV項目是通過集成,部署和測試促進各種開源生態(tài)系統(tǒng)網絡功能虛擬化(NFV)組件的開發(fā)和演進的開源項目,該項目目前宣布了其跨社區(qū)持續(xù)集成(XCI)方案,意圖通過增加OPNFV社區(qū)和上游社區(qū)之間的協(xié)作來實現(xiàn)創(chuàng)新。

通過XCI,OPNFV能夠定期整合來自選定的上游社區(qū)項目的每個支持的分支的最新信息,縮短實施新功能的時間和解決問題的時間。OPNFV項目通過構建復雜的持續(xù)集成(CI)來支持DevOps開發(fā)模式,目前已經整合了OpenStack、OpenDaylight、FD.io等上游項目的主要版本,這些項目的主要版本更新周期可能會很長,延遲了OPNFV成員對上游項目的應用,同時也延遲了上游社區(qū)從OPNFV測試中獲得有價值的反饋的速度。XCI計劃通過定期集成和測試多個上游項目的最新軟件版本來解決這個問題。

Orange NFV架構師Morgan Richomme表示:“開源社區(qū)需要XCI來解決OPNFV中復雜的測試挑戰(zhàn),從壓力、穩(wěn)健性、彈性、VNF和端到端測試入手,XCI已經成為OPNFV DNA的一部分,使OPNFV的成員能夠盡快地從上游進行測試,以提供真實的電信級的反饋和編排。”

面臨的挑戰(zhàn)

最新的針對通信服務提供商(CSP)的調查顯示,80%的受訪者認為DevOps軟件開發(fā)模式對NFV的成功至關重要。DevOps最主要的實現(xiàn)方式是評估DevOps工具鏈、自動化和測試基礎設施。

從OPNFV的角度看,DevOps意味著通過應用CI/CD原則、自動化和實踐來開發(fā)、測試、部署和監(jiān)控軟件系統(tǒng),開發(fā)和運維團隊協(xié)同工作,從而實現(xiàn)文化和思維方式的轉變。持續(xù)集成和持續(xù)部署(CI/CD)作為DevOps的重要組成部分,是OPNFV項目成立以來一直在努力的方向。OPNFV的CI管道使得社區(qū)從DevOps方式中受益,用戶可以快速訪問新功能,開發(fā)人員能夠快速收到反饋,整個軟件堆棧以漸進式的方式得到改進。

目前OPNFV CI渠道可以概括如下:

OPNFV項目帶動了上游項目的主要版本的發(fā)展,例如OPNFV集成了OpenStack的Newton版本對發(fā)送給OPNFV Gerrit的補丁進行審查,向提交者和審閱者提供對該補丁的反饋通過OPNFV Pharos項目,在多個硬件平臺的各種環(huán)境中進行自動部署。CI渠道目前每天都集成并安裝堆棧組件、項目和配置的不同組合,并對每個方案執(zhí)行煙霧測試(smoke test),并針對該場景附加自動化測試。

下圖總結了這三個流程:

現(xiàn)有的途徑雖然相對先進,但總是可以改進的,現(xiàn)有方法的主要挑戰(zhàn)是上游項目的代碼不是最新的,下圖顯示上游項目融入OPNFV的方式。

下面將介紹目前的方式存在的缺陷:

· 對上游最新版本概念驗證(PoC)周期非常長,如上圖所示,一旦開發(fā)人員提交代碼,可能需要2到8個月的時間才能在OPNFV中顯示特性,然后還需要4個月左右的時間才能在OPNFV的版本中實現(xiàn)該功能,總體時間長達7個月至12個月。以OpenStack為例,假設在2016年3月底或4月初為Newton版本合并的補丁將在2017年4月4日在OPNFV Danube上出現(xiàn)。

· 上游項目中的新功能存在錯誤,OPNFV用戶想要提交一個修復補丁,這個周期可能需要3到8個月。然后可能還需要5到10個月才能在下一個上游項目的版本中才能修復,然后再過6個月會在OPNFV的下一個版本中出現(xiàn)。因此,要開發(fā)、調試并最終出現(xiàn)在OPNFV版本中的新功能可能需要14-24個月的時間。

很明顯,這么長的整合周期不利于社區(qū)的快速整合、驗證并實現(xiàn)驗證目標,XCI的目標是改變這種狀況。

XCI方案簡介

XCI計劃定期集成來自所有支持的上游社區(qū)的最新版本,而不是等待主要的發(fā)布版本。該舉措將從OpenStack、OpenDaylight控制器和FD.io虛擬交換機的定期集成開始。下圖顯示了XCI的工作機制:

XCI涉及到兩個主要的集成和測試任務:

· 對于社區(qū)成員上傳的補丁,OPNFV XCI將根據(jù)項目和補丁進行驗證,以+1/-1的形式向上游社區(qū)提供反饋

· OPNFV XCI將定期使用來自所有支持的版本的最新信息,將其集成并安裝到場景中,并針對這些場景執(zhí)行CI測試

這有效解決了上述提到的關鍵問題,能夠快速利用上游項目的變化,可以迅速提供反饋,功能開發(fā)或錯誤修復將會縮短到幾天時間內完成。

XCI利用RelEng和Pharos項目中的大部分當前工具。此外,XCI使用兩種OpenStack基礎設施工具:Bifrost和OpenStack-Ansible(OSA),用于配置節(jié)點,并安裝由最新支持的OpenStack,ODL和FD.io分支構建的不同方案:

· Bifrost:Bifrost是OpenStack配置服務器節(jié)點的裸機配置項目,建立在OpenStack Ironic項目的基礎之上,除了獨立于其他OpenStack服務之外,該項目提供了一套Ansible操作手冊,以自動方式將基本映像部署到裸機硬件上。

· OpenStack-Ansible:OSA也是一個OpenStack項目,它使用Ansible在預配節(jié)點上部署OpenStack環(huán)境。該項目創(chuàng)建Ansible可以部署核心和可選的OpenStack服務,OSA用于安裝ODL和FD.io的不同場景。

借助上述工具,XCI將支持三種基本的操作系統(tǒng):Ubuntu 16.04,CentOS 7和OpenSUSE 42.2。XCI計劃還有其他復雜性:因為Bifrost和OSA實際上是OpenStack項目,所以它們也必須定期固定和測試,因為舊版本可能無法部署最新的代碼。因此,用戶可能需要安裝CI軟件和CI工具。

XCI開發(fā)者沙箱

除了上述自動化流程之外,開發(fā)人員還能夠根據(jù)最新版本的上游項目進行本地開發(fā)和測試,XCI沙箱環(huán)境使得開發(fā)人員使用最新的上游代碼或他們本地開發(fā)的代碼來實施方案。而且XCI沙箱環(huán)境還能夠讓開發(fā)人員在單個節(jié)點,甚至在筆記本電腦上實現(xiàn)這些功能,而不需要完整的Pharos POD。其功能包括:

· 提供自動化設置開發(fā)和測試環(huán)境的方式

· 提供不同風格的環(huán)境

· 支持不同版本的上游組件

· 支持同一種機制來啟用或禁用額外的OpenStack或其他上游項目

目前來看,沙箱環(huán)境有四種選擇(xci-aio,xci-mini,xci-noha,xci-ha),隨著硬件需求的增加,這些不同的沙箱環(huán)境消耗1-6個虛擬機。例如,xci-ha的風格是最耗資源的,每個虛擬機需要8個vCPU,16GB RAM和80GB磁盤,安裝需要2個小時10分鐘。

總之,XCI計劃將CI管道的連續(xù)性延伸到上游項目。 而最初的上游項目XCI將整合在一起OpenStack,ODL和FD.io,未來還將努力擴展到其他上游項目,如ONAP。

極客網企業(yè)會員

免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。

2017-11-09
OPNFV XCI:跨社區(qū)集成實現(xiàn)開放創(chuàng)新
OPNFV XCI:跨社區(qū)集成實現(xiàn)開放創(chuàng)新,Linux基金會下的OPNFV項目是通過集成,部署和測試促進各種開源生態(tài)系統(tǒng)網絡功能虛擬化(NFV)

長按掃碼 閱讀全文