前言
最近 ServiceMesher 社群重新開機了
《Istio 服務網格進階實戰》的編寫,我也作為編委會成員參與其中。該書的實踐項目都基于 Istio 1.5 版本以及 Katacoda 提供的 Kubernetes 環境完成。由于實踐部分都要使用 Katacoda,介紹 Katacoda 這章需要先完成,為其他參與編寫實踐篇的作者提供參考。
Katacoda
Katacoda 是一個面向軟體工程師的互動式學習和教育訓練平台,可在浏覽器中使用真實環境學習和測試新技術,幫助開發人員學習,并掌握最佳實踐。該平台于 2019 年 11 月被 O'Reilly 收購。
Katacoda 可以快速的提供一套完整的臨時環境,并在使用後将其回收。使用者可以根據設計好的引導步驟,通過浏覽器上的終端界面操作一套完整的環境,一步步的學習和實踐。尤其是在學習 Kubernetes 這種複雜的應用時,單單是建立一個叢集就要花去不少時間,同時消耗的資源也令一些初學者望而生畏,Katacoda 的出現很好的解決了這些問題。課程設計者可以定制應用程式所需環境,并設計循序漸進的指導路徑,旨在確定使用者以最佳方式學習。
在 Katacoda 每個使用者都可以免費的學習和建立課程,其中:
- Course:課程,可包含一系列的 scenarios。
- Scenarios:場景、方案。
使用 Katacoda 學習
Katacoda 提供了非常便利的學習方式,使用者隻需要打開相應課程,就可以跟着課程設計者的說明,按照設計好的步驟一步步完成學習。
- 介紹會标明課程的難度和需要的時間,幫助使用者了解該課程的基本資訊:
Katacoda:免費學習 Kubernetes 利器 - 進入課程,左側是該步驟說明,右側是一個已經準備好的終端,直接可以使用:
Katacoda:免費學習 Kubernetes 利器 - 之後就是跟着步驟說明,一步步的完成學習即可:
Katacoda:免費學習 Kubernetes 利器
建立課程
既然可以學習别人設計好的課程,那麼也可以自己設計課程,以供使用者學習。
建立倉庫
Katacoda 需要新增賬號登入,這裡直接使用 GitHub 賬号登入即可,畢竟之後建立的方案都是存放在 GitHub 上的。
這裡推薦在頁面建立倉庫,通路
https://www.katacoda.com/teach/git-hosted-scenarios,點選
Automatically Create and Configure Github Repository
按鈕,Katacoda 會自動在您的 Github 中建立一個名為
katacoda-scenarios
的倉庫,并自動為您配置 Webhook,每次更新該倉庫時,都會自動更新您 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: 此處可輸入
,該屬性将确定 scenarios 檔案夾的名稱,以及用來通路他的 URL。是以,該屬性不能包括空格,需要是小寫字母等。例如,如果您的使用者名是 test-username 并且您的方案稱為 test-scenario(如建議的那樣),用于在平台中指向該方案的URL将為 https://katacoda.com/test-username/scenarios/test-scenario/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
-
:檔案中定義了标題、描述、步驟順序、UI 布局以及所需環境,内容與您使用 CLI 工具建立時輸入的是一緻的,如果想對輸入的内容進行修改,也可以在這裡修改index.json
-
:介紹頁,用來介紹您這個 Scenariosintro.md
-
:結束頁finish.md
-
:步驟介紹,數目與您使用 CLI 工具建立 Scenarios 時輸入的數目相同step1-setpN.md
上傳
将建立的 Scenarios 移動到之前建立的 git 項目中。
$ git add .
$ git commit -m "New Scenarios"
$ git push origin master
上傳成功後,在 Your Profile 頁面就可以看到您上傳的課程。
總結
Katacoda 是一個面向軟體工程師的互動式學習和教育訓練平台,開發人員根據産品特色設計學習流程,友善使用者的學習;學習者則無需關心環境的搭建與依賴的安裝,通過開發人員設計的最佳實踐來進行學習,快速又高效。最重要的是,它是免費的!白嫖的東西又有誰不喜歡呢?
同時也歡迎各位朋友一起參與到
的編撰中,和 ServiceMesher 社群的朋友一起完成這部開源書籍。