公司有阿里云的服务器 ECS ,也有自己的机房服务器。
看了一下,阿里云 ECS 有配套的 https://help.aliyun.com/document_detail/224608.html
不知道自己机房的服务器怎么部署好
后台是:Go ,前端是 Next.js
当前简单粗暴的在服务器上 git pull ,但是这个太原始了,不知道有没有成熟的开源方案
1
clickhouse 2023-03-21 09:58:04 +08:00
我司( Java ) Jenkins 触发自动部署 K8S 。
|
2
ReinerShir 2023-03-21 09:58:39 +08:00 3
jenkins + docker compose ,服务不多的话单 jenkins 就够了
|
3
bugsnail 2023-03-21 09:59:13 +08:00
给个思路吧:github/gitlab 私有仓库托管,自己部署个 jenkins 想怎么玩怎么玩
但是,一个 jenkins 跑起来就吃掉 1G 多的内存.... |
4
caneman 2023-03-21 09:59:58 +08:00
jenkins + docker compose
|
5
placeholder 2023-03-21 10:01:11 +08:00 1
|
6
leeraya 2023-03-21 10:03:55 +08:00
jenkins 、gitlab 、harbor 、k8s
|
7
jearyvon 2023-03-21 10:08:09 +08:00
我们在用的流程大概就是
git tag trigger -> jenkens (build docker image) -> ALIYUN K8S deploy |
8
Rache1 2023-03-21 10:09:32 +08:00 1
阿里云有 ”云效“ 😏
|
9
ZxBing0066 2023-03-21 10:10:35 +08:00 1
gitlab ci 吧,感觉 jenkins 没有 gitlab ci 和 github action 简单
|
10
hzfyjgw 2023-03-21 10:17:46 +08:00 1
argocd
|
11
wu67 2023-03-21 10:17:52 +08:00
最近我也在搞公司测试环境的 cicd.
因为团队的 git 是 gogs, 凑合着用搭配了 drone. 普通的 vue + nginx 跑起来了, nuxt / next 这种需要 pm2/npm run start 的, 还没研究通怎么跑. 网上各种方案都是 ssh 插件来跑脚本启动镜像 /pm2, 但是哪有人开 root 账号密码登录啊...真是有毒 gitlab / jenkin 也有看过. 前公司是这套方案, 但是挺吃内存的, 而且还得 Java 环境, 我一个前端仔根本 hold 不住呀, 没眼看了. |
12
ziwen1943 2023-03-21 10:18:01 +08:00
可以用 gitlab-CI 资源占用小,和 gitlab 深度嵌合,配置发布代码化,很高效,适合中小团队
|
13
wu67 2023-03-21 10:19:30 +08:00
还有个问题就是据说 gitlab 升级爆炸会很难搞...在没有专业服务器运维人员的情况下, 这也是我不敢选用 gitlab 的原因. 要是我自己的机器我就随便折腾了...
|
14
atkd 2023-03-21 10:24:24 +08:00
jenkins+1
|
15
yagamil 2023-03-21 10:27:39 +08:00
小团队应该用不上 k8s 吧?
|
16
version 2023-03-21 10:30:29 +08:00 3
没运维的...本地写脚本就好...
如果你牵头搞 cicd..个个都无限 debug 提交 git-.镜像就崩了..到时候 go 依赖拉不下来.npm 拉不下来.就找你了.因为他会说它不懂这个..这个是运维干得.太复杂.学不来.不想学. 提交代码.本地执行远程 ssh 命令.. 前端本地 nodejs 脚本部署..提交 html 到服务器..其它丢 cdn |
17
xmumiffy 2023-03-21 10:30:32 +08:00 via Android
感觉你们这需求 用 git hook 触发 git pull 就足够了
|
18
wxdiy 2023-03-21 10:30:34 +08:00
服务器不多,变化不频繁,直接 spug 吧,小巧好用
|
19
mr0joker 2023-03-21 10:41:12 +08:00
阿里云的云效做代码托管 + jenkins + k8s
|
20
Dream95 2023-03-21 10:42:30 +08:00
如果公司代码本身就是用 gitlab 管理的化,那比较适合用 gitlab-ci.
|
21
Richared 2023-03-21 10:44:03 +08:00
小公司还不简单,gitlab+jenkins+docker 就可以了。k8 没必要
|
22
bitmin 2023-03-21 10:44:03 +08:00
jenkins ,用的人多,教程多,配置很简单。
我在的迷你公司 java 项目、前端项目都扔在上面部署。 这点资源消耗,公司不会多花一眼去在意。 |
23
aeli 2023-03-21 10:44:10 +08:00
github action 就足够了。
|
24
optional 2023-03-21 10:49:46 +08:00 via iPhone
直接上,gitops
|
25
hb0730 2023-03-21 10:51:26 +08:00
gitea+drone+aliyun 私有仓库+docker compose
|
26
marksaas 2023-03-21 10:52:58 +08:00
小团队还是半自动化部署吧,节省不少服务器资源,让 chatgpt 写个自动化部署脚本,每次就登录执行下也很方便
|
27
vaeceby2 2023-03-21 10:53:23 +08:00 1
gogs/gitea + drone 就行了 k8s 没必要 docker swarm 完全够了
|
28
kqq19930511 2023-03-21 10:54:39 +08:00
内网部署的 gogs + jenkins + nexus
|
29
Illusionary 2023-03-21 10:57:37 +08:00
请个运维
|
30
dnsjia 2023-03-21 11:02:19 +08:00
|
31
perfectlife 2023-03-21 11:07:54 +08:00
@wu67 不太认同升级爆炸,rpm 安装的 gitlab 一般升级直接 update 就行了,跨版本升级按 gitlab 文档里的升级路线图 update 就行,别用容器安装,安逸得很
|
32
perfectlife 2023-03-21 11:08:53 +08:00
既有云上 ecs 又有本地机房,没个运维 不太合适,背锅都没人背,请个运维多好,还能增加就业岗位
|
33
anubu 2023-03-21 11:14:16 +08:00 2
中小公司 gitlab 一个就够了,基本涵盖了研发管理全周期了。没有 gitlab 还好说,有 gitlab 还要使用 Jenkins 的,真的有点舍近求远了,除非是有特殊场景。部署目标就常见的 ssh 、docker remote 、k8s api 基本都够用了。
|
34
WindProtect 2023-03-21 11:15:43 +08:00
我们现在是 git 特定分支 hooks 触发 jenkins 启动流水线打包成 docker 镜像,然后 docker compose 启动。
但我觉得如果自己搭的 gitlab 的话,gitlab ci 更简单。 遇到问题是我们项目是 monorepo ,每次改点代码都会全部服务都给重新打包一次,暂时没想到什么好的方法。 |
35
yushiro 2023-03-21 11:17:40 +08:00 via iPhone
@wu67 升级按照官方的推荐路径来就行,在公司内网部署了快 4 年的 gitlab 了,从没升级出问题过。
别想当然的直接升级到最新版,必须按照特定的节点一步一步升级。 |
36
Sayommy 2023-03-21 11:19:17 +08:00
1 、如果本地机房能开放外网权限,就统一用阿里云效的 flow ,最简单,资源能弹性、依赖包镜像缓存啥都给你做好了。云效的 flow 是可以调度非阿里云的服务器和 k8s 集群的。
2 、公司找台不用的电脑装个 jenkins ,或者其他的开源方案选一个,都能跑。 |
37
6IbA2bj5ip3tK49j 2023-03-21 11:22:57 +08:00
drone
|
38
everyx 2023-03-21 11:27:30 +08:00
github ci + ansible + docker swarm
|
39
xuanbg 2023-03-21 11:35:24 +08:00
jenkins + docker 足矣
|
40
james2013 2023-03-21 11:36:06 +08:00
java 后台和前端
私有 gitlab,Jenkins,k8s |
41
fivesmallq 2023-03-21 11:37:34 +08:00 1
github 私有仓库(免费)存储代码,github action 构建 docker 镜像,harbor (自建或者使用云服务商的免费镜像仓库),github action 构建推送到镜像仓库,服务器小规模的使用 docker-compose 即可,使用 https://github.com/containrrr/watchtower 监控容器变更,有新版本自动拉取重启(可以设定一个 release 一个 dev tag )
基本上不花一分钱就搞定了,其中 github 可以替换成自建 gitlab ,github action 替换为 jenkins ,就是得自己写 Jenkins file 了。 |
42
taoge0224 2023-03-21 11:44:41 +08:00 via Android
需要技术支持不
|
43
isnullstring 2023-03-21 11:47:40 +08:00
@wu67 很容易啊,apt-get update &upgrade 就完事了,官方好像推荐直接使用源安装,这样容易升级
|
44
QKgf555H87Fp0cth 2023-03-21 11:48:40 +08:00
drone
|
45
nijux 2023-03-21 11:49:58 +08:00
如果用到 Gitlab 并且在外网访问,请关注安全新闻,经常看到 Gitlab 的漏洞新闻
|
46
dreamramon 2023-03-21 11:59:27 +08:00
github action 里面,直接指定 tag ,然后自动部署。。。
|
47
rockxsj 2023-03-21 12:05:55 +08:00
drone
|
48
liuxu 2023-03-21 12:25:27 +08:00
github actions/gitlab runner 就行了,不需要自己跑 jenkins ,可以看看我的小项目 go + vue ,github actions 自动化 release ,https://github.com/liuquanhao/moyu/blob/main/.github/workflows/release.yml
|
49
noparking188 2023-03-21 12:34:44 +08:00
服务跑在什么上面的,有没有用容器啊
|
50
swulling 2023-03-21 12:35:55 +08:00 via iPhone
小公司直接 git ops 就完了,至于 pipeline 用什么都可以。gitlab ci ,jenkins 等等,没啥大的区别。
|
51
M003 2023-03-21 13:08:03 +08:00
都用阿里云了,顺便用下他们的云效吧. master 修改触发, 我直接就是 git pull .最近在学 docker.
|
52
caotian 2023-03-21 13:14:05 +08:00
用了一圈 gitlab, drone, gitea, 还是喜欢 github 和 action 里, 最终找了个那个啥的 github 企业版本的部署在内网, 跟 github 使用几乎没区别
|
53
ZoeyZ 2023-03-21 13:14:56 +08:00
gitlab ci + argoCD
|
54
Chad0000 2023-03-21 13:20:18 +08:00 via iPhone
那些使用 GitHub action 的建议看看 Azure DevOps 。我就是从 Jenkins 到 GitHub Action 再到 ADO 的。
|
55
fivesmallq 2023-03-21 13:27:38 +08:00
@Chad0000 Azure DevOps 对比 Github Action 的优势是啥?不知道免费额度咋样。
|
56
clemente0620 2023-03-21 13:28:59 +08:00 1
@swulling 区别蛮大的 灵活性上面
|
57
Chad0000 2023-03-21 13:32:05 +08:00 via iPhone
@fivesmallq
免费额度一样。ADO build 和 release 是分开的,方便你发布历史版本。ADO build 出来的东西存储不计费,比如你 build docker image 存起来,发布的时候再 push 。第三方插件比较多,可视化做得比较好。相比之下 GitHub action 就像半成品。 |
58
Tonyski 2023-03-21 13:41:53 +08:00
前端直接上 github + vercel
|
59
zzzzzzZ 2023-03-21 13:43:22 +08:00
你是想要《 Rainbond 》这种无脑方案,但是 rainbond 不好用,适合不懂开发的运维
但是我更加推荐,也是楼上一致的方案: 自己的 git 库+Jenkins+制品仓库( Harbor 或者云服务制品库)+k8s/云容器服务 粗学上手一套其实也不难,远比用 rainbond 带来的隐患轻松多了 定制性更佳、更灵活、私密、功能健全,秒杀 rainbond 这种无脑方案 |
60
remember5 2023-03-21 13:46:01 +08:00
gitlab-ci 比较贴切 gitlab
|
61
devHang 2023-03-21 13:51:06 +08:00
腾讯的 coding 比 Jenkins 更友好一些,门槛也更低
|
62
NoString 2023-03-21 13:57:20 +08:00
我们也 ECS TeamCity 一把梭
|
63
Guidoo 2023-03-21 14:01:50 +08:00
没人用 TeamCity 吗 ???
|
64
gongquanlin 2023-03-21 14:05:38 +08:00 3
drone ci + gitea + docker 香的一批,drone 和 gitea 也是 go 开发的,drone + gitea 全部 docker 部署,内存占用非常低,自动部署 docker 容器,香的一批
|
65
simo 2023-03-21 14:05:49 +08:00
3 5 个人,完全可以 docker 部署 gitlab pipeline 跑;还有其他类型任务要跑,可以上 gitlab + jenkins 。
|
66
draguo 2023-03-21 14:23:32 +08:00
阿里云直接云效很好用,没有运维成本,小团队不推荐 jk
|
67
defunct9 2023-03-21 14:43:14 +08:00
外包给我就好
|
68
tedzhou1221 2023-03-21 14:47:26 +08:00
coding
|
69
mianju 2023-03-21 14:51:29 +08:00
github + dokku, 单机还能部署 grafana 、db 各种服务
|
70
hb0730 2023-03-21 15:13:22 +08:00
@gongquanlin gitea 好像要出 actions 了,最后连 drone 都去掉,貌似和 github action 差不多
|
71
Nazz 2023-03-21 15:13:27 +08:00
小公司的话, 使用 ssh 远程执行命令, 自己编个脚本 make deploy 一键发布
|
72
eDeeraiD0thei6Oh 2023-03-21 15:22:56 +08:00
能用 Github Actions 就用吧。如果不需要太多的 build 只是 deploy 文件用 Jenkins 也可以。
@Nazz 自动化部署可能是和 git 相关的,除非他们用自己的 git repo server |
73
alsas 2023-03-21 15:36:19 +08:00
spug 没人用???
|
74
feelinglucky 2023-03-21 15:37:47 +08:00
gitea + drone 这个搭配已经很多年了,感觉也还行
|
75
18601294989 2023-03-21 15:38:52 +08:00 1
千万别选 jenkins 就行 太难用
|
76
zed1018 2023-03-21 15:39:08 +08:00
推荐 fluxcd
|
77
zhhqiang 2023-03-21 15:40:29 +08:00
jenkins 触发 git pull 😅
|
78
xiaocaiji111 2023-03-21 15:53:02 +08:00
腾讯云 coding ,一直在用,免费版限制构建分钟数,可以使用自己服务器加个节点。
|
79
ppgs8903 2023-03-21 15:55:03 +08:00
没钱别做 jenkins ,直接 gitlib ci & github ci 。
|
80
OutOfMemoryError 2023-03-21 15:57:41 +08:00
我们是 gitlab 的 gitlab ci 实现的
|
81
clf 2023-03-21 15:58:02 +08:00
gitlab all in one ,项目管理+CI/CD 都在上面了。
|
82
Suomea 2023-03-21 16:35:56 +08:00
gitea:代码存储、镜像仓库、jar 包仓库
jenkins + buildkit + containerd + kubectl:构建 + 发布 k8s + containerd:运行服务 |
83
tramm 2023-03-21 16:36:06 +08:00
gitea + drone
|
84
moreant 2023-03-21 16:50:33 +08:00
我投 TeamCity 一票
|
85
hahahahahahahah 2023-03-21 17:02:48 +08:00 via iPhone
兼职运维需不需要,给你们搭建 Jenkins ,再写个 pipeline
|
86
ropon 2023-03-21 17:08:18 +08:00
jenkins k8s api ,最好能上套运维平台兼容自建机房
|
87
msareposar 2023-03-21 17:09:14 +08:00
直接 github action self-host 完事儿
|
88
hoopan 2023-03-21 17:11:12 +08:00
Jenkins ,我的个人项目也用这个部署
|
89
yekern 2023-03-21 17:20:22 +08:00
开始我们也是搞各种运维 自动化部署, 团队太小 只有几个人 根本没有精力弄这些 如果爆炸更难弄. 所以就最简单的 webhook git pull 省时省力省心
|
90
yinmin 2023-03-21 17:30:27 +08:00
写一个 sh 文件,使用 rsync+ssh 同步到各个服务器,例如:
run.sh ================= rsync -azvP /home/code [email protected]:/home/code ssh [email protected] docker restart mycode rsync -azvP /home/code [email protected]:/home/code ssh [email protected] docker restart mycode rsync -azvP /home/code [email protected]:/home/code ssh [email protected] docker restart mycode 运行 sh 文件即可。 |
91
tairan2006 2023-03-21 17:55:35 +08:00
最简单的:写个脚本
次之:gitlab cicd 集成 再次:Jenkins |
92
ZhaoUncle 2023-03-21 17:56:18 +08:00
gitea+drone
|
93
aaronkk 2023-03-21 17:59:23 +08:00
github 的 action ,gitlib 的 ci ,本身就集成了 CI/CD 功能。
上面看到有说项目管理也放在 gitlab ,等时间长了那会太臃肿,每天的备份都特别大,回头还要考虑瘦身。 |
94
Jemini 2023-03-21 18:06:18 +08:00
drone + github
|
95
yyttrr 2023-03-21 18:13:27 +08:00
gitlab-ci 吧很方便
可以看看 ACK 托管集群,弹性的幅度很大考虑一下 ASK ,不过这些都是很后期的事情了 |
96
xinshoushanglu 2023-03-21 18:36:48 +08:00
jenkins 用起来
|
97
gongquanlin 2023-03-21 18:53:22 +08:00
@hb0730 那真是更香的一批了
|
98
opengg 2023-03-21 18:55:52 +08:00
gitea actions
|
99
jeizas 2023-03-21 20:01:47 +08:00 via iPhone
k8s
|
100
hzxxx 2023-03-21 20:15:33 +08:00
用 gitlab 的 CICD 吧,或者用 gitlab hook 自己写个小脚本触发流程
|