Epinio:Kubernetes 的應用程式開發引擎

Rancher發表於2023-04-28
王海龍,Rancher 中國社群技術經理,Linux Foundation APAC Evangelist,負責 Rancher 中國技術社群的維護和運營。擁有 9 年的雲端計算領域經驗,經歷了 OpenStack 到 Kubernetes 的技術變革,無論底層作業系統 Linux,還是虛擬化 KVM 或是 Docker 容器技術都有豐富的運維和實踐經驗。

Kubernetes 已成為容器編排的事實標準,改變了我們的開發流程。十年前,我們只需要將程式碼打包成 war/jar 包,然後啟動應用即可。然而,現在面向 Kubernetes 的開發,交付的產物有可能是 Helm Chart、Workload Yaml、Dockerfile 或者容器映象,最後由運維將這些交付物部署到 Kubernetes 叢集中。

Kubernetes 的學習成本較高,它有一個陡峭的學習曲線。對於沒有 Kubernetes 經驗的開發者,如何將應用部署到 Kubernetes 叢集上是一個大挑戰。這時,一個能夠將原始碼自動部署到 Kubernetes 叢集中的工具就變得至關重要。

什麼是 Epinio

Epinio 是一個由 Kubernetes 驅動的應用開發引擎,由 SUSE 推出。只要將 Epinio 新增到你的叢集中,就可以建立自己的平臺即服務(PaaS)解決方案,可以在其中部署應用程式,而無需自己建立基礎設施。

Epinio 抽象出 Kubernetes 的複雜性,因此你可以只關注編寫程式碼本身。應用程式透過將其原始碼直接推送到平臺來啟動,消除了複雜的 CD 管道和 Kubernetes YAML 檔案。最後,你可以透過一個由 ingress controller 開放的 URL 來訪問你的應用程式。

使用 Epinio 來執行你的應用程式,可以讓你專注於業務功能邏輯,而非繁瑣的配置容器和 Kubernetes 物件。Epinio 會自動識別你使用的程式語言,使用 Paketo Buildpack 構建一個合適的映象,並在 Kubernetes 叢集中啟動容器。如果你已經有了一個可用的映象,也可以選擇使用自己的映象。

開發人員體驗 (DX) 是一個熱門話題,好的工具可以減輕壓力、提高生產力並鼓勵工程師專注於自己的優勢領域,而不會被低階元件分散注意力。更簡單的應用程式部署體驗可以讓開發人員騰出時間來做更有價值的工作。

總之,Epinio 可以讓開發人員輕鬆迭代在 Kubernetes 中執行的應用程式:

  • 無需 Kubernetes 經驗
  • 沒有陡峭的學習曲線
  • 本地設定快速簡單,零配置
  • 無需構建複雜的 CD 管道或編寫 YAML
    *關注應用程式邏輯,而不是容器或 Kubernetes 細節

本文將展示如何安裝 Epinio 並部署一個簡單的應用程式。

先決條件

你需要有一個 Kubernetes 叢集才能使用 Epinio。你可以使用 K3s、minikube、Rancher Desktop 等工具或任何託管服務(例如 Azure Kubernetes Service  或 Google Kubernetes Engine)來啟動 Local 叢集。

除了 Local 叢集,還需要在你的環境中安裝 Kubectl 和 Helm,初始化 Epinio 時需要使用這些工具。

Epinio 如何執行?

Epinio 將多個 Kubernetes 元件包裝在更高階別的抽象中,允許你將程式碼直接推送到平臺。Epinio 會檢查原始碼,選擇合適的 buildpack 並建立 Kubernetes 物件來部署你的應用程式。

部署過程是完全自動化的,全部由 Epinio 處理。你無需瞭解容器或 Kubernetes 即可啟動你的應用程式。推送新程式碼會引發一系列操作,使你可以透過公共 URL 訪問該專案。

Epinio 首先壓縮你的原始碼,並將存檔上傳到在你的叢集中執行的 MinIO 物件儲存伺服器中。然後,它透過將其元件與 Paketo Buildpack 匹配來“stages”你的應用程式。這個過程會產生一個可用於 Kubernetes 的容器映象。

在叢集中安裝 Epinio 後,你可以使用 CLI 與其互動。Epinio 還帶有用於管理應用程式的 Web UI。

Epinio 詳細推送流程,可參考:

Epinio 如何使用

Epinio 是專門為加強開發工作流程而設計的,為開發者處理部署。它設定迅速,使用簡單,從開發者的膝上型電腦到生產雲的所有環境皆可適用。可以透過執行單個命令來部署新應用程式,避免了從頭開始構建容器映象和部署管道的工作。

即使 Epinio 提供瞭如此多的支援,但它在應用程式的執行方式上仍然很靈活。與其他 PaaS 解決方案不同,你不會被鎖定在某個平臺中。因為 Epinio 在你自己的 Kubernetes 叢集內執行,操作者可以直接與 Kubernetes 互動,以監控執行中的應用程式、最佳化叢集效能並解決問題。Epinio 是一個面向開發者的層,為 Kubernetes 注入了更多的易用性。

Epinio 安裝非常簡單,使用簡單的 Helm 命令即可完成安裝,可以說是零配置的本地設定。而且也不需要了解 Kubernetes 的基礎即可使用 Epinio cli 來部署應用程式。

相關文章