為了方便進行dapr開發,最好(其實不一定必須)首先在本機(開發機器)上安裝docker。安裝方式可以參考docker的官方文件:
如果你是windows平台,那麼需要選擇linux容器模式。對於我這樣的windows 10使用者而言,個人建議最好的方式就是把windows 10公升級到2004,並啟用wsl2,然後啟用docker desktop wsl 2 backend[1]。這種方式可以獲得很好的使用者體驗和效能。
通過如下指令碼在不同平台安裝最新的cli(dapr命令列工具):
powershell -command "iwr -useb | iex"
缺省會安裝到c:\dapr
目錄
wget -q -o - | /bin/bash
缺省會安裝到/usr/local/bin
目錄
curl -fssl | /bin/bash
缺省會安裝到/usr/local/bin
目錄
或者通過homebrew來安裝:brew install dapr/tap/dapr-cli
在本機安裝dapr執行時分為兩種模式,一種是完整模式,一種是簡易模式:
兩種模式下,有些配置也有所不同:
如果不想在本機安裝dapr的cli和runtime,還可以利用visual studio code remote - containers[2]的強大功能來實現開發環境的容器化。
dapr為各種支援的開發語言預設提供了開發容器,方便你把任何專案轉換為dapr應用。
大致步驟如下:
建立專案,(可選)引用對應語言的dapr sdk
在vs code中開啟專案的工作區(workspace)
在命令面板中輸入「remote-containers: add development container configuration files...」
在選擇開發容器的時候,輸入「dapr」來進行查詢,選擇對應的語言版本,比如「dapr with c#」
vs code會自動給你的專案新增相關的dockerfile和其他配置檔案(比如「.devcontainer」資料夾)
vs code檢測到.devcontainer資料夾後,會提示你是否要使用容器模式開啟
通過容器模式開啟後,會自動構建專案工作區的容器映象,同時還會額外啟動用於容器開發的placement和zipkin容器例項(名稱為:dapr_placement_dapr-dev-container和dapr_zipkin_dapr-dev-container)
開發容器如下圖所示:
使用這種開發容器帶來的好處就是:整個dapr開發的依賴環境可以通過dockerfile來自動配置完成。
雖然dapr可以執行到任意託管環境,不過目前最自然的選擇還是發布到 kubernetes 集群當中。
首先,你需要配置好乙個kubernetes集群,建議使用azure kubernetes service(aks),基本可以一鍵建立好集群[3]。
在做好kubectl和kubernetes集群的連線之後,就可以開始安裝dapr了。
如果是配置測試環境,那麼只需要執行如下命令就可以完成:
dapr init -k
如果要配置生產環境,那麼建議使用helm3來進行安裝:
helm repo add dapr
helm repo update
kubectl create namespace dapr-system
helm install dapr dapr/dapr --namespace dapr-system
dapr安裝到kubernetes集群之後,會啟動如下pod:
至此,dapr的開發、測試和生產環境就配置完成了,接下來就是進入到開發階段了。
當然,如果你需要解除安裝dapr環境的話,只需要執行如下命令:
dapr uninstall //解除安裝本機開發環境
dapr uninstall --all //解除安裝本機開發環境包括redis和zipkin容器例項
dapr uninstall --kubernetes //解除安裝kubernetes中的測試環境
helm uninstall dapr -n dapr-system //解除安裝kubernetes中的生產環境
[1] docker desktop wsl 2 backend: visual studio code remote - containers:
[3] quickstart: deploy an azure kubernetes service cluster using the azure cli:
Dapr微服務應用開發系列0 概述
題記 dapr是什麼,dapr包含什麼,為什麼要用dapr。dapr distributedapplicationruntime 是微軟azure內部創新孵化團隊的乙個開源專案,皆在解決微服務應用開發過程的一些共性問題。以官方文件的說法,dapr是乙個可移植 事件驅動的執行時,讓企業開發者更容易利用...
SpringCloud系列 1 初試微服務
微服務 之前在寫springboot的筆記時,就有提及到springcloud。springcloud提供了微服務的開箱即用。微服務近年來非常火,到處都在說微服務。筆者也對微服務相當感興趣,因為筆者在校期間 n年前 曾經和很多同學聊過,如果所有的應用並不是單體的,而是通過很多系統提供api這會變成怎...
微服務之路1 搭建Vue開發環境
1.node.js 安裝webpack 需要有node.js 環境 2.npm node package manager,nodejs的包管理器,用於node外掛程式的安裝 解除安裝 管理以來等。2.webpack 是乙個前端資源載入 打包工具。它將根據模組的依賴關係進行靜態分析,然後將這些模組按照...