SlideShare una empresa de Scribd logo
1 de 22
使用 AKS 與 Azure Dev Spaces
優異的 Kubernetes 開發體驗
多奇數位創意有限公司
技術總監 黃保翕(Will 保哥)
https://blog.miniasp.com
大綱
• 開發人員如何部署應用程式到 Kubernetes
• 簡介 AKS 與 Azure Dev Spaces
• 展示 Dev Spaces 優異的 Kubernetes 開發體驗
開發人員如何部署應用程式到 K8S
How to deploy apps to Kubernetes
常見的應用程式開發部署流程
• 在本機進行應用程式開發與偵錯
• 準備 Dockerfile 並建置 Image
• 推送 Image 到遠端 Registry
• 發行應用程式到 Kubernetes
- 撰寫自定義的 YAML 並透過 kubectl 套用更新 ( kubectl apply )
- 撰寫服務部署所需的 Helm chart 再透過 helm 安裝部署
• 設定 CI / CD 自動化建置與發行
4
簡介 AKS 與 Azure Dev Spaces
About Azure Kubernetes Service and Dev Spaces
Azure Kubernetes Service (AKS)
• 輕鬆部署及管理 Kubernetes
• 放心調整及執行應用程式
• 保護您的 Kubernetes 環境
• 利用開放原始碼工具與 API,依你希望的方式來工作
• 加速容器化應用程式開發
• 輕易的設定 CI/CD
6
Azure Dev Spaces (AZDS)
7
A rapid, iterative Kubernetes development
experience for teams.
“
”
關於 Azure Dev Spaces 的特色
• 針對開發團隊所設計的 Kubernetes 開發體驗
• 主要綁定 AKS 服務,讓一個叢集可以提供所有團隊成員使用
• 所有開發、偵錯等工作在開發人員的電腦進行
- 開發人員無須安裝 K8S 或 Docker 執行環境
• 所有建置、部署、執行都由 AKS 負責完成
• 非常適合微服務架構進行開發、偵錯、測試之用
• 直接透過現有微服務環境進行測試,有效隔離開發者空間
8
Azure Dev Spaces 運作方式
9
Azure Dev Spaces 運作方式
10
Azure Dev Spaces 運作方式
11
Azure Dev Spaces 的組成
12
使用 Azure Dev Spaces 的大致步驟
• 建立部署到 Dev Spaces 所需的相關檔案 (azds prep)
- Dockerfile
- Helm chart
- azds.yaml
- .vscode
• 直接將容器化應用程式部署到 Dev Spaces 中執行 (azds up)
• 直接對 Dev Spaces 中的應用程式偵錯 (VSCode 或 VS2019)
- VSCode: Azure Dev Spaces extension
- VS2019: Visual Studio Tools for Kubernetes
- GitHub: https://github.com/Azure/dev-spaces
目前僅支援三種應用程式類型:
- Node.js applications
- .NET Core applications ( .NET Core 2.2 )
- Java applications using Maven
Demo: Dev Spaces and AKS
優異的 Kubernetes 開發體驗
範例專案部署架構
15
Azure Dev Spaces 體驗步驟
• 建立 Kubernetes 叢集 (AKS)
- az aks create -n MyAKS -g MyAKS -l westus2
• 啟用 Azure Dev Spaces 功能
- az aks use-dev-spaces --update -n MyAKS
• 選用 Azure Dev Spaces 命名空間
- azds space select -n dev
• 備妥部署所需資源 (assets)
- azds prep
• 部署並執行應用程式
- azds up
16
Demo: Azure Dev Spaces with Node.js
• 取得原始碼
- git clone https://github.com/Azure/dev-spaces.git
- cd dev-spaces/samples/nodejs/getting-started/webfrontend
• 替專案初始化 Dev Spaces 相關設定
- azds prep --public
• 建置與執行站台 (會顯示相關網址)
- azds up
• 刪除測試資料
- azds down
17
總結
Summary
AZDS 如何簡化 Kubernetes 開發?
• 盡可能減少每個團隊成員的本機開發人員機器設定
• 直接在 Kubernetes 中快速地反覆執行和偵錯程式碼。
• 從開發環境到生產環境中使用一套 Docker 與 Kubernetes 組態
(configuration-as-code)
• 與團隊共用受管理的 Kubernetes 叢集 (AKS),並共同合作。
• 在隔離環境中開發程式碼,並對其他元件進行端對端測試,而無
須複寫或模擬相依性。
19
相關連結
• Azure Kubernetes Service (AKS)
• Azure Dev Spaces (Docs)
- Azure/dev-spaces: Azure Dev Spaces is an Azure developer service
that helps teams develop with speed on Kubernetes.
- Get started with Visual Studio Kubernetes Tools
- Container Tools in Visual Studio
• Draft: Streamlined Kubernetes Development
20
The Will Will Web
網路世界的學習心得與技術分享
http://blog.miniasp.com/
Facebook
Will 保哥的技術交流中心
http://www.facebook.com/will.fans
Twitter
https://twitter.com/Will_Huang
聯絡資訊
THANK YOU!
Q&A

Más contenido relacionado

Más de Will Huang

從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點Will Huang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)Will Huang
 
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)Will Huang
 
Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Will Huang
 
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)Will Huang
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Will Huang
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Will Huang
 
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)Will Huang
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)Will Huang
 
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)Will Huang
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)Will Huang
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)Will Huang
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談Will Huang
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018Will Huang
 
迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:Kubernetes迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:KubernetesWill Huang
 
TypeScript 綜合格鬥技
TypeScript 綜合格鬥技TypeScript 綜合格鬥技
TypeScript 綜合格鬥技Will Huang
 
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Will Huang
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWill Huang
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Will Huang
 

Más de Will Huang (20)

