IBM混合多云平臺,助力企業(yè)實現(xiàn)應用現(xiàn)代化和容器化
IBM 與 Red Hat 的強強聯(lián)合,正中開發(fā)者們的下懷?;?Red Hat OpenShift 構建的 Cloud Pak,可以實現(xiàn)任意云平臺的應用開發(fā)。
作為開發(fā)者,您的目標是編寫出色的代碼并解決業(yè)務問題。效率對開發(fā)者是一個重要部分,但在團隊中保持高效并不僅僅取決于您的頭腦。您需要正確的工具和技術才能快速開展工作,創(chuàng)建最佳應用程序。
將新工具和框架集成到某種平臺中的挑戰(zhàn)可能會分散您的精力,讓您無法集中全力完成解決業(yè)務問題這一主要任務。雖然 Kubernetes 已成為廣受開發(fā)者歡迎的平臺,但它本身并不是一個完整的開發(fā)平臺。
您如何才能獲得所需的基于容器的開發(fā)平臺,一站式整合架構師、運維人員和開發(fā)者的需求?您可以自行構建,但這需要花費時間和資源,而您的團隊目前也可能并不具備必要的知識。
這就是 IBM 基于開源的全新產(chǎn)品的用武之地。IBM Cloud Pak for Applications (ICPA) 將基于 Kubernetes 的 Red Hat OpenShift 平臺與開源項目 Kabanero 結合在一起,幫助企業(yè)更快速、更輕松地針對 Kubernetes 和 Knative 開發(fā)和部署應用程序。
在這篇博客中,我們仔細研究了 ICPA 所基于的底層開源軟件及其解決的一些常見開發(fā)問題。
問題探究
團隊采用 Kubernetes 的目的通常是為了簡化開發(fā)和部署,并獲得容器化的所有好處。但他們并未考慮到容器環(huán)境所帶來的復雜性。雖然 Kubernetes 在管理服務器基礎架構上的容器放置、將工作路由到這些容器以及在發(fā)生故障后恢復正常等方面表現(xiàn)出眾,但它還無法為嘗試構建云原生應用程序的開發(fā)者和架構師提供全面支持。
為開發(fā)團隊構建平臺是一項重大任務。您需要做到事無巨細、面面俱到——從選擇和集成正確的開源項目集,到選擇 IDE 和構建工具、管道、源代碼控制、安全掃描和測試,無一遺漏。添加更新和安全修訂時,這會成為一項全職開發(fā)工作。我們的目標是解決這些問題并降低復雜性,進而提高團隊中所有開發(fā)者的工作效率。
那么如何才能做到呢?
首先,我們要認識到,具有一定程度的一致性當然很好。一致的工具可幫助團隊有效積累和分享知識。一致的工具最終可促成人人都能理解一致的交付流程,而一致的流程則可以降低人為錯誤風險。自動化則可以成為制勝法寶。
改善組織各部分和團隊內(nèi)部之間的協(xié)作,對于提高生產(chǎn)力至關重要。架構師和開發(fā)者需要采用一致的機制來確定他們的技術決策,然后在更廣的范圍內(nèi)進行分享。
對于許多團隊而言,使用容器是朝這個方向邁出的一步,并且也是在與 Kubernetes 配對使用。然而,容器的自由度和靈活性意味著人們最終使用的容器往往太多。選擇過于豐富,最終帶來了復雜性、不一致和低效率這些問題。
原型順暢地過渡到生產(chǎn)
Kabanero 簡化了構建基于容器的應用程序以部署到混合云上這一任務。Kabanero 使用 OKD(Red Hat OpenShift 的上游項目)在 Kubernetes 上為您奠定了穩(wěn)固而可靠的基礎。在此基礎上,添加必要的基礎架構,進而提供持續(xù)集成/持續(xù)交付 (CI/CD) 管道和基本服務,例如,日志記錄、監(jiān)控、服務網(wǎng)格和 Knative 無服務器功能。到目前為止一切都還不錯,但是,是什么讓 Kabanero 出類拔萃呢?
稍后我們將更詳細地介紹具體的開發(fā)工具,在這之前,我們先要了解 Kabanero 如何提供一種通用方法,通過 IDE 擴展所利用的一組基于容器的一致工件來定義、管理和構建應用程序。
Kabanero 引入了“集合”的概念。集合可將語言、運行時和框架選擇以及允許其插入 Kabanero 基礎的基礎架構綁定結合在一起。集合為捕獲開發(fā)者和架構師共同制定的決策提供了一致的方法。通過一組預定義的集合,在集成基礎架構時就避免了無謂的猜測。
Appsody 及其相關的命令行工具(CLI) 為創(chuàng)建基于容器的應用程序提供了基本構建塊。Appsody 堆棧結合了容器中的運行時和框架以及通用代碼和服務。例如,Java MicroProfile 堆棧包括預定義的運行狀況和度量標準端點,因此使用該堆棧構建的所有應用程序都具有即取即用的通用功能。
開發(fā)者可以快速采用堆棧,并開始構建新的云原生應用。Appsody 使用預定義的堆棧不斷地為您的應用重建容器鏡像。因此,您的應用始終構建在最新的堆棧上,并且可以自動準備在容器中進行測試,就像它在生產(chǎn)中運行一樣。
通過管道自動化和 IDE 集成
更快速地構建應用
Kabanero 基礎架構與 GitHub 集成,因此提交代碼會觸發(fā)自動化 CI/CD 管道。通過使用屬于 Kabanero 集合的預定義集成點,管道基礎架構會針對最新版本的 Appsody 堆棧來構建應用程序代碼。
由于應用使用的是通用堆棧,因此開發(fā)者可以確信應用程序在生產(chǎn)環(huán)境中的運行狀況與在開發(fā)環(huán)境中并不會有什么不同。這就提高了一致性,降低了代碼進入生產(chǎn)環(huán)境時出錯的風險。如果您需要隨時待命,但又不想在半夜被叫醒的話,這非常重要!
Kabanero 不僅僅是 Kubernetes 上的基礎架構。它最初開始于與 Eclipse 和 VSCode 等流行的 IDE 集成的開發(fā)者工具。Eclipse Codewind 項目從一開始就幫助開發(fā)者在容器中構建云原生微服務和基于功能的應用程序。它提供能夠理解 Appsody 堆棧的擴展,因此您可以使用預定義的堆棧開始構建,并直接在 IDE 中從 Codewind 的自動容器構建獲益。Eclipse Codewind 中的性能儀表板可幫助您在開發(fā)周期的早期立即開始了解新應用或服務的性能特征。
從開源入手
按需添加支持
Kabanero、Appsody 和 Codewind 以及創(chuàng)建 Kabanero 基礎的其他基礎架構組件全都是開源的。有了這些技術,團隊就可以更加方便快捷地專注于解決業(yè)務問題,而不是基礎架構決策。
當您的團隊需要支持時,可以通過 IBM Cloud Pak for Applications 獲得支持。IBM Cloud Pak for Applications 可以集成、保護和認證這些開源項目,為您提供一站式解決方案,幫助您在云原生模型中重構應用程序。通過使用 ICPA,只需稍作修改便可將現(xiàn)有應用程序移至基于 Kubernetes 的更高效的運作模型中。您的開發(fā)者也可以回過頭來編寫能夠解決實際業(yè)務需求的出色代碼。