軟體業者仿效元素週期表,整理出一個DevOps工具週期表,匯集了上百個相關工具。(圖片來源/XebiaLabs)

9月初,臺灣首次DevOps大會登場,超過340位來自臺灣各行各業的參加者,不只是網路公司或新創公司,還有來自金融、資服、電信業、科技業、創投、甚至是傳統產業的IT人,讓集思臺大會議中心座無虛席。如有位電信業副總經理帶著多位管理階層人員參加,想一窺未來的IT架構變革趨勢,也有臺灣資訊業者總經理,帶頭率旗下研發和維運部門主管和成員全程參與,想找出能讓自家產品研發速度更快一步的關鍵。

跑遍臺灣尋覓IT講師,在中華電信學院資訊學系一手規畫中華電信內部IT教育訓練課程的負責人林光龍也很驚訝地說,本以為這股風潮在臺灣還不盛行,沒想到這麼多人都想了解DevOps,DevOps風潮真的吹進臺灣了。

有位在臺灣知名保險公司任職的女性資訊主管,中場休息時特別走到臺前詢問臺灣是否已有DevOps顧問服務。這家保險公司打算明年要大幅汰換現有開發工具,以符合現在App開發需求。負責編列預算的她,聽到非洲最大標準銀行擁抱DevOps後,服務遞送速度比以前快了2千倍。她非常有興趣,也想要調整開發工具採購計畫,將DevOps工具納入,所以,急著想找人協助評估。

全球知名DevOps工具Chef的全球傳教士Michael Ducy也來臺分享國外趨勢時表示,DevOps名詞問世至今也不過6年,但DevOps已經從邊緣趨勢,更進一步成為企業IT的主流,DevOps不再只是小團隊、新創公司或網站公司解決問題的工具,Michael Ducy表示,除了科技業之外,電信業、零售業、醫療業與能源產業都已經開始重視DevOps。

傳統開發到部署維運的流程中,大多以版本釋出(Release)為分界。Dev流程從功能設計、程式開發、專案布建、測試到釋出。

而Ops多從取得釋出的程式碼版本開始接手,來進行後續的部署和維運工作。Dev和Ops的高牆也豎立在版本釋出階段,隔開了兩個團隊的作業流程。

敏捷開發趨勢已經發展出優化開發速度的成熟作法和工具,例如持續整合(Continuous Integration,CI)工具可以從版本控制系統一路串接到測試、布建和發布的Dev全程自動化。

但也因此,DevOps整合多半所欠缺的是如何整合到後半段的Ops。儘管Ops段也有如ITIL等優化維運的作法,但維運所面臨的複雜性和變動管理,更隨著虛擬化技術的普及和公有雲服務的成熟,Ops團隊不只要管理實體設備還有虛擬環境,甚至也要負責異質平臺的雲端服務,這也成了新式DevOps工具所要解決的課題。

DevOps為開發和維運間反覆迭代的新協作模式

DevOps工具中,過去幾年以持續交付CD(Continuous Delivery)自動化工具為擁抱DevOps常見的上手點。CD不只涵蓋了CI工具的範圍,還進一步跨過發布,延伸到部署。

而DevOps自動化工具則多半從布建開始,串接了測試、發布、部署到維運環節。此外,DevOps監控(Monitoring)工具涵蓋的範圍也多聚焦於布建之後到維運間的流程透明化,和DevOps自動化工具兩者相輔相成,監控工具的示警通知,往往能用來觸發自動化工具採取對應的行動。

DevOps現行作法大多延續已高度自動化的Dev流程,進一步延伸到Ops,一手建立工研院雲端團隊敏捷和CI開發流程,後來獨立成為雲端新創雙子星公司執行長符儒嘉直言,DevOps就是將開發階段快速發布的壓力帶進維運團隊,開發所用的敏捷方法現在也能套用在維運上,「DevOps就是開發和維運間反覆迭代的新協作模式。」

舉例來說,Gogolook架構師葉秉哲表示,導入DevOps時,一般作法是延續現有Dev端工具,沿用現有程式語言與對應開發工具,如敏捷開發所用的單元測試、整合測試工具,常見Dev團隊會使用Jenkins來整合CI和組態。

更進一步跨入Ops段可以靠組態管理系統,讓系統執行環境的狀態能像程式碼一樣地管理。所以,要落實DevOps至少需要配備一套組態管理工具。接著再視執行環境(虛擬機器)部署地點,本地端或是雲端來搭配可支援雲端工作自動化的工具。

葉秉哲表示,雲端供應商多半也會推出專屬自動化工具,若不想受限於單一雲端平臺,可使用開源工具來統整不同雲端廠商的API,如DevOps中常見的工具Chef、Ansible、Puppet等,皆整合雲端部署管理。一般還會搭配適當監控工具來即時回饋系統最新狀態,以實現DevOps另一個快速部署的特色。「並非擁抱DevOps非這些工具不可,但使用這些工具能讓IT流程自動化程度更高。」他表示。

或像HTC得以實踐DevOps的關鍵,HTC技術副理邱炫儒表示,正是導入了一套App建置自動化工具Gradle。這類DevOps工具能夠將IT自動化,讓產品流水線(Pipeline)在頻繁嵌入程式碼的執行建置時,還能追蹤每次變動順利執行。「好用的DevOps工具不能只是協助開發流程順暢執行,還要讓開發流程順利和產品維運端的流程銜接。」他說。

讓基礎架構能像程式碼一樣管理

正如葉秉哲所言,DevOps的目標之一是讓Ops所管理的基礎架構,也能像Dev所管理的程式碼一樣控管,簡而言之,就是要實現「基礎架構程式化」(Infrastructure as Code)。

Michael Ducy表示,連基礎架構都程式化以後,「可像對待程式碼那樣來對待異質維運環境,將元件配置和資源調度分配都程式化。」甚至可以透過程式碼儲存庫,資料備份機制、運算資源的管理上,來重新架構企業的商業模式。

日本樂天集團旗下旅遊網站,2014年因為CI伺服器大當機導致多項服務上市延期,而決定翻新開發到維運的流程。負責重建的樂天旅遊業務開發維運部旅遊網站團隊經理直井和久表示,基礎架構程式化的好處不只是減少開發者和維運團隊間對開發環境溝通的誤解,也讓維運團隊部署工作更容易,只需重現和測試由開發者建立並且驗證過的測試任務和配置菜單。最重要的是,「一旦發生問題,很容易可以回復先前狀態,就像結合版本控制的程式碼一樣。」

Docker更容易實現基礎架構程式化

直井和久表示,樂天從CI架構翻新到實現基礎架構程式化的另一個關鍵技術是Docker。甚至,藉助這項Container主流技術,「能打造出不需變更的基礎架構(Immutable Infrastructure)」。

過去因為基礎架構資源調度和變動管理難度高,為了簡化複雜度,管理維運上傾向建立少量部署範本,在此基礎下進行微幅調整,但如此一來很難為了不同應用更進階的優化需求而建立更多客製配置。

但藉助Docker可以快速建立起能通吃異質環境的部署映像檔,包括不同廠商雲端平臺或本地端環境,還能將配置資訊具備程式化管理特質。

葉秉哲表示,Docker出現後,更容易實現基礎架構程式化,Docker和其生態系所發展的大量叢集管理工具,將會削弱上述DevOps工具的重要性,甚至DevOps工具的排名將重新洗牌,端看這些工具未來與Docker的整合而定。儘管Docker技術仍處於發展階段,但已成為難可撼動的新一代DevOps技術,明年Windows若也能支援,就可通吃兩大主流作業系統。

但對大型企業或傳統企業而言,就如同前述提到有意採用的臺灣保險公司,不一定非得擁抱還在發展中的Docker,才能享有DevOps的好處。現在已有許多DevOps工具和軟體,甚至有軟體業者仿效元素週期表,也整理出一個DevOps工具週期表,匯集了上百個相關工具。

但要如何從中找出合適的好用工具呢?接下來我們找來臺灣具有DevOps實戰經驗的專家,為大家嚴選出他們心中的好用DevOps工具。

相關報導請見「【IT基礎架構邁向程式化的第一步】專家嚴選DevOps自動化工具」


Advertisement

更多 iThome相關內容