從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
 
Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)
 
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
 
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
 
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:Kubernetes迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:Kubernetes
 
TypeScript 綜合格鬥技
TypeScript 綜合格鬥技TypeScript 綜合格鬥技
TypeScript 綜合格鬥技
 
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
 

優異的 Kubernetes 開發體驗:使用 AKS 與 Dev Spaces (CNF2019)

  • 1. 使用 AKS 與 Azure Dev Spaces 優異的 Kubernetes 開發體驗 多奇數位創意有限公司 技術總監 黃保翕(Will 保哥) https://blog.miniasp.com
  • 2. 大綱 • 開發人員如何部署應用程式到 Kubernetes • 簡介 AKS 與 Azure Dev Spaces • 展示 Dev Spaces 優異的 Kubernetes 開發體驗
  • 4. 常見的應用程式開發部署流程 • 在本機進行應用程式開發與偵錯 • 準備 Dockerfile 並建置 Image • 推送 Image 到遠端 Registry • 發行應用程式到 Kubernetes - 撰寫自定義的 YAML 並透過 kubectl 套用更新 ( kubectl apply ) - 撰寫服務部署所需的 Helm chart 再透過 helm 安裝部署 • 設定 CI / CD 自動化建置與發行 4
  • 5. 簡介 AKS 與 Azure Dev Spaces About Azure Kubernetes Service and Dev Spaces
  • 6. Azure Kubernetes Service (AKS) • 輕鬆部署及管理 Kubernetes • 放心調整及執行應用程式 • 保護您的 Kubernetes 環境 • 利用開放原始碼工具與 API,依你希望的方式來工作 • 加速容器化應用程式開發 • 輕易的設定 CI/CD 6
  • 7. Azure Dev Spaces (AZDS) 7 A rapid, iterative Kubernetes development experience for teams. “ ”
  • 8. 關於 Azure Dev Spaces 的特色 • 針對開發團隊所設計的 Kubernetes 開發體驗 • 主要綁定 AKS 服務,讓一個叢集可以提供所有團隊成員使用 • 所有開發、偵錯等工作在開發人員的電腦進行 - 開發人員無須安裝 K8S 或 Docker 執行環境 • 所有建置、部署、執行都由 AKS 負責完成 • 非常適合微服務架構進行開發、偵錯、測試之用 • 直接透過現有微服務環境進行測試,有效隔離開發者空間 8
  • 9. Azure Dev Spaces 運作方式 9
  • 10. Azure Dev Spaces 運作方式 10
  • 11. Azure Dev Spaces 運作方式 11
  • 12. Azure Dev Spaces 的組成 12
  • 13. 使用 Azure Dev Spaces 的大致步驟 • 建立部署到 Dev Spaces 所需的相關檔案 (azds prep) - Dockerfile - Helm chart - azds.yaml - .vscode • 直接將容器化應用程式部署到 Dev Spaces 中執行 (azds up) • 直接對 Dev Spaces 中的應用程式偵錯 (VSCode 或 VS2019) - VSCode: Azure Dev Spaces extension - VS2019: Visual Studio Tools for Kubernetes - GitHub: https://github.com/Azure/dev-spaces 目前僅支援三種應用程式類型: - Node.js applications - .NET Core applications ( .NET Core 2.2 ) - Java applications using Maven
  • 14. Demo: Dev Spaces and AKS 優異的 Kubernetes 開發體驗
  • 16. Azure Dev Spaces 體驗步驟 • 建立 Kubernetes 叢集 (AKS) - az aks create -n MyAKS -g MyAKS -l westus2 • 啟用 Azure Dev Spaces 功能 - az aks use-dev-spaces --update -n MyAKS • 選用 Azure Dev Spaces 命名空間 - azds space select -n dev • 備妥部署所需資源 (assets) - azds prep • 部署並執行應用程式 - azds up 16
  • 17. Demo: Azure Dev Spaces with Node.js • 取得原始碼 - git clone https://github.com/Azure/dev-spaces.git - cd dev-spaces/samples/nodejs/getting-started/webfrontend • 替專案初始化 Dev Spaces 相關設定 - azds prep --public • 建置與執行站台 (會顯示相關網址) - azds up • 刪除測試資料 - azds down 17
  • 19. AZDS 如何簡化 Kubernetes 開發? • 盡可能減少每個團隊成員的本機開發人員機器設定 • 直接在 Kubernetes 中快速地反覆執行和偵錯程式碼。 • 從開發環境到生產環境中使用一套 Docker 與 Kubernetes 組態 (configuration-as-code) • 與團隊共用受管理的 Kubernetes 叢集 (AKS),並共同合作。 • 在隔離環境中開發程式碼,並對其他元件進行端對端測試,而無 須複寫或模擬相依性。 19
  • 20. 相關連結 • Azure Kubernetes Service (AKS) • Azure Dev Spaces (Docs) - Azure/dev-spaces: Azure Dev Spaces is an Azure developer service that helps teams develop with speed on Kubernetes. - Get started with Visual Studio Kubernetes Tools - Container Tools in Visual Studio • Draft: Streamlined Kubernetes Development 20
  • 21. The Will Will Web 網路世界的學習心得與技術分享 http://blog.miniasp.com/ Facebook Will 保哥的技術交流中心 http://www.facebook.com/will.fans Twitter https://twitter.com/Will_Huang 聯絡資訊

Notas del editor

  1. https://draft.sh/ http://aka.ms/DevSpaces
  2. https://docs.microsoft.com/en-us/azure/dev-spaces/how-vs-code-works-with-dev-spaces
  3. azds up --disable-http-traces -d 查詢對外網址 kubectl get ingress -n dev https://docs.microsoft.com/en-us/azure/dev-spaces/quickstart-cli
  4. 下載: https://aka.ms/get-azds-windows