请问大家公司的微服务有多少种?多了的话怎么运维?

2020-09-29 09:16:51 +08:00
 whileFalse

昨天看到 https://www.v2ex.com/t/711163

里面有个老哥说有一千多个微服务,惊了,不知道是一千多个服务实例还是一千多种服务。

我们公司有差不多一百种微服务,大半在 k8s 上,小半直接部署在 Tomcat 里。上线靠 jenkins 。 因为有些服务有构建先后次序的问题,所以构建要依次执行很耗时间。因为希望特定时间上线(比如中午 12 点 /夜里 12 点),所以要提前构建,到点再部署。这样每个服务有构建 /部署两个 Job,再加上顺序问题,每次上线涉及的服务一多那是鸡飞狗跳。

我搞了一个自动构建+模板渲染 yaml 的工具,算是极大降低了 k8s 服务的上线难度,预先写好要上线的服务列表,上线时一键执行。解决了两个问题:

  1. 极大的降低了上线时的心智消耗,几乎不给出错的可能性
  2. 通过模板渲染显著减少了不同服务的 yaml 差异。 虽然工具很好用,但我也有个疑惑:这种问题应该很多公司都会遇到,其他公司是怎么做的呢?总不会都是自己实现工具吧。

但是比较流行的 CICD 工具好像也不太合用。用中文搜了一下,一些国内的 K8s 管理方案主要是可视化。可视化感觉还是给新上手 k8s 的公司用的,跟 Jenkins 没本质区别。 另外有公司用推代码自动构建+手动部署的方式。这也不太适合我司:

  1. 我司有 N 个测试环境,但没有每个环境对应的独立分支
  2. 代码推送成功后不一定能构建成功(不同的服务会有构建先后次序的问题)
  3. 部署和构建是分开的,推代码之后不一定能立即部署
4008 次点击
所在节点    问与答
27 条回复
xiaket
2020-09-29 17:15:40 +08:00
@sampeng 嗯, 国内没有用这种付费服务的习惯, Jenkins 在开源实现里相对算好用的了. 但是实际上国外 CICD 的市场很大, 产品也不少, 都值得看看
whileFalse
2020-09-29 17:16:28 +08:00
@xiaket #20 那套玩意儿不是我做的,我来了就有了。另外我不是很了解 jenkins 。
请问如果每次要构建的目标不一样,Jenkinsfile 能很好的处理吗?

比如:
有 a-z 共 26 个服务。本次要上线的是 asdfgh 这几个服务,其中 a 要先于 s 构建,d 要先于 f 构建,其他的可以乱序或并行构建。全部构建完之后一起部署。这种需求 Jenkins 能搞定吗
weimao
2020-09-29 20:13:32 +08:00
用 helm 管理 k8s 上的所有配置文件
持续集成:bitbucket+drone——git tag 触发 docker build
持续部署:drone 配置 pipeline 实现 docker build 成功后触发 helm 配置更新、k8s 部署
inhzus
2020-09-29 21:01:57 +08:00
aone tce 一般都有一套完整的平台管理的(虽然用起来都挺屎
lidashuang
2020-09-29 21:05:30 +08:00
cd 试试 spinnaker ?
oneisall8955
2020-09-29 21:20:53 +08:00
pipeline,线上版本和 qa 镜像版本一致,没有上线部署时间长问题啊,最多上 qa 时候,测试等久一点
firefox12
2020-09-29 23:09:52 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/711442

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX