前言
最近 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 需要註冊賬號登錄,這裡直接使用 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: 此處可輸入
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 社區的朋友一起完成這部開源書籍。