技术大佬们, CI/CD(持续集成/持续发布)的方案有哪些 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
userlijinhong
V2EX    Java

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

  •  
  •   userlijinhong
    LiJinHongPassion 2021-02-01 16:19:44 +08:00 8304 次点击
    这是一个创建于 1712 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言    2021-02-03 10:20:42 +08:00
    非常感谢各位的发表的评论,每一条评论我都看了,受教了。确实没有把微服务容器化和 CICD 区分开来。根据公司的情况,我现在对于微服务容器化想的是一个比较简单的方案来尝试一下,利用 docker 来部署,用 docker-compose 来简单编排 docker 容器。至于 k8s,等学习了再来干。
    37 条回复    2021-02-04 10:42:37 +08:00
    Gwzlchn
        1
    Gwzlchn  
       2021-02-01 16:34:58 +08:00   2
    gitlab ci 就够了,不用 jenkins 也行。
    yukong
        2
    yukong  
       2021-02-01 16:35:05 +08:00
    gitlab + k8s 结束了啊
    或者 jenkins + k8s
    intmax2147483647
        3
    intmax2147483647  
       2021-02-01 17:20:11 +08:00
    付费方案:BuildKite+AWS 套件
    retanoj
        4
    retanoj  
       2021-02-01 17:21:29 +08:00
    微服务和 CI/CD 的确是两个事情
    mitsuizzz
        5
    mitsuizzz  
       2021-02-01 17:21:41 +08:00
    gitlab 有自己的 cicd 也挺好用的
    YzSama
        6
    YzSama  
       2021-02-01 18:16:26 +08:00 via iPhone
    gitlab cicd 完美
    bthulu
        7
    bthulu  
       2021-02-01 18:17:16 +08:00
    gitlab 是好用是要钱的
    agoodob
        8
    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
        9
    simonlu9  
       2021-02-01 18:25:19 +08:00
    刚搭完 docker 自动化部署,teamcity 满足你一切
    RedBeanIce
        10
    RedBeanIce  
       2021-02-01 18:33:41 +08:00
    Luufery
        11
    Luufery  
       2021-02-01 19:00:40 +08:00 via Android
    ci 直接用 gitlab 吧,teamcity 不好用,Jenkins 太古老了。cd 建议自研
    liuxu
        12
    liuxu  
       2021-02-01 19:01:23 +08:00
    公司的项目用的 gitlab + gitlab runner + docker-compose
    我自己的项目用的 github + github actions + k3s + helm

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


    跟 CI/CD 没有一毛钱关系
    soulmt
        18
    soulmt  
       2021-02-01 20:49:00 +08:00
    容器化是容器化,自动部署是自动部署, 容器化方案 docker+k8s 这玩意你想怎么部署都可以 可以用 jenkins 哪怕自己写 shell 脚本都可以,或者你说的 ci/cd 自动部署,是 2 块功能哦
    kaka6
        19
    kaka6  
       2021-02-01 20:53:46 +08:00   1
    不是大厂项目的话
    其实自己写个更新程序也不难
    把项目代码托管到 码云、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
        20
    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
    tilv37
        21
    tilv37  
       2021-02-01 21:18:23 +08:00
    @tilv37
    顺序错了

    代码托管( azure devops repo )->DevOps Pipeline -> Azure Continer Registry - > DevOps Realease -> Azure K8S Service
    KuroNekoFan
        22
    KuroNekoFan  
       2021-02-01 22:23:19 +08:00 via iPhone
    差不多
    Jenkins 的权限管理麻烦一点
    riccox
        23
    riccox  
       2021-02-01 22:33:24 +08:00
    Coding 的用着不错
    mumubin
        24
    mumubin  
       2021-02-01 22:49:27 +08:00
    harness
    danieladu
        25
    danieladu  
       2021-02-01 23:06:10 +08:00 via Android
    azure pipeline
    calmzhu
        26
    calmzhu  
       2021-02-02 00:05:54 +08:00 via Android
    量不大差别不大。
    超过 1000 个,还是 jenkins 省事
    SkyLine7
        27
    SkyLine7  
       2021-02-02 09:38:36 +08:00
    jenkins
    yupozhang
        28
    yupozhang  
       2021-02-02 11:27:46 +08:00
    发布部署 以及其他运维常见管理,可以了解一下这个开源运维平台项目: https://github.com/openspug/spug
    smilingsun
        29
    smilingsun  
       2021-02-02 11:39:22 +08:00
    了解一下 GitOps,简洁的是 FluxCD,强大的选 ArgoCD
    bluefalconjun
        30
    bluefalconjun  
       2021-02-02 13:41:43 +08:00
    其实我也在一直找对应方案. 而且后面想加上一个方便的自动化测试流程.

    1. gerrit + jenkins 做编译检查已经有了.
    2. 缺对产出进行嵌入式设备上的自动化测试流程.

    看了下 各大厂好像都是自研流程. 商业化的不多. 求指导....
    676529483
        31
    676529483  
       2021-02-02 14:44:22 +08:00
    CI 我司用的 Jenkins,但个人感觉 drone 比较好用。CD 直接 k8s,自研平台掉 APIServer
    amundsen
        32
    amundsen  
       2021-02-02 15:42:27 +08:00
    gitlab + k8s (公司从 docker 迁移到 k8s 的)
    jerray
        33
    jerray  
       2021-02-02 16:49:26 +08:00
    没有 CI/CD 也能容器化,主要是先容器化。

    我们最开始容器化的时候,项目负责人执行命令在本地构建和上传镜像。后来用得比较成熟了才部署了 CI 。代码仓库如果是 GitLab 的话,直接用 GitLab CI/CD 。GitHub 就考虑 GitHub Actions 。Drone.io 也可以考虑,本身就是容器化部署,特别方便。
    hantsy
        34
    hantsy  
       2021-02-02 20:47:35 +08:00
    hantsy
        35
    hantsy  
       2021-02-02 20:50:54 +08:00
    我这个例子配置了比较常见的 CI (大部分现代 CI 云服务,CICD 都是一体的),我选择了 8 个,还有配置其他,代码质量,测试 Coverage,等。
    moxiaowei
        36
    moxiaowei  
       2021-02-04 08:52:45 +08:00
    k8s+jenkins,使用 kubesphere 可视化操作 很爽的
    thinkmore
        37
    thinkmore  
       2021-02-04 10:42:37 +08:00
    springboot + harbor + drone + k8s + kustomize
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6067 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 03:06 PVG 11:06 LAX 20:06 JFK 23:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86