基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3
2023/4/1 21:22:02
本文主要是介绍基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在前两部分中,我们创建了两个微服务:pingservice
和 pongservice
。 在这一部分中,我们将创建用于自动部署的 CICD pipeline
。
我们假设您已经部署了Jenkins/Gitlab/Harbor
和Kubenertes/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 。
大型开发实践
如果你的公司发展到集团化规模,需要异地协同开发,可以将devops
、istio-manifests
、kubernetes-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
这篇关于基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08云原生周刊:Kubernetes v1.30 一瞥 | 2024.3.25
- 2024-05-08KubeSphere 社区双周报|2024.03.15-03.29
- 2024-05-08云原生周刊:Kubernetes 1.30 的一切新功能 | 2024.4.1
- 2024-05-08云原生周刊:2024 年 K8s 基准报告 | 2024.4.8
- 2024-05-08如何监控容器或K8s中的OpenSearch
- 2024-05-08Kubernetes 升级不弃 Docker:KubeKey 的丝滑之道
- 2024-05-08使用 Prometheus 在 KubeSphere 上监控 KubeEdge 边缘节点(Jetson) CPU、GPU 状态
- 2024-05-08KubeSphere 社区双周报|2024.03.29-04.11
- 2024-05-08云原生周刊:CNCF 2023 年度调查报告 | 2024.4.15
- 2024-05-08Kubernetes Dashboard部署安装recommended.yaml