開發界中的兩大IDE(Integrated Development Environment)陣營之一IBM Rational的總經理,也是前IBM雲端運算部門的技術長Kristof Kloeckner來臺灣,推廣可達到軟體持續交付的開發方法DevOps(來自Development和Operations 2個字的縮寫組合),這也是不少大型雲端服務能夠快速版本更新的秘訣之一,如Flickr就運用了DevOps開發方法來加快服務改版速度,甚至一天可以因功能需求,發布10次小改版。

Kristof Kloeckner表示,DevOps開發方法藉由將各開發階段自動化以及訊息公開,幫助企業軟體研發相關部門,解決傳統流程端對端(End to end)所產生訊息不對稱,以及協作不順暢的問題,並且自動化開發流程的每個階段,進而提升軟體交付的速度。

 Q  為什麼要使用DevOps開發方法?

 A  雲端時代讓某些應用服務的載體移往雲端,這表示更有彈性的服務環境,開發人員現在已經不需要擔心基礎架構、中介軟體或是環境設定,而新的挑戰轉移到開發速度,尤其是行動裝置的App,使用者希望企業以更快的速度完成App,而且要持續不斷的提供更新,交付時程劇烈縮減,可能從月到周到日,甚至以小時為單位進行改版。

CIO在雲端時代必須聚焦在總體商業的結果,了解究竟IT提供企業什麼價值,這包含三個要點,應用程式部署的速度、衡量風險、控制成本。如果守著過去開發及營運模式,對於以上提及的三點將失去競爭力,也因為如此,傳統的方式必須改變。

這也是為什麼我們談DevOps開發方法,開發以及營運團隊要更緊密合作,這過程需要一些工具支援任務交接以及達到訊息傳遞等,讓問題快速被解決,IBM推廣DevOps開發方法的觀念及工具,可以做到快速的實作、快速的部署、快速的完成軟體週期以及快速的得到用戶回饋。

 Q  為什麼要注重軟體交付速度?

 A  CIO知道從開發到營運的過程,很多做法是很沒有效率的,尤其當想要趕工加速軟體交付的速度,軟體品質會因為沒有充裕的時間測試而下降,抑或是頻繁要求更改環境設定,整體控制缺乏一致性。

開發團隊與營運團隊經常溝通發生障礙,開發團隊認為營運團隊粗心又沒有良好規畫,反之營運團隊覺得開發團隊組織很僵化,最後因為CEO認為軟體開發效率不彰,不幸的CIO就被炒魷魚了,我看過這一切發生。

從企業角度來說,軟體交付很重要,如果你交付了有問題的App,或是讓有問題的網站上線了,商譽立即會受到影響,而這必須付出極高的代價,因此軟體公司的成功,依靠IT讓開發團隊與營運團隊的密切合作,從而弭平文化鴻溝是重要的。

就典型的例子,網路零售商想要在網站新增品項,此時影響商譽不光是商店營運本身,很大一部分是IT能否幫助零售商維持高品質的網站服務。

 Q  DevOps開發方法與傳統開發流程有什麼不一樣?

 A  DevOps開發方法是敏捷(Agile)以及精實(Lean)開發概念的延伸,有別於傳統開發流程,DevOps開發方法打破每個獨立的階段,從需求分析、系統設計、程式開發、安裝測試、後續維護再回到第一階段,形成一個封閉迴圈。

DevOps開發方法要開發人員持續改善並整合不同的階段,加以組織過去任務所發生的事,開發人員需要自動化的工作流程,自動化開發周期的每一個階段,不僅需要自動化測試,還要自動化部署,且提供自動化的數據給所有參與的人,讓所有人可以合作。

過去的文化需要改變,現在必須量化每件事,依照量化的數據,改善每個階段,這些是根本性的改變,企業主可監看過程產生的數字而不僅是是生意上的結果,才可以用更快的速度創新,更快地抓住市場佔有率,讓顧客開心,以上都是DevOps開發方法的關鍵改變。

 Q  DevOps開發方法對於既有開發及維運的團隊有什麼衝擊?

 A  我們看到的衝擊都是好的,就如同精實開發的精隨,減少不必要的浪費以及重複性的程序,做到剛好符合需求。

DevOps開發方法自動化維運過程,不需要手動做一些繁複的事,因此可以減少錯誤發生,開發人員也可以專注在產生更有品質的程式碼,避免之後不停的修補程式碼,有更多心力去做一些有趣的事,我們也從一些客戶案例看到,開發人員不只更有生產力,他們也更快樂了,而且良好軟體讓維運更容易。

團隊的組織架構必然需要改變,開發和維運團隊需要更緊密合作,這是第一點。第二點是,開發周期循環變快,團隊的人需要不同的技能,並整合這些能力,甚至有一些公司是沒有開發和維運團隊之分,不再有2個團隊或3個團隊,而只有1個團隊。目前已有公司開始徵求DevOps工程師。

 Q  DevOps工程師需要具備什麼能力?

 A  DevOps工程師需要很廣的技能,第一個,他需要能夠了解軟體對於使用者的易用性(Usability),因為使用者回饋是很重要的。另外,也需要能團隊合作,讓應用程式開發更有效率,任務不能分你我,因為這是整個團隊的事。

以企業的角度,企業主必須提升開發人員的熱忱,主動的關注開發工作,並讓他們了解使用DevOps開發方法可以為他們帶來什麼好處。這也不是僅是對開發人員好,而是企業主願意投資在開發工作,也會取得在生意上的回報。

 Q  目前國外企業採用DevOps開發方法的情況?

 A  這跟企業的成熟度有關,我們無法提供確切有多少比例採用DevOps開發方法,大部分的企業還在DevOps開發方法旅程的初期階段,大部分企業會先採用一些比較簡單的實際做法,如自動建置和測試,而網站或雲端服務普遍開始採用自動化部署。

 Q  採用DevOps開發方法可以縮短多少開發時程?

 A  我們有一些來自客戶的數據,軟體測試可以減少90%的時間,版本釋出和部署的頻率可以大幅提升。實際案例顯示,過去要兩年才能釋出1個新產品,導入DevOps開發方法後,一年半可以發布18個成品。


DevOps小百科
DevOps是來自Development和Operations這2個英文字的縮寫組合,顧名思義,DevOps開發方法最主要改善的是開發團隊以及維運團隊的關係。
傳統的端對端開發流程(End to end)概念是指,每一個團隊都有的獨立功能,開發團隊專注軟體開發,維運團隊做軟體部署,但是當功能被明顯切割,必定會影響團隊間訊息的同步,例如維運團隊無法確切掌握軟體執行的環境,當開發團隊遞交的軟體不符合部署環境,或是更改軟體規格時,維運團隊就必須把軟體退回給開發團隊,這樣一來一往耗費時日,軟體交付速度便會受到嚴重影響。
因此如果導入DevOps開發方法中的自動化部署,便可由開發團隊設定部署環境,由工具做自動化部署,減少手動以及傳遞的時間,且可以避免人為錯誤,改善軟體交付品質。 

 

IBM依據DevOps開發的原則,設計出一套IBM的DevOps流程,是以敏捷(Agile)以及精實(Lean)開發概念為延伸,持續且自動化每個階段,使開發流程形成一個封閉迴圈。資料來源:IBM,2014年4月


Advertisement

更多 iThome相關內容