在 Code Engine中部署 Cloud Foundry 應用程式: 入門
歡迎 Cloud Foundry 使用者使用 IBM Cloud® Code Engine。
Code Engine 是一個完全受管理的無伺服器平台,用於執行容器化工作負載。Code Engine 甚至會從原始碼為您建置容器映像檔。 Code Engine 體驗是設計成您可以專注於 撰寫程式碼,而不是管理它所需的基礎架構。
Code Engine 是在下列關鍵目標的情況下設計的。
- 聚焦於您的程式碼。Code Engine 提供簡化的開發人員體驗。 不需要瞭解或管理基礎架構。
- 支援現代執行時期性質,例如自動調整、閒置時調整為零,以及與受管理服務和安全無縫整合。
- 支援所有雲端原生型應用程式,不論它們是 12 因子應用程式、事件驅動功能或執行至完成批次工作。 如果可以併櫃,則 Code Engine 可以執行它。
- 僅為您實際使用的資源付費。
如果您來自 Cloud Foundry 背景,其中許多特性聽起來很熟悉。 不過,Code Engine 也包含一些新功能,可讓您甚至超越 Cloud Foundry 提供的功能,包括可擴充至零且不產生任何費用的應用程式。 因此,在您通過使用者體驗的語法差異之後,您和您的應用程式將會感覺就在 Code Engine中。
讓我們部署簡式 hello world 應用程式,以瞭解 Code Engine 如何運作。 遵循步驟來建立專案、建置程式碼,以及部署應用程式。
開始本指導教學之前,請先檢閱 Cloud Foundry 及 Code Engine 術語。
目標
- 瞭解 Code Engine 與 Cloud Foundry之間的相似性。
- 瞭解在 Code Engine中部署應用程式的一般程序。
- 使用 Code Engine,從本端系統上的程式碼部署應用程式。
必要條件
您需要先設定帳戶並安裝 CLI,才能開始使用 Code Engine。
-
所有 Code Engine 使用者都必須具有「隨收隨付制」帳戶。
-
雖然您可以透過主控台使用 Code Engine,但本文件中的範例著重於指令行。 因此,您必須安裝 Code Engine CLI。
ibmcloud plugin install code-engine如需相關資訊,請參閱設定 Code Engine CLI。 如需 CLI 的相關資訊,請參閱 Code Engine CLI 參考資料。
登入 IBM Cloud。
請遵循下列步驟來登入 IBM Cloud 帳戶並以資源群組為目標。
-
登入 IBM Cloud CLI。
ibmcloud login -
執行下列指令將資源群組設為目標。 若要取得資源群組清單,請執行
ibmcloud resource groups。ibmcloud target -g <resource_group>輸出範例
Targeted resource group default
建立專案
Code Engine「專案」類似於 Cloud Foundry「空間」,因為它會將相關工作負載分組到對開發人員有意義的邏輯集合中。 您可以根據對您有意義的任何準則 (例如,公司組織結構、工作量之間的相依關係,或開發與測試與正式作業環境),將工作量分組到不同的專案。 請記住,單一專案內的工作量會共用專用網路,並在專案的安全界限內隔離。 專案內的所有工作負載可以彼此自由交談,而不必擔心叢集外的工作負載會看到。 如果不同專案中的工作量想要彼此通訊,則通訊必須使用網際網路或內部 IBM 專用網路。 如需相關資訊,請參閱 Code Engine 應用程式的可見性選項。
在稱為 sample 的 Code Engine 中建立專案。
ibmcloud ce project create --name sample
輸出範例
Creating project 'sample'...
ID for project 'sample' is 'abcdabcd-abcd-abcd-abcd-abcd12e3456f7'.
Waiting for project 'sample' to be active...
Now selecting project 'sample'.
OK
請注意,也會針對環境定義選取您的專案,因此所有後續的應用程式相關指令都在這個新的 sample 專案範圍內。
建立目錄和原始碼
-
在本端工作站上建立名為
myapp的目錄,並導覽至其中。 在此目錄中,儲存建置映像檔及執行應用程式所需的所有檔案。mkdir myapp && cd myapp -
建立稱為
server.js的檔案,並將下列原始碼複製到其中。const http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end( "Hello world\n" ); }).listen(8080);此範例使用 Node.js。您可以從任何 支援的執行時期 替換程式碼。
部署應用程式
使用 application create 指令,將程式碼推送至 Code Engine。 您必須提供應用程式的名稱及原始碼的位置。 下列範例會建立一個稱為 myapp 的應用程式,它使用 buildpack 策略並提供原始碼在現行目錄 (.) 中的位置。
ibmcloud ce app create --name myapp --build-source . --strategy buildpacks
輸出範例
Creating application 'myapp'...
Packaging files to upload from source path '.'...
Submitting build run 'myapp-run-220999-210706331'...
Creating image 'private.us.icr.io/ce--6ef04-khxrbwa0lci/app-myapp:220418-0207-askql'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n myapp-run-220000-210706331' to check the build run status.
Waiting for application 'myapp' to become ready.
Configuration 'myapp' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp' to check the application status.
OK
https://myapp.abcdbwa0lci.us-south.codeengine.appdomain.cloud
就這樣 您現在有一個面向網際網路的應用程式。 應用程式本身中的程式碼與用於 Cloud Foundry 應用程式的程式碼相同,只是 Code Engine 指令略有不同。
讓我們更深入瞭解前一個 app create 指令。 請注意,app create 指令的輸出提供在建立及部署應用程式之前建置執行進度的相關資訊。
- Code Engine 會收到從原始碼建立應用程式的要求 (而不是直接從映像檔取回)。
- Code Engine 會檢查與所選取專案相關聯的 IAM 服務 ID 及 API 金鑰。 必須授權此服務 ID 讀取及寫入 IBM Cloud Container Registry。 如果沒有服務 ID,Code Engine 會為您建立一個服務 ID。 請注意,此服務 ID 用於從相同專案執行的後續 Code Engine 建置要求。
- 此範例會從本端來源 (
--build-source .) 建置程式碼。 原始碼會壓縮成保存檔,並上傳至帳戶中 IBM Cloud Container Registry 實例內的受管理名稱空間。 請注意,您只能將 IBM Cloud Container Registry 作為本端建置的目標。 如需 IBM Container Registry的相關資訊 (包括配額限制和存取權的相關資訊),請參閱 開始使用 IBM Cloud Container Registry。 - Code Engine 會將原始碼建置成映像檔。 來源映像檔會建立在與來源保存檔相同的名稱空間中。
- 建置完成之後,即會部署您的應用程式。 您可以從提供的 URL存取應用程式。
使用 Code Engine,您會自動取得許多與 Cloud Foundry相同的特性 (例如自動調整及藍綠推出更新項目),但您也會享有較新特性 (例如縮減至零) 的好處,確保應用程式不在作用中時不會向您收費。
想要進一步瞭解您建置原始碼的選項嗎? 請參閱 application create 及 job create 指令。
想要進一步瞭解應用程式和工作? 請參閱 Working with apps in Code Engine and Working with jobs and jobruns。
清除
完成本指導教學之後,您可以清除使用下列指令所建立的資源。
刪除您的應用程式
ibmcloud ce app delete --name myapp
當您刪除應用程式時,也會刪除相關聯的建置檔。
最後,刪除建置從 IBM Cloud Container Registry建立的映像檔。
- 導覽至 IBM Cloud 主控台中的 登錄。
- 透過搜尋應用程式名稱,尋找與應用程式相關聯的保存檔及映像檔。
- 選取保存檔和映像檔,然後刪除。
下一步
- 剛開始移轉嗎? 請參閱 入門。
- 比較 Cloud Foundry 術語與 Code Engine。
- 在 Code Engine中部署 Cloud Foundry 應用程式: 入門 (現行頁面)
- 您的應用程式是否使用服務連結? 請參閱 移轉服務連結。
- 瞭解 調整大小及資料流量管理。
- 尋找 Cloud Foundry 指令的 Code Engine 對等項目。
- 從主控台新增 自訂網域對映。
- 還有其他問題嗎? 嘗試將 移轉 Cloud Foundry 應用程式至 Code Engine 常見問題。
其他資訊
- 瞭解 Code Engine 定價。
- 請嘗試其他 Code Engine 指導教學。
- 探索其他 Code Engine 主題。