雲端原生能力,是充分發揮雲端價值必不可缺的關鍵要素,本文提供訣竅,說明如何為老舊有軟體注入全新的雲端生命力。
文/John Edwards‧譯/曾祥信
為了充分發揮雲端的規模延展與靈活特性,多數企業採取不只是簡單的負載平移(lift-and-shift)方式,而是為系統注入雲端原生的能力 ─ 此策略聽來簡單,但很快就會發現其實相當複雜。畢竟,就和許多看似簡單的任務一樣,魔鬼藏在細節裡。
好消息是,只要你先具有切合實際的期望並做好充分準備,將老舊應用程式改造為雲端現代化軟體,不必非得是漫長而痛苦的過程。雲端現代化專家提供以下建議,將可協助你避免不必要的痛苦與挫折。
1. 有目的的現代化
IBM Consulting 混合雲服務的管理合夥人 Aparna Sharma 表示,在著手進行前,務必要先將任何應用軟體現代化專案,與正在解決的商業需求連結起來。無論是節省成本、提升安全性、增加軟體功能、或其他任何目的,只有在事先釐清你想要實現什麼目標的情況下,你的努力才會成功。
Sharma 說,她經常看到現代化專案的動機,純粹出自於對最新創新技術的渴望與追求。Sharma 提出警告,這種想法很可能會在日後讓事情變得複雜,她說:「明確了解你的理由 ─ 『為什麼』要做這件事,才能助你做出一系列正確的抉擇,以滿足及解決你的商業需求」。
2. 評估資源,並在必要時與外部合作
成功改造老舊應用軟體為現代化軟體,首先應進行必要的前期作業,以確定要搬移到雲端的工作負載和資產,同時找出相依性、授權影響、商業使用案例與優勢。
託管雲端服務供應商 Navisite 的策略顧問 Steve Woodgate 說:「這項任務需要整個組織內的利害關係者一同參與,而不是只有 IT,同時需要老舊應用程式和目標雲端平台兩方面的專家知識。唯有如此,才能為你的企業定義、發展並執行最理想的雲端遷移與現代化路徑」。
[ 加入 CIO Taiwan 官方 LINE 與 Facebook ,與全球 CIO 同步獲取精華見解 ]
Woodgate 觀察到,將應用程式遷移到雲端的企業經常面臨技能短缺的問題,公司內部缺乏實現無縫轉移所需的專業知識。有鑑於應用程式現代化的複雜性,他指出企業值得尋找外部合作夥伴,來幫助指導轉移流程,並確保在過渡期間將業務影響降至最低。
3. 徹底分析應用程式架構
仔細評估應用程式,以充分了解其軟體架構、相依性與需求。IT 安全公司 NCC Group 雲端安全服務的全球實現負責人 Nandor Csonka 表示:「公司必須找出能夠被搬移到雲端的軟體元件,並評估任何必要的修改」。
接著,要決定最合適的應用程式遷移策略,無論是負載平移、重新建置平台、軟體重構、或是從頭開始打造應用程式。Csonka 建議:「應根據你的目標、時程表和擁有的資源,去選擇最適當的策略」。
4. 重新託管、重構、重新架構、重建、替換 ─ 量身訂做自己的方法
商業顧問公司 PwC 的美國雲端創新和工程負責人 Will Perry 表示,實現應用軟體現代化有許多不同的技術和作法選項,包括:重新託管(rehosting)、重構(refactoring)、重新架構(rearchitecturing)、重新建造(rebuilding)與替換(replacing)。必須仔細研究各種可能的選項,才能在做出最終決定前,挑選最合適的方法。
成功的應用軟體現代化,應可提高商業與 IT 敏捷性和規模擴展性,Perry 如此表示,「重新架構和重構兩種方法,能夠利用雲端服務及解決方案模式的優勢,因此它們通常是最有效的方法」。
5. 現代化相關流程
Deloitte Consulting 的高階主管 Amod Bavare 建議,企業也要將底層商業流程予以現代化,包括用戶體驗與敏捷性。他進一步解釋:「記住這些需求,可幫助實現商業現代化,且同時現代化應用程式架構、技術架構,以及利用原端原生服務的能力,例如人工智慧、機器學習、行動化(mobility)與微服務(microservice)」。
Bavare 認為這種方法極為有效。「你可以幫助企業用戶實現他們的願景和目標,同時提高他們的生產力與在市場上的競爭力」。
6. 制訂長期計劃
技術顧問公司 LTIMindtree 的雲端實踐負責人 Ashish Varerkar 認為,持續性、模組化的方法,是實現現代化的最佳途徑。他觀察到,大多數最初的應用程式現代化專案,都會吸引採用者踏上永無止盡的現代化道路,讓他們能夠逐步地與關鍵商業和技術目標保持一致。Varerkar 警告,試圖建立一體適用的標準化服務目錄並強迫所有應用程式步調一致,是無效的作法。
Varerkar 亦建議,不要從頭開始重寫應用程式。這種作法鮮少能達到目標,而且很容易因為預算刪減、超支或喪失興趣而被放棄。他說:「最佳作法是持續現代化,其中第一階段可包括消除風險及加入新功能,以實現既定目標和關鍵績效指標」。
7. 全面思考
技術顧問公司 Capgemini Americas 的雲端與客製應用程式負責人 Mukund Srinivasan 建議,考慮到各種選項,很重要的一點是採用全面、整體的方法,不僅是解決當前的應用程式現代化問題,還要能因應未來的挑戰。
Srinivasan 表示,資訊長應該妥善利用對雲端轉型具有深刻見解的合作夥伴,特別是透過使用 DevSecOps、雲端原生加速器、基礎設施即程式碼(infrastructure as code)與其他技術和工具所建構而成的雲端平台。「如此可實現快速的軟體交付與多管齊下的現代化方法」。
Srinivasan 說明,整體性方法還讓採用者得以利用 “軟體交付生命週期當中經過驗證的加速器與模式的組合,來加速應用程式的轉型、部署與驗證”。
8. 建立成熟度評估框架
全球管理顧問公司 Zinnov 合夥人 Rajat Kohli,強調建立三步驟成熟度評估框架(maturity assessment framework)的重要性。
Kohli 表示,第一步是發現和評估,以深入了解當前的挑戰和最終結果的需求,同時針對目前技術堆疊與架構進行全面的評估。第二步是建立路線圖(roadmap),這需要發展出藍圖,指出達成最終目標的明確路徑。最後一步是角色分配,將職責指派給特定的利害關係人,以執行不同的關鍵任務。他建議,相關人士包括公司內部與外部團隊、技術供應商,與應用程式測試團隊。
Kohli 相信,建立評估框架能夠提高投資回報率、加速開發進展,並讓企業能在現代化應用程式中建立新功能。他解釋道:「此作法有助讓多個應用程式同時運行,同時與既有應用程式無縫連接。它還能消弭限制生產力與整合工作的障礙,以創造全新用戶體驗,且提升軟體效能」。
9. 元件化
軟體開發公司 Reenbit 聯合創辦人兼科技長 Vasyl Magometa 表示,採用系統化方法非常重要。他建議:「首先,分析你的應用程式架構,找出可以改善的部份。接著,將應用程式拆解成較小、獨立的元件,讓它們能夠個別部署及擴充規模」。
接著,Magometa 建議使用雲端原生服務與技術,例如容器(container)和無伺服器運算(serverless computing),來最佳化應用程式的效能和可擴展性。「最後,透過漸進式的雲端轉移及全面測試,以確保轉換過程順暢無礙」。
10. 發揮容器與微服務的優勢
軟體現代化充滿挑戰性,尤其是首次面臨這項任務的 IT 領導者和團隊。軟體開發公司 Agilie.com 創辦人兼執行長 Sergey Gladun 回憶他需要現代化的第一個主個應用程式,Gladun 形容該任務是極為艱難的專案,牽涉到大量的重構。「我們選擇將龐大應用程式分解成較小、更容易管理的微服務」。
Gladun 說這個過程非常耗時,但它讓應用程式更具規模擴展性、更適合雲端環境。Gladun 解釋道:「微服務讓我們能夠獨立地開發、測試、部署及擴展各個軟體元件,讓整體開發流程更有效率」。此外,透過 Docker 和 Kubernetes 工具實現的容器化,更進一步提升軟體的可擴展性與可攜性,使應用程式能夠跨平台執行。Gladun 總結:「我們的現代化流程不但提升應用程式的效能,而且還簡化軟體的維護與更新工作」。
(本文授權非營利轉載,請註明出處:CIO Taiwan)