技术大佬们, CI/CD(持续集成/持续发布)的方案有哪些

2021-02-01 16:19:44 +08:00
 userlijinhong

最近公司上级给的一个任务就是去了解研究一下微服务容器化,我自己理解的就是 docker+k8s 。 问了度娘,感觉领导的意思应该就是 CI/CD,网上给的方案是 gitlab + jenkins + docker + k8s, 我这里想问一下还有没有其他在生产环境中用得较多的方案

7528 次点击
所在节点    Java
37 条回复
Gwzlchn
2021-02-01 16:34:58 +08:00
gitlab ci 就够了,不用 jenkins 也行。
yukong
2021-02-01 16:35:05 +08:00
gitlab + k8s 结束了啊
或者 jenkins + k8s
intmax2147483647
2021-02-01 17:20:11 +08:00
付费方案:BuildKite+AWS 套件
retanoj
2021-02-01 17:21:29 +08:00
微服务和 CI/CD 的确是两个事情
mitsuizzz
2021-02-01 17:21:41 +08:00
gitlab 有自己的 cicd 也挺好用的
YzSama
2021-02-01 18:16:26 +08:00
gitlab cicd 完美
bthulu
2021-02-01 18:17:16 +08:00
gitlab 是好用是要钱的
agoodob
2021-02-01 18:23:24 +08:00
我司(具体名字不说了)
生产环境部署在 AWS 中国区(就俩区,北京和宁夏)东西都在北京区。
CI/CD 我们是:
Github -> AWS Codebuild -> AWS ECR -> AWS ECS

Github 是存代码
Codebuild 唯一的用途就是把代码打包成一个 Docker Image
AWS ECR 是存这个镜像
ECS 等同于 k8s
simonlu9
2021-02-01 18:25:19 +08:00
刚搭完 docker 自动化部署,teamcity 满足你一切
RedBeanIce
2021-02-01 18:33:41 +08:00
Luufery
2021-02-01 19:00:40 +08:00
ci 直接用 gitlab 吧,teamcity 不好用,Jenkins 太古老了。cd 建议自研
liuxu
2021-02-01 19:01:23 +08:00
公司的项目用的 gitlab + gitlab runner + docker-compose
我自己的项目用的 github + github actions + k3s + helm

目前建议用我项目的方案,我也准备给公司的项目迁移一下
liuxu
2021-02-01 19:02:14 +08:00
@liuxu 我是说后半部分,k3s + helm
chendy
2021-02-01 19:03:27 +08:00
gitlab ci + k8s
chogath
2021-02-01 19:24:40 +08:00
阿里云云效
caotian
2021-02-01 20:34:01 +08:00
可以尝试下开源的 drone.io ,目前在用,还是挺方便的
YouLMAO
2021-02-01 20:38:07 +08:00
1.微服务+2.容器一般是 k8s+docker


跟 CI/CD 没有一毛钱关系
soulmt
2021-02-01 20:49:00 +08:00
容器化是容器化,自动部署是自动部署, 容器化方案 docker+k8s 这玩意你想怎么部署都可以 可以用 jenkins 哪怕自己写 shell 脚本都可以,或者你说的 ci/cd 自动部署,是 2 块功能哦
kaka6
2021-02-01 20:53:46 +08:00
不是大厂项目的话
其实自己写个更新程序也不难
把项目代码托管到 码云、Coding 或 gitHub
然后利用 webhook,调用自己的部署程序
自己的部署程序其实也简单,在生产部署机子上部署个 flask web 程序,几行 python 代码:

1 、os.chdir(todo_path) # 移动到项目目录下

2 、pull_result = os.popen("git pull ") # 拉取最新代码

3 、build_result = os.popen( f"sudo docker build -t {name}:{tag} .") #重新编译新镜像

4 、stop_result = os.popen( f"docker stop {container_name} && docker rm {container_name}") # 停止并删除旧版容器

5 、run_result = os.popen( f"docker run --name {container_name} -d --restart=always {name}:{tag}") # 启动运行新镜像,更新完成
tilv37
2021-02-01 21:17:43 +08:00
Ci/CD 的话,目前公司的项目是放在微软的 Azure 上的。然后用的 Azure DevOps

一般是:
代码托管( azure devops repo )->DevOps Pipeline -> DevOps Realease ->Azure Container Registry - > Azure K8S Service

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

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

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

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

© 2021 V2EX