博客 / 詳情

返回

基於Go/Grpc/kubernetes/Istio開發微服務的最佳實踐嘗試 - 3/3

基於Go/Grpc/kubernetes/Istio開發微服務的最佳實踐嘗試 - 1/3

基於Go/Grpc/kubernetes/Istio開發微服務的最佳實踐嘗試 - 2/3

基於Go/Grpc/kubernetes/Istio開發微服務的最佳實踐嘗試 - 3/3

項目地址:https://github.com/janrs-io/Jgrpc


轉載請註明來源: https://janrs.com/6rdh

在前兩部分中,我們創建了兩個微服務:pingservicepongservice。 在這一部分中,我們將創建用於自動部署的 CICD pipeline

我們假設您已經部署了Jenkins/Gitlab/HarborKubenertes/Istio

項目結構

devops
├── README.md
├── ping
│   └── dev
│       ├── Deployment.yaml
│       ├── Dockerfile
│       ├── Jenkinsfile
│       └── Service.yaml
└── pong
    └── dev
        ├── Deployment.yaml
        ├── Dockerfile
        ├── Jenkinsfile
        └── Service.yaml

4 directories, 9 files

實踐

Jenkins 上,為每個微服務項目創建一個目錄,然後在該目錄下創建dev/test/prod流水線。

Gitlab 上,設置三個分支保護分支:dev/test/prod。 這三個分支用於dev/test/production環境。這三個分支只能合併不能提交。

如果有新的微服務要開發,在 dev 分支的基礎上新建一個分支,名稱格式為:dev-*。 例如:dev-ping、dev-pong
然後為每個分支設置 webhook ,自動觸發 Jenkins pipeline 自動部署到 kubernetes 集羣。

微服務本地開發需要調試. 可以使用 kubefwd 工具或者kubernetes 官方推薦的 telepresence 。

大型開發實踐

如果你的公司發展到集團化規模,需要異地協同開發,可以將devopsistio-manifestskubernetes-manifests分開,創建一個獨立的 git-repo 進行管理。

並且還可以在src/目錄下將不同的微服務分開,創建不同的 git-repos 進行管理。

不同團隊需要將開發好的 grpc 接口文檔化併發布到網上,所有人員根據網上的接口文檔進行開發調試。

相關項目和資料

感謝以下資源的貢獻者:

  • GoogleCloudPlatform/microservices-demo
  • GitOps Decisions: Creating a Mature Pipeline
  • buf build
  • wire
  • gRPC Ecosystem

轉載請註明來源: https://janrs.com/6rdh
user avatar cyningsun 頭像 gouguoyin 頭像 gongzhengyang 頭像 rwxe 頭像 xushuhui 頭像 snakesss 頭像 2003 頭像 jiujuan 頭像 dubbo_go 頭像 stillfox 頭像
10 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.