• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fyooo
V2EX  ›  程序员

小团队怎么做自动化部署

  •  
  •   fyooo · Mar 21, 2023 · 23792 views
    This topic created in 1323 days ago, the information mentioned may be changed or developed.

    公司有阿里云的服务器 ECS ,也有自己的机房服务器。

    看了一下,阿里云 ECS 有配套的 https://help.aliyun.com/document_detail/224608.html

    不知道自己机房的服务器怎么部署好

    后台是:Go ,前端是 Next.js

    当前简单粗暴的在服务器上 git pull ,但是这个太原始了,不知道有没有成熟的开源方案

    113 replies  •  2024-09-12 14:56:40 +08:00
    1  2  
    ❮ ❯
    clickhouse
    clickhouse
    Mar 21, 2023
    1
    我司( Java ) Jenkins 触发自动部署 K8S 。
    ReinerShir
    ReinerShir
    Mar 21, 2023❤️3
    2
    jenkins + docker compose ,服务不多的话单 jenkins 就够了
    bugsnail
    bugsnail
    Mar 21, 2023
    3
    给个思路吧:github/gitlab 私有仓库托管,自己部署个 jenkins 想怎么玩怎么玩

    但是,一个 jenkins 跑起来就吃掉 1G 多的内存....
    caneman
    caneman
    Mar 21, 2023
    4
    jenkins + docker compose
    placeholder
    placeholder
    Mar 21, 2023❤️1
    5
    https://juejin.cn/post/7207787191623647288 ,仅供参考,

    这种问题我建议你们联系一下 chatGPT 问问(手动狗头)
    leeraya
    leeraya
    Mar 21, 2023
    6
    jenkins 、gitlab 、harbor 、k8s
    jearyvon
    jearyvon
    Mar 21, 2023
    7
    我们在用的流程大概就是
    git tag trigger -> jenkens (build docker image) -> ALIYUN K8S deploy
    Rache1
    Rache1
    Mar 21, 2023❤️1
    8
    阿里云有 ”云效“ 😏
    ZxBing0066
    ZxBing0066
    Mar 21, 2023❤️1
    9
    gitlab ci 吧,感觉 jenkins 没有 gitlab ci 和 github action 简单
    hzfyjgw
    hzfyjgw
    Mar 21, 2023❤️1
    10
    argocd
    wu67
    wu67
    Mar 21, 2023
    11
    最近我也在搞公司测试环境的 cicd.

    因为团队的 git 是 gogs, 凑合着用搭配了 drone. 普通的 vue + nginx 跑起来了, nuxt / next 这种需要 pm2/npm run start 的, 还没研究通怎么跑. 网上各种方案都是 ssh 插件来跑脚本启动镜像 /pm2, 但是哪有人开 root 账号密码登录啊...真是有毒

    gitlab / jenkin 也有看过. 前公司是这套方案, 但是挺吃内存的, 而且还得 Java 环境, 我一个前端仔根本 hold 不住呀, 没眼看了.
    ziwen1943
    ziwen1943
    Mar 21, 2023
    12
    可以用 gitlab-CI 资源占用小,和 gitlab 深度嵌合,配置发布代码化,很高效,适合中小团队
    wu67
    wu67
    Mar 21, 2023
    13
    还有个问题就是据说 gitlab 升级爆炸会很难搞...在没有专业服务器运维人员的情况下, 这也是我不敢选用 gitlab 的原因. 要是我自己的机器我就随便折腾了...
    atkd
    atkd
    Mar 21, 2023
    14
    jenkins+1
    yagamil
    yagamil
    Mar 21, 2023
    15
    小团队应该用不上 k8s 吧?
    version
    version
    Mar 21, 2023❤️3
    16
    没运维的...本地写脚本就好...
    如果你牵头搞 cicd..个个都无限 debug 提交 git-.镜像就崩了..到时候 go 依赖拉不下来.npm 拉不下来.就找你了.因为他会说它不懂这个..这个是运维干得.太复杂.学不来.不想学.
    提交代码.本地执行远程 ssh 命令..
    前端本地 nodejs 脚本部署..提交 html 到服务器..其它丢 cdn
    106npo
    106npo
    Mar 21, 2023 via Android
    17
    感觉你们这需求 用 git hook 触发 git pull 就足够了
    wxdiy
    wxdiy
    Mar 21, 2023
    18
    服务器不多,变化不频繁,直接 spug 吧,小巧好用
    mr0joker
    mr0joker
    Mar 21, 2023
    19
    阿里云的云效做代码托管 + jenkins + k8s
    Dream95
    Dream95
    Mar 21, 2023
    20
    如果公司代码本身就是用 gitlab 管理的化,那比较适合用 gitlab-ci.
    Cruzz
    Cruzz
    Mar 21, 2023
    21
    小公司还不简单,gitlab+jenkins+docker 就可以了。k8 没必要
    bitmin
    bitmin
    Mar 21, 2023
    22
    jenkins ,用的人多,教程多,配置很简单。

    我在的迷你公司 java 项目、前端项目都扔在上面部署。

    这点资源消耗,公司不会多花一眼去在意。
    aeli
    aeli
    Mar 21, 2023
    23
    github action 就足够了。
    optional
    optional
    Mar 21, 2023 via iPhone
    24
    直接上,gitops
    hb0730
    hb0730
    Mar 21, 2023
    25
    gitea+drone+aliyun 私有仓库+docker compose
    marksaas
    marksaas
    Mar 21, 2023
    26
    小团队还是半自动化部署吧,节省不少服务器资源,让 chatgpt 写个自动化部署脚本,每次就登录执行下也很方便
    vaeceby2
    vaeceby2
    Mar 21, 2023❤️1
    27
    gogs/gitea + drone 就行了 k8s 没必要 docker swarm 完全够了
    kqq19930511
    kqq19930511
    Mar 21, 2023
    28
    内网部署的 gogs + jenkins + nexus
    Illusionary
    Illusionary
    Mar 21, 2023
    29
    请个运维
    perfectlife
    perfectlife
    Mar 21, 2023
    31
    @wu67 不太认同升级爆炸,rpm 安装的 gitlab 一般升级直接 update 就行了,跨版本升级按 gitlab 文档里的升级路线图 update 就行,别用容器安装,安逸得很
    perfectlife
    perfectlife
    Mar 21, 2023
    32
    既有云上 ecs 又有本地机房,没个运维 不太合适,背锅都没人背,请个运维多好,还能增加就业岗位
    anubu
    anubu
    Mar 21, 2023❤️2
    33
    中小公司 gitlab 一个就够了,基本涵盖了研发管理全周期了。没有 gitlab 还好说,有 gitlab 还要使用 Jenkins 的,真的有点舍近求远了,除非是有特殊场景。部署目标就常见的 ssh 、docker remote 、k8s api 基本都够用了。
    WindProtect
    WindProtect
    Mar 21, 2023
    34
    我们现在是 git 特定分支 hooks 触发 jenkins 启动流水线打包成 docker 镜像,然后 docker compose 启动。
    但我觉得如果自己搭的 gitlab 的话,gitlab ci 更简单。

    遇到问题是我们项目是 monorepo ,每次改点代码都会全部服务都给重新打包一次,暂时没想到什么好的方法。
    yushiro
    yushiro
    Mar 21, 2023 via iPhone
    35
    @wu67 升级按照官方的推荐路径来就行,在公司内网部署了快 4 年的 gitlab 了,从没升级出问题过。
    别想当然的直接升级到最新版,必须按照特定的节点一步一步升级。
    Sayommy
    Sayommy
    Mar 21, 2023
    36
    1 、如果本地机房能开放外网权限,就统一用阿里云效的 flow ,最简单,资源能弹性、依赖包镜像缓存啥都给你做好了。云效的 flow 是可以调度非阿里云的服务器和 k8s 集群的。
    2 、公司找台不用的电脑装个 jenkins ,或者其他的开源方案选一个,都能跑。
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    Mar 21, 2023
    37
    drone
    everyx
    everyx
    Mar 21, 2023
    38
    github ci + ansible + docker swarm
    xuanbg
    xuanbg
    Mar 21, 2023
    39
    jenkins + docker 足矣
    james2013
    james2013
    Mar 21, 2023
    40
    java 后台和前端
    私有 gitlab,Jenkins,k8s
    fivesmallq
    fivesmallq
    Mar 21, 2023❤️1
    41
    github 私有仓库(免费)存储代码,github action 构建 docker 镜像,harbor (自建或者使用云服务商的免费镜像仓库),github action 构建推送到镜像仓库,服务器小规模的使用 docker-compose 即可,使用 https://github.com/containrrr/watchtower 监控容器变更,有新版本自动拉取重启(可以设定一个 release 一个 dev tag )

    基本上不花一分钱就搞定了,其中 github 可以替换成自建 gitlab ,github action 替换为 jenkins ,就是得自己写 Jenkins file 了。
    taoge0224
    taoge0224
    Mar 21, 2023 via Android
    42
    需要技术支持不
    isnullstring
    isnullstring
    Mar 21, 2023
    43
    @wu67 很容易啊,apt-get update &upgrade 就完事了,官方好像推荐直接使用源安装,这样容易升级
    QKgf555H87Fp0cth
    QKgf555H87Fp0cth
    Mar 21, 2023
    44
    drone
    nijux
    nijux
    Mar 21, 2023
    45
    如果用到 Gitlab 并且在外网访问,请关注安全新闻,经常看到 Gitlab 的漏洞新闻
    dreamramon
    dreamramon
    Mar 21, 2023
    46
    github action 里面,直接指定 tag ,然后自动部署。。。
    rockxsj
    rockxsj
    Mar 21, 2023
    47
    drone
    liuxu
    liuxu
    Mar 21, 2023
    48
    github actions/gitlab runner 就行了,不需要自己跑 jenkins ,可以看看我的小项目 go + vue ,github actions 自动化 release ,https://github.com/liuquanhao/moyu/blob/main/.github/workflows/release.yml
    noparking188
    noparking188
    Mar 21, 2023
    49
    服务跑在什么上面的,有没有用容器啊
    swulling
    swulling
    Mar 21, 2023 via iPhone
    50
    小公司直接 git ops 就完了,至于 pipeline 用什么都可以。gitlab ci ,jenkins 等等,没啥大的区别。
    M003
    M003
    Mar 21, 2023
    51
    都用阿里云了,顺便用下他们的云效吧. master 修改触发, 我直接就是 git pull .最近在学 docker.
    caotian
    caotian
    Mar 21, 2023
    52
    用了一圈 gitlab, drone, gitea, 还是喜欢 github 和 action 里, 最终找了个那个啥的 github 企业版本的部署在内网, 跟 github 使用几乎没区别
    ZoeyZ
    ZoeyZ
    Mar 21, 2023
    53
    gitlab ci + argoCD
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Mar 21, 2023 via iPhone
    54
    那些使用 GitHub action 的建议看看 Azure DevOps 。我就是从 Jenkins 到 GitHub Action 再到 ADO 的。
    fivesmallq
    fivesmallq
    Mar 21, 2023
    55
    @Chad0000 Azure DevOps 对比 Github Action 的优势是啥?不知道免费额度咋样。
    clemente0620
    clemente0620
    Mar 21, 2023❤️1
    56
    @swulling 区别蛮大的 灵活性上面
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Mar 21, 2023 via iPhone
    57
    @fivesmallq
    免费额度一样。ADO build 和 release 是分开的,方便你发布历史版本。ADO build 出来的东西存储不计费,比如你 build docker image 存起来,发布的时候再 push 。第三方插件比较多,可视化做得比较好。相比之下 GitHub action 就像半成品。
    Tonyski
    Tonyski
    Mar 21, 2023
    58
    前端直接上 github + vercel
    zzzzzzZ
    zzzzzzZ
    Mar 21, 2023
    59
    你是想要《 Rainbond 》这种无脑方案,但是 rainbond 不好用,适合不懂开发的运维

    但是我更加推荐,也是楼上一致的方案:
    自己的 git 库+Jenkins+制品仓库( Harbor 或者云服务制品库)+k8s/云容器服务

    粗学上手一套其实也不难,远比用 rainbond 带来的隐患轻松多了
    定制性更佳、更灵活、私密、功能健全,秒杀 rainbond 这种无脑方案
    remember5
    remember5
    Mar 21, 2023
    60
    gitlab-ci 比较贴切 gitlab
    AeroKwok
    AeroKwok
    Mar 21, 2023
    61
    腾讯的 coding 比 Jenkins 更友好一些,门槛也更低
    NoString
    NoString
    Mar 21, 2023
    62
    我们也 ECS TeamCity 一把梭
    Guidoo
    Guidoo
    Mar 21, 2023
    63
    没人用 TeamCity 吗 ???
    gongquanlin
    gongquanlin
    Mar 21, 2023❤️3
    64
    drone ci + gitea + docker 香的一批,drone 和 gitea 也是 go 开发的,drone + gitea 全部 docker 部署,内存占用非常低,自动部署 docker 容器,香的一批
    simo
    simo
    Mar 21, 2023
    65
    3 5 个人,完全可以 docker 部署 gitlab pipeline 跑;还有其他类型任务要跑,可以上 gitlab + jenkins 。
    draguo
    draguo
    Mar 21, 2023
    66
    阿里云直接云效很好用,没有运维成本,小团队不推荐 jk
    defunct9
    defunct9
    Mar 21, 2023
    67
    外包给我就好
    tedzhou1221
    tedzhou1221
    Mar 21, 2023
    68
    coding
    mianju
    mianju
    Mar 21, 2023
    69
    github + dokku, 单机还能部署 grafana 、db 各种服务
    hb0730
    hb0730
    Mar 21, 2023
    70
    @gongquanlin gitea 好像要出 actions 了,最后连 drone 都去掉,貌似和 github action 差不多
    Nazz
    Nazz
    Mar 21, 2023
    71
    小公司的话, 使用 ssh 远程执行命令, 自己编个脚本 make deploy 一键发布
    eDeeraiD0thei6Oh
    eDeeraiD0thei6Oh
    Mar 21, 2023
    72
    能用 Github Actions 就用吧。如果不需要太多的 build 只是 deploy 文件用 Jenkins 也可以。
    @Nazz 自动化部署可能是和 git 相关的,除非他们用自己的 git repo server
    alsas
    alsas
    Mar 21, 2023
    73
    spug 没人用???
    feelinglucky
    feelinglucky
    Mar 21, 2023
    74
    gitea + drone 这个搭配已经很多年了,感觉也还行
    18601294989
    18601294989
    Mar 21, 2023❤️1
    75
    千万别选 jenkins 就行 太难用
    zed1018
    zed1018
    Mar 21, 2023
    76
    推荐 fluxcd
    zhhqiang
    zhhqiang
    Mar 21, 2023
    77
    jenkins 触发 git pull 😅
    xiaocaiji111
    xiaocaiji111
    Mar 21, 2023
    78
    腾讯云 coding ,一直在用,免费版限制构建分钟数,可以使用自己服务器加个节点。
    ppgs8903
    ppgs8903
    Mar 21, 2023
    79
    没钱别做 jenkins ,直接 gitlib ci & github ci 。
    OutOfMemoryError
    OutOfMemoryError
    Mar 21, 2023
    80
    我们是 gitlab 的 gitlab ci 实现的
    clf
    clf
    Mar 21, 2023
    81
    gitlab all in one ,项目管理+CI/CD 都在上面了。
    Suomea
    Suomea
    Mar 21, 2023
    82
    gitea:代码存储、镜像仓库、jar 包仓库
    jenkins + buildkit + containerd + kubectl:构建 + 发布
    k8s + containerd:运行服务
    tramm
    tramm
    Mar 21, 2023
    83
    gitea + drone
    moreant
    moreant
    Mar 21, 2023
    84
    我投 TeamCity 一票
    hahahahahahahah
    hahahahahahahah
    Mar 21, 2023 via iPhone
    85
    兼职运维需不需要,给你们搭建 Jenkins ,再写个 pipeline
    ropon
    ropon
    Mar 21, 2023
    86
    jenkins k8s api ,最好能上套运维平台兼容自建机房
    msareposar
    msareposar
    Mar 21, 2023
    87
    直接 github action self-host 完事儿
    hoopan
    hoopan
    Mar 21, 2023
    88
    Jenkins ,我的个人项目也用这个部署
    yekern
    yekern
    Mar 21, 2023
    89
    开始我们也是搞各种运维 自动化部署, 团队太小 只有几个人 根本没有精力弄这些 如果爆炸更难弄. 所以就最简单的 webhook git pull 省时省力省心
    yinmin
    yinmin
    Mar 21, 2023
    90
    写一个 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 文件即可。
    keenkiller
    keenkiller
    Mar 21, 2023
    91
    最简单的:写个脚本
    次之:gitlab cicd 集成
    再次:Jenkins
    ZhaoUncle
    ZhaoUncle
    Mar 21, 2023
    92
    gitea+drone
    aaronkk
    aaronkk
    Mar 21, 2023
    93
    github 的 action ,gitlib 的 ci ,本身就集成了 CI/CD 功能。
    上面看到有说项目管理也放在 gitlab ,等时间长了那会太臃肿,每天的备份都特别大,回头还要考虑瘦身。
    Jemini
    Jemini
    Mar 21, 2023
    94
    drone + github
    yyttrr
    yyttrr
    Mar 21, 2023
    95
    gitlab-ci 吧很方便
    可以看看 ACK 托管集群,弹性的幅度很大考虑一下 ASK ,不过这些都是很后期的事情了
    xinshoushanglu
    xinshoushanglu
    Mar 21, 2023
    96
    jenkins 用起来
    gongquanlin
    gongquanlin
    Mar 21, 2023
    97
    @hb0730 那真是更香的一批了
    opengg
    opengg
    Mar 21, 2023
    98
    gitea actions
    jeizas
    jeizas
    Mar 21, 2023 via iPhone
    99
    k8s
    hzxxx
    hzxxx
    Mar 21, 2023
    100
    用 gitlab 的 CICD 吧,或者用 gitlab hook 自己写个小脚本触发流程
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3006 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 157ms · UTC 11:33 · PVG 19:33 · LAX 03:33 · JFK 06:33
    ♥ Do have faith in what you're doing.