基于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 接口文档化并发布到网上,所有人员根据网上的接口文档进行开发调试。

相关项目和资料

感谢以下资源的贡献者:


转载请注明来源: https://janrs.com/6rdh

kubernetes微服务架构
GitHub:[链接]个人博客:[链接]
4 声望
1 粉丝
0 条评论
推荐阅读
如何用Golang处理每分钟100万个请求
在我设计一个分析系统中,我们公司的目标是能够处理来自数百万个端点的大量POST请求。web 网络处理程序将收到一个JSON文档,其中可能包含许多有效载荷的集合,需要写入Amazon S3,以便我们的地图还原系统随后对这...

janrs_com阅读 842

数据结构与算法:二分查找
一、常见数据结构简单数据结构(必须理解和掌握)有序数据结构:栈、队列、链表。有序数据结构省空间(储存空间小)无序数据结构:集合、字典、散列表,无序数据结构省时间(读取时间快)复杂数据结构树、 堆图二...

白鲸鱼9阅读 6.5k

「刷起来」Go必看的进阶面试题详解
逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。

王中阳Go4阅读 1.9k评论 1

封面图
初学后端,如何做好表结构设计?
这篇文章介绍了设计数据库表结构应该考虑的4个方面,还有优雅设计的6个原则,举了一个例子分享了我的设计思路,为了提高性能我们也要从多方面考虑缓存问题。

王中阳Go4阅读 1.7k评论 2

封面图
滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?

良许4阅读 2.2k

又一款眼前一亮的Linux终端工具!
今天给大家介绍一款最近发现的功能十分强大,颜值非常高的一款终端工具。这个神器我是在其他公众号文章上看到的,但他们都没把它的强大之处介绍明白,所以我自己体验一波后,再向大家分享自己的体验。

良许5阅读 1.8k

一分钟搞明白!快速掌握 Go WebAssembly
最近因为各种奇怪的原因,更多的接触到了 WebAssembly。虽然之前很多博客也翻过写过各种文章,但总感觉欠些味道。于是今天梳理了一版,和大家一起展开学习。

煎鱼4阅读 2.1k

4 声望
1 粉丝
宣传栏