IBM釋出原生雲端K8s應用程式開發框架Kabanero
<div class="field field-name-field-news-column-category field-type-taxonomy-term-reference field-label-hidden"><div class="field-items"><div class="field-item even"><a href="/tags/%E6%96%B0%E8%81%9E">新聞</a></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"> <p><a href="https://developer.ibm.com/blogs/cloud-native-apps-kubernetes-kabanero/">IBM在OSCON 2019大會上,一口氣釋出了雲端開發相關的三項開源專案</a>,分別是K8s應用程式開發框架Kabanero,以及用來打造雲端應用程式的堆疊與工具Appsody,另外,IBM也為熱門IDE釋出擴充套件Codewind,降低容器化應用程式的開發門檻。</p> <p>IBM提到,越來越多企業的採用混合雲策略,不少工作負載都被放到Kubernetes和容器中執行,但是除了挑選適合的技術不容易外,要將工作負載搬遷到雲端,架構師、開發人員以及營運人員等不同角色,要能共同合作更是另一個挑戰。為了降低開發與部署原生雲端應用程式的困難度,IBM創建了Appsody、Kabanero與Codewind三個新的開源專案。</p> <p>Appsody提供了一系列原生雲端應用程式的開發工具,包括CLI以及技術堆疊Appsody Stacks,還有可用堆疊中央儲存庫Appsody Hub。Appsody的目的是要簡化原生雲端應用程式的開發過程,要讓開發人員在數分鐘內,就能創建符合組織標準以及要求的微服務。Appsody Stacks內含熱門的開源Runtime以及開發框架的預配置樣板,像是搭配Eclipse的Java或是帶有Express的Node.js,為基於Kubernetes和Knative技術建構的應用程式提供開發基礎。</p> <p>使用者可以客製化Appsody堆疊,以滿足特定開發需求,而Appsody Hub則提供了一個中央控制中心,使用者可以在Appsody Hub找到可用堆疊、創建新堆疊或是修改現有堆疊,透過修改Appsody Hub中的堆疊,只需要重新啟動應用程式,就能大規模應用更新到以該堆疊為開發基礎的應用程式。而Appsody CLI則讓開發者能夠探索新的可用堆疊,並帶入本地端環境,進行建構、執行、測試與部署工作。</p> <p>而原生雲端Kubernetes應用程式開發框架Kabanero的目標,就是要讓開發者能以現有的技能開發Kubernetes應用程式,Kabanero整合了不少開源專案,包括Knative、Istio與Tekton,還有Appsody、Codewind和Razee,建構起整體的開發框架,為用戶提供端到端解決方案,可用來建置、部署和管理Kubernetes應用程式生命周期。</p> <p>Kabanero將基礎開源技術整合到了一個基於現代微服務的框架中,使得架構師、開發人員以及營運人員能夠良好的協作,IBM提到,使用Kabanero讓用戶不需要額外花時間,掌握DevOps最佳實踐或是Kubernetes基礎設施等技能,Kabanero已經將Node.js、Java和Swift等Runtime和框架,與原生Kubernetes的DevOps工具鍊整合在一起。</p> <p>IBM提到,目前市面上沒有Kabanero相似的專案,雖然有一些開源專案能夠解決Kabanero所處理的部分問題,但皆無法在Kubernetes上,為容器化應用程式從創建到整個生命周期,提供整合的開發方法,而且組織不需具備容器和Kubernetes專業知識,也能將原本在傳統基礎設施運作的工作負載,轉移到更現代的雲端架構上。</p> <p>IBM同時也推出了由Eclipse基金會管理的新專案Codewind,Codewind提供像是VS Code、Eclipse和Eclipse Che等熱門IDE的擴充套件,讓開發者可以在熟悉的工作環境建置容器應用程式,IBM強調,Codewind減少了容器化應用程式開發的困難,開發者也可以在容器中快速迭代,進行除錯與效能測試,就如同是在正式生產環境中執行一樣。Kabanero和Appsody將透過Codewind提供整合的IDE開發體驗。</p> </div></div></div>