并行科技:精益軟件交付
“shutterbug”——美國俚語中的“攝影愛好者”,他們不僅對用光、色彩、構圖等近乎苛求,還衷于CCD、CMOS感光元件技術、全畫幅鏡頭的技術研究。
并行科技ParaAlarm的啟動畫面,是新西蘭東南端的Nugget point海岬,壯觀的碎石路、燈塔和日出,正是出自并行科技運營總監楊昆的攝像機下。我們不禁好奇苛求細節、執著技術是如何感染工作的,讓我們細讀本期對話楊昆。
并行科技:軟件交付是如何在速度、成本、質量和風險之間實現平衡的?
楊昆:確實會面臨這樣的問題,這個問題又取決于軟件類型和客戶群體。
具體說Paramon和Paratune這類軟件,如果在平臺期,大版本更新是一年一次,小版本則是四個季度各一。
而另外一類軟件則完全不同,以ParaAlarm為例,這種移動端軟件要求實時更新,所有***的功能都要***時間給到用戶。我們就要做到快速迭代,盡量縮短開發周期,當前發布周期是每個月出一個新版本,有時針對一些特殊情況還會推出hotfix版本,所以這就會涉及交付速度與交付質量的平衡。
我們采用的方式是在眾多的功能中做一些取舍,做一個折中,根據用戶需求及功能成熟度選擇。
所謂的折中,是指優先保證強需求的功能實現,而不可以是代碼質量的折中。代碼質量是首先需要保障的,絲毫不能讓步。
而提及成本方面,我們現在是不計成本,努力給用戶提供***的軟件和服務,質量和速度是我們首要關注的。
并行科技:技術進步、系統平臺演進、開發語言的變革,會帶來哪些挑戰?
楊昆:挑戰挺多的。09年Paramon***個版本誕生,當時采用的技術、工具相對簡單。現今的Paramon已經發展為一款功能非常強大的軟件,是OITS整個業務中的一環。隨著客戶需求細化,行業技術趨勢演進,軟件功能還會不斷完善和增加。
軟件的安裝使用越來越方便,涉及到了越來越多的開發工具和編程語言,復雜度也大大增加。
新技術不斷出現,甚至一些是顛覆性的技術,我們的交付思路也要隨之轉變。
系統平臺的演進,是個很正常的演化過程,OITS就是完全依托于云平臺、基于公有云提供的方案,通過云端匯聚進而提供相應的服務。
從Client/Server擴展到了云架構,OITS實際就是高性能計算領域中的大數據平臺,為用戶提供各種數據支持,及時發現問題并提供解決方案。云化把過去分散的資源集中,帶來了效率和生產力的提高。
并行科技:通常造成交付延遲,會有哪些因素?
楊昆:說到交付延遲,造成的因素各有不同。
如果用ParaAlarm舉例來說,ParaAlarm是我們行業首創,很多功能是由并行驅動。
我們會不斷確定哪些功能可以給用戶帶來價值。在開發過程中,遇到典型的情況是開發重點的切換,這就會帶來開發計劃更改,有時甚至是整個計劃取消,這種情況就會造成延遲。由于是行業首創,也需要不斷磨合,摸索,進入正常的迭代周期,保證我們的交付質量。
保障交付質量是基礎,在整個開發過程中必須及時反饋、隨時溝通。在開發早期提供內部測試版本進行體驗、收集反饋意見,然后不斷完善。
我覺得這個問題從另一個角度考慮比較好,就是什么樣的方案可以避免延遲的出現?那就是盡可能高程度的自動化,就好像汽車生產的流水線一樣,從產品化的角度來說,一個軟件內部Built的自動化程度越高,效率也越高,延遲、出錯率越小。
并行科技:有說法稱,交付從技術向服務轉型的時代已經到來,對此您的看法是?
楊昆:非常同意。
以前是笨重的軟件交付,我們需要幫助用戶安裝和調試各個軟件模塊,確保一切功能正常。現在的交付過程越來越簡化和透明,依托于云,用戶只是感受到我們提供的服務而已。
具體舉例說,通過手機隨時觀察作業的運行狀況、停止作業、實現“殺作業”的功能,是用戶非常迫切的需求,ParaAlarm未來版本就可實現,這是標準的作業調度系統中的功能。屆時用戶無需對移動端ParaAlarm、數據中心Paramon版本做任何變動,數據中心無需重新部署,我們在云端更新后,用戶只需打開ParaAlarm重新登錄,就可以做“殺作業”的操作了。
我們以用戶提出的功能需求為導向,借助云環境,提供服務。
并行科技:虛擬化、云技術的發展,是否帶來了新的體驗,隨之帶來了哪些困難?
楊昆:隨著云技術的發展,交付維度也在擴展。
就OITS舉例說需要交付兩個層面:一個是傳統的最終用戶端,另一個是云端系統。
傳統交付即直接交付給最終用戶,在OITS整個業務中,用戶在數據中心服務器上部署Paramon和相關組件,在移動終端上安裝ParaAlarm,這兩個軟件都與OITS公有云連接。用戶進行軟件更新,交付環節結束。
另一個維度的交付,就是在云概念下,我們提供的基于互聯網HPC+的服務來說,交付對象還包含云端系統。我們把軟件更新到云端、完成交付過程。整個過程分階段,會有嚴格的測試、驗證,保證不會因為交付給用戶造成干擾,所有的交付過程對用戶是透明的,用戶無需看到只體驗***的功能和服務即可。
交付的概念擴展了,交付的內容和對象也不同。
依托于云,我們也要考慮到虛擬化技術和網絡架構對我們所提供的服務的影響,像網絡延遲、數據中斷等問題,以及每個用戶的特殊情況,都要考慮到。這個從最開始設計功能的時候,就要有交付思維。
并行科技:您曾在聯想、Canonical和紅帽有豐富的行業經驗,關于軟件交付能力建設,您有哪些獨到的觀點可以與我們分享?
楊昆:交付能力建設的目的,是保證整個交付過程敏捷,所謂敏捷,就是既要快又要靈活,同時以保證交付質量為前提。
我們開發了PBS(Paratera Build System)來實現軟件構建自動化。PBS從2010年開始使用,期間做過兩次大的升級。PBS就好比是一條自動化的軟件生產流水線,新的功能、技術可以在這條流水線上靈活調整,確保最終產品具有相應的配置。
同一款軟件會有多個分支或者叫“flavor”,例如Paramon有專業版、集群版、定制版、基礎版等等,我們會在PBS系統中設置獨立的Build規則,提高軟件構建自動化程度和交付質量。
根據軟件的特點,PBS也會越來越復雜,要構建的模塊越來越多,支持更多的定制版本,雖然維護成本相應增加,但是給用戶帶來的價值會越來越高。
同時,整個交付過程要具有應對突發情況的能力。
例如出現特殊情況時,PBS系統中會對某些環節臨時關掉或調整。如果用汽車生產線舉例,當安裝后視鏡的生產線出現問題,如何迅速切換到另外的生產線,在故障排除后再繼續安裝,這也是對交付靈活度的考驗。
所以說到敏捷,需要有一個機制,即當出現問題時可以快速回退,生產過程中的問題也要響應及時。要做到敏捷,就需要有一個強有力的平臺支持團隊,利用***的工具和方法與業務融合,高效地對用戶提供支持。