開發與維運

Katacoda:免費學習 Kubernetes 利器

前言

最近 ServiceMesher 社區重啟了《Istio 服務網格進階實戰》 的編寫,我也作為編委會成員參與其中。該書的實踐項目都基於 Istio 1.5 版本以及 Katacoda 提供的 Kubernetes 環境完成。由於實踐部分都要使用 Katacoda,介紹 Katacoda 這章需要先完成,為其他參與編寫實踐篇的作者提供參考。

Katacoda

Katacoda 是一個面向軟件工程師的交互式學習和培訓平臺,可在瀏覽器中使用真實環境學習和測試新技術,幫助開發人員學習,並掌握最佳實踐。該平臺於 2019 年 11 月被 O'Reilly 收購。

Katacoda 可以快速的提供一套完整的臨時環境,並在使用後將其回收。用戶可以根據設計好的引導步驟,通過瀏覽器上的終端界面操作一套完整的環境,一步步的學習和實踐。尤其是在學習 Kubernetes 這種複雜的應用時,單單是創建一個集群就要花去不少時間,同時消耗的資源也令一些初學者望而生畏,Katacoda 的出現很好的解決了這些問題。課程設計者可以定製應用程序所需環境,並設計循序漸進的指導路徑,旨在確保用戶以最佳方式學習。

在 Katacoda 每個用戶都可以免費的學習和創建課程,其中:

使用 Katacoda 學習

Katacoda 提供了非常便利的學習方式,用戶只需要打開相應課程,就可以跟著課程設計者的說明,按照設計好的步驟一步步完成學習。

  • 介紹會標明課程的難度和需要的時間,幫助用戶瞭解該課程的基本信息:
    image
  • 進入課程,左側是該步驟說明,右側是一個已經準備好的終端,直接可以使用:
    image
  • 之後就是跟著步驟說明,一步步的完成學習即可:
    image

創建課程

既然可以學習別人設計好的課程,那麼也可以自己設計課程,以供用戶學習。

新建倉庫

Katacoda 需要註冊賬號登錄,這裡直接使用 GitHub 賬號登錄即可,畢竟之後創建的方案都是存放在 GitHub 上的。

這裡推薦在頁面新建倉庫,訪問 https://www.katacoda.com/teach/git-hosted-scenarios ,點擊 Automatically Create and Configure Github Repository 按鈕,Katacoda 會自動在您的 Github 中創建一個名為 katacoda-scenarios 的倉庫,並自動為您配置 Webhook,每次更新該倉庫時,都會自動更新您 Katacoda 中課程的內容。

katacoda 新建倉庫頁面

創建完成後,就可以在您的 Github 上找到名為 katacoda-scenarios 的代碼倉庫。

Scenarios

Scenarios 即為方案、場景,由一組 Markdown、bash 腳本和一個 JSON 文件組成,這些文件保存了該 Scenarios 的所有配置。

Katacoda 官方提供了 CLI 工具,幫助您創建 Scenarios。

安裝 CLI

通過 npm 命令安裝 npm i katacoda-cli --global

命令遵循語法的是 $ katacoda COMMAND

安裝完成後,可以通過運行命令 katacoda --help 查看幫助信息。

創建 Scenarios 目錄

例如,要創建新的方案,可以通過運行命令 katacoda scenarios:create,CLI 將會提示一些信息,幫助您創建方案:

  • Friendly URL: 此處可輸入 test-scenario,該屬性將確定 scenarios 文件夾的名稱,以及用來訪問他的 URL。因此,該屬性不能包括空格,需要是小寫字母等。例如,如果您的用戶名是 test-username 並且您的方案稱為 test-scenario(如建議的那樣),用於在平臺中指向該方案的URL將為 https://katacoda.com/test-username/scenarios/test-scenario/
  • Title: 方案的標題,將會顯示在簡介上
  • Description: 方案的描述,將會顯示在簡介上
  • Difficulty level: 難度級別,將會顯示在簡介上
  • Estimated time: 估計完成的時間,將會顯示在簡介上
  • Number of steps: 方案的步驟數。CLI 將會為您的所有步驟創建文件
  • Image: 確定適用於您的方案的基本軟件。例如,如果您需要 docker,java,go 等作為前提條件。更多相關信息,請閱讀 https://katacoda.com/docs/scenarios/environments
  • Layout: 它將確定方案界面元素的配置。例如,如果您只想顯示終端,或編輯器+終端等形式,更多相關信息,請閱讀 https://katacoda.com/docs/scenarios/layouts

輸入這些信息,CLI 將幫您創建一個文件夾,其中引入了 friendly URL 的名稱,並將在該文件夾內創建方案所需的文件。

編輯 Scenarios

Scenarios 目錄創建好之後,可以看到目錄的結構:

.
├── finish.md
├── index.json
├── intro.md
├── step1.md
├── step2.md
├── step3.md
├── step4.md
└── step5.md
  • index.json :文件中定義了標題、描述、步驟順序、UI 佈局以及所需環境,內容與您使用 CLI 工具創建時輸入的是一致的,如果想對輸入的內容進行修改,也可以在這裡修改
  • intro.md:介紹頁,用來介紹您這個 Scenarios
  • finish.md :結束頁
  • step1-setpN.md:步驟介紹,數目與您使用 CLI 工具創建 Scenarios 時輸入的數目相同

上傳

將創建的 Scenarios 移動到之前創建的 git 項目中。

$ git add .
$ git commit -m "New Scenarios"
$ git push origin master

上傳成功後,在 Your Profile 頁面就可以看到您上傳的課程。

總結

Katacoda 是一個面向軟件工程師的交互式學習和培訓平臺,開發人員根據產品特色設計學習流程,方便用戶的學習;學習者則無需關心環境的搭建與依賴的安裝,通過開發人員設計的最佳實踐來進行學習,快速又高效。最重要的是,它是免費的!白嫖的東西又有誰不喜歡呢?

同時也歡迎各位朋友一起參與到《Istio 服務網格進階實戰》 的編撰中,和 ServiceMesher 社區的朋友一起完成這部開源書籍。

Leave a Reply

Your email address will not be published. Required fields are marked *