基于Go/Grpc/kubernetes/Istio開發(fā)微服務(wù)的最佳實踐嘗試 - 3/3

基于Go/Grpc/kubernetes/Istio開發(fā)微服務(wù)的最佳實踐嘗試 - 1/3

基于Go/Grpc/kubernetes/Istio開發(fā)微服務(wù)的最佳實踐嘗試 - 2/3

基于Go/Grpc/kubernetes/Istio開發(fā)微服務(wù)的最佳實踐嘗試 - 3/3

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


轉(zhuǎn)載請注明來源: https://janrs.com/6rdh


在前兩部分中,我們創(chuàng)建了兩個微服務(wù):pingservicepongservice。 在這一部分中,我們將創(chuàng)建用于自動部署的 CICD pipeline。

我們假設(shè)您已經(jīng)部署了Jenkins/Gitlab/HarborKubenertes/Istio。

項目結(jié)構(gòu)

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

4 directories, 9 files

實踐

Jenkins 上,為每個微服務(wù)項目創(chuàng)建一個目錄,然后在該目錄下創(chuàng)建dev/test/prod流水線。

Gitlab 上,設(shè)置三個分支保護(hù)分支:dev/test/prod。 這三個分支用于dev/test/production環(huán)境。這三個分支只能合并不能提交。

如果有新的微服務(wù)要開發(fā),在 dev 分支的基礎(chǔ)上新建一個分支,名稱格式為:dev-*。 例如:dev-ping、dev-pong。
然后為每個分支設(shè)置 webhook ,自動觸發(fā) Jenkins pipeline 自動部署到 kubernetes 集群。

微服務(wù)本地開發(fā)需要調(diào)試. 可以使用 kubefwd 工具或者kubernetes 官方推薦的 telepresence 。

大型開發(fā)實踐

如果你的公司發(fā)展到集團化規(guī)模,需要異地協(xié)同開發(fā),可以將devops、istio-manifests、kubernetes-manifests分開,創(chuàng)建一個獨立的 git-repo 進(jìn)行管理。

并且還可以在src/目錄下將不同的微服務(wù)分開,創(chuàng)建不同的 git-repos 進(jìn)行管理。

不同團隊需要將開發(fā)好的 grpc 接口文檔化并發(fā)布到網(wǎng)上,所有人員根據(jù)網(wǎng)上的接口文檔進(jìn)行開發(fā)調(diào)試。

相關(guān)項目和資料

感謝以下資源的貢獻(xiàn)者:


轉(zhuǎn)載請注明來源: https://janrs.com/6rdh

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容