V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
InDom
V2EX  ›  git

终于说动公司切 Git 了,现调研阶段,求 GitLab + Jenkins 类似的技术方案推荐。

  •  1
     
  •   InDom · 125 天前 · 9160 次点击
    这是一个创建于 125 天前的主题,其中的信息可能已经有所发展或是发生改变。

    总之是要切到 Git 代码管理了,现在准备把 CI/CD 之类也一并上了。

    目前已知有以下技术,求其他技术方案供参考,谢谢:

    GitLab 、Gogs 、CodeFever Jenkins 、TeamCity

    要求是私有化部署,花钱可以。

    如果能推荐的同时给出一点点理由就更好啦。

    谢谢!

    第 1 条附言  ·  125 天前

    感谢大家的推荐,汇总下截止目前大家的推荐与问题;

    最后还是决定只在 Docker 上跑 GitLab,其他的就后面有明确需求再说。

    主要是确实项目虽大但不多,也没有明确的运维来做 CI/CD,所以暂时把精力先放在转移到 GitLab 上,后期慢慢调整。

    先说问题

    如何说服领导的

    说真的,我也很懵逼,中午吃完饭回来突然就聊到了这个话题,就连午休都省了,聊了半天 svn 规范相关的话题, 至于同意更换的原因,估计一个是我们两个人力推,而且在参照git-flow流程去规范svn使用时确实只是能实现但别扭的问题。

    大家推荐的汇总:

    1. GitHub 企业版:支持私有化,但付费,次选方案
    2. Gogs、Gitea:轻量级,担心生态问题
    3. Jenkins:后续有人能负责时可以再加上(如使用 GitLab 的话)
    4. Drone:持续集成,似乎可以配合 2 来使用,但公司服务器,不怕性能问题
    5. TeamCity:说真的,不是很了解,收费做次选方案
    6. Azure DevOps:待考察,付费,次选方案

    同意几位的说法,公司资源,不要去精简需求,考虑未来扩展性,GitLab 似乎是不二之选,直接起 EE,如有需求可购买授权。

    至于其他云平台的,涉及保密问题,私有化部署是硬需求,感谢大家的推荐。

    如有新场景亦可推荐,希望可以作为后来者的指路牌吧。

    97 条回复    2022-06-17 11:49:13 +08:00
    Cbdy
        1
    Cbdy  
       125 天前 via Android
    用着 GitHub 企业版,感觉还行
    magua
        2
    magua  
       125 天前
    Gitlab 功能完善一些,但是内存占用相对大一些。

    可以考虑下 Gogs 的另一个版本

    产品的横向对比: https://docs.gitea.io/zh-cn/comparison/
    magua
        3
    magua  
       125 天前
    @magua Gogs fork 的 Gitea
    wolfie
        4
    wolfie  
       125 天前
    Jenkins 学习简单点。
    snoopyhai
        5
    snoopyhai  
       125 天前   ❤️ 3
    Gitea ,jenkins 。够了。

    但我目前正在享受 svn+hook 的待遇。。。
    告诫自己:不要多管闲事,给什么用什么。
    guozozo
        6
    guozozo  
       125 天前
    gerrit:code review
    jenkins:连接 Gerrit ,自动跑编译和单元测试
    gitlab:gerrit 合并代码后,自动推送到 gitlab ,保存代码。
    ysicing
        7
    ysicing  
       125 天前   ❤️ 1
    在用 gitea+drone
    statement
        8
    statement  
       125 天前
    说实话大头兵 svn 用着多爽
    Mithril
        9
    Mithril  
       125 天前
    如果 TeamCity 能满足需求那就 TeamCity ,不然就 Jenkins 。TeamCity 是按 BuildAgent 收费的,如果你们有很多项目,最好还是 Jenkins 。
    Jenkins 问题就是插件多数都是第三方个人维护的,很多插件的开发和维护不是很稳定。你要是项目规模大,Jenkins 上项目多,用的插件多,最后就会发现被锁死在某个版本上了。更新的话一堆插件用不了,不更新的话想要的新插件和功能用不上。
    tilv37
        10
    tilv37  
       125 天前
    如果不是非要私有化部署的话,其实 Azure DevOps 蛮好用的,一整套解决方案
    timethinker
        11
    timethinker  
       125 天前   ❤️ 2
    gitlab 自带的 CI/CD 已经可以满足绝大多数的需求了吧,内存占用确实比较大的,不过可以调整参数,关掉某些没用的模块。
    jucelin
        12
    jucelin  
       125 天前
    gitlab 也提供国内服务了 https://gitlab.cn/
    除了看托管服务,也要看周边配套服务、或者第三方教程
    S2Line
        13
    S2Line  
       125 天前
    gitlab 代码仓库+Jenkins 做 CI/CD
    sunny352787
        14
    sunny352787  
       125 天前   ❤️ 1
    目前用 Gitlab 搞定代码管理、代码审核、CI/CD 的全部功能,足够了

    至于说 Gitlab 占资源大的事,又不是家里用,公司单开一台机器跑能卡到哪里去
    balabalaguguji
        15
    balabalaguguji  
       125 天前
    需要 SVN 的话,可以看下我的 SVNBucket: https://svnbucket.com 支持私有化部署,成员添加、权限配置、钩子设置,都是 web 上可视化操作
    jiom
        16
    jiom  
       125 天前
    目前是 Gitlab+jenkins,基本上都上 docker 一键部署了.
    ppphp
        17
    ppphp  
       125 天前
    gitlab-ci 就行
    bthulu
        18
    bthulu  
       125 天前
    https://coding.net/一条龙, 国内服务器, 访问速度飞起, 你值得拥有
    cyrbuzz
        19
    cyrbuzz  
       125 天前
    gitea + drone 轻量级就完事了。
    ysc3839
        20
    ysc3839  
       125 天前 via Android
    Gitea+Drone 吧
    locoz
        21
    locoz  
       125 天前
    gitlab 全家桶挺好用的,资源占用也就那样,没啥好纠结的
    Breadth
        22
    Breadth  
       125 天前
    个人使用 Gitea+Drone 问题不大,团队的话还是 Gitlab 全家桶吧,不要因为占资源就去精简需求,企业场景机器才占几个钱。
    clf
        23
    clf  
       125 天前
    我们是 gitlab ee ,然后 ci 用的 gitlab-ci ,gitlab 的项目管理功能很方便,ci 的话功能也算是足够使用了。

    ci 运行的服务器可以和 gitlab 不在一个服务器上。

    私有化部署最蛋疼的就是带宽问题。
    sxfscool
        24
    sxfscool  
       125 天前
    用 gitlab ,ci 也用 gitlab 的就行
    way2explore2
        25
    way2explore2  
       125 天前
    @Cbdy +1

    Github Enterprise is good enough, and you have github action for CI/CD
    way2explore2
        26
    way2explore2  
       125 天前
    好奇问下楼主,怎么说服的,我这里各种技术问题,不知道怎么说服领导做变更
    joesonw
        27
    joesonw  
       125 天前
    都上 Gitlab 了, 没什么不直接用 Gitlab CI. Jenkins 更适合做手动 Deploy 的部分.
    spacebound
        28
    spacebound  
       125 天前
    目前是 Gitlab+jenkins ,自动化发布了
    bitllion
        29
    bitllion  
       125 天前
    建议用 gogs 这类轻量代码托管平台,之前我们团队 10~20 人也在用 gitlab ,但 gitlab 时常宕机,查了下是有多少内存( 64G 64c 机器)就吃多少内存,系统就崩了... 既然都用 jenkins 做 CI/CD 了,不用 gitlab 提供的 gitlab-runner 了,那为何不用只占几百兆的 gogs ,其实正常来讲,gitlab 需要一个专门的 devops 团队来维护,gogs 就不用了,docker 一键部署(虽然 gitlab 也是),但部署更快,启动更快,相应更快
    brader
        30
    brader  
       125 天前
    没有做集群的话,直接用定时任务拉 git 代码。。。我就是这么流氓的用了 2 年,没出啥错
    march1993
        31
    march1993  
       125 天前
    gitea 最方便
    Rwing
        32
    Rwing  
       125 天前
    gitlab 毫无疑问是这些里的 No.1 ,而且自带 CICD
    Bijiabo
        33
    Bijiabo  
       125 天前
    推荐 GitLab 全家桶,比如可以 GitLab + Confluence ,团队内部不止要做好代码开发,内部开发文档可以一整套搞起来。
    xgfan
        34
    xgfan  
       125 天前
    gitea + drone
    kiss ,gitlab 那种全家桶我就喜欢不起来。
    defunct9
        35
    defunct9  
       125 天前
    推荐本论坛一个坛友的作品:onedev 。
    阿里云效、Gitlab 、jenkins 都用过。
    感觉这个 onedev 适合
    zong400
        36
    zong400  
       125 天前
    gitlab 自带的 ci/cd 还行,不用非要加个 jenkins
    huangzxx
        37
    huangzxx  
       125 天前
    gitlab-ci 本身就很强大
    caixiaomao
        38
    caixiaomao  
       125 天前
    个人 Gitea+Drone ,挺好用的
    orcinus
        39
    orcinus  
       125 天前
    onedev +1 ,部署很方便
    461da73c
        40
    461da73c  
       125 天前
    gerrit + jenkins
    wineast
        41
    wineast  
       125 天前
    同时开发过 gitlab 和 jenkins 的 CICD ,主要是 pipeline 方面,说下对比
    如果公司规模不大,没有特别多的运维资源,gitlab 是比较好的选择,快速上手,但是功能比较一般,高阶功能不适合,但是基本的部署,打包,代码扫描,都可以整合完成。现在就是这个方案
    如果有专人做运维,也比较有空做些 CICD 开发,jenkins 是好的选择,功能齐全,但是相比较 gitlab ,稍微有点学习曲线

    做个不恰当的比喻,jenkins 好比 c++,内存需要自己来进行管理,gitlab 好比 java ,内存管理都扔给系统做,你只需要关注业务即可
    PS:一开始用 gitlab 开发 pipeline 的时候很不习惯,每进入一个新的节点,之前节点里保存在 workspace 里的所有东西都会被清空,我还特地去吐槽,后来在 gitlab 官网有篇文章专门讲了设计的思路,和 jenkins 中心化的思路完全不同,也算慢慢理解了 gitlab 为啥这样设计
    CurChen
        42
    CurChen  
       125 天前
    coding 用着还行
    Goooler
        43
    Goooler  
       125 天前
    Github 企业版,GitHub 配套的 CI/CI, issue , PR, project, release 什么的都是用起来最舒服的。
    RedisMasterNode
        44
    RedisMasterNode  
       125 天前
    复制楼上这句,Github 企业版,GitHub 配套的 CI/CI, issue , PR, project, release 什么的都是用起来最舒服的。

    表示真的很好用,而且 Github 配套的插件也很多,如果你们想在 GH 上做 code review ,也很好用!!
    yhxx
        45
    yhxx  
       125 天前   ❤️ 1
    能接受付费的话直接用这个呀
    https://www.aliyun.com/product/yunxiao/codeup
    其他云大厂也都有,都差不多
    mritd
        46
    mritd  
       125 天前
    GitLab + GitLab CI 一把梭
    fan123199
        47
    fan123199  
       125 天前
    目前在用 gitea+jenkins ,其实觉得 jenkins 有点老旧了。gitea 倒是很轻量很喜欢。
    ShareDuck
        48
    ShareDuck  
       125 天前
    @tilv37 Azure DevOps 有私有化部署的版本,就叫 Azure DevOps Server 。好用,但贵。
    linuxsuren
        49
    linuxsuren  
       125 天前
    cryboy007
        50
    cryboy007  
       125 天前
    目前我们公司是:gitlab+harbor+jenkins+rancher
    Huelse
        51
    Huelse  
       125 天前
    推荐尝试下 onedev ,CI 等很人性,https://github.com/theonedev/onedev

    总之先自己尝试下,楼上说的有些也还可以
    feather12315
        52
    feather12315  
       125 天前 via Android
    推荐 onedev ,不推荐 gitee/gogs ,功能太弱
    forgottencoast
        53
    forgottencoast  
       125 天前
    没人说 Atlassian 全家桶?因为收费吗?
    我以前公司用全家桶(文档、缺陷跟踪、代码托管、测试环境做到了 CI/CD ),用起来挺顺手的,50 个开发人员的团队规模。
    andrewDDC
        54
    andrewDDC  
       125 天前
    gitlab
    muyangren
        55
    muyangren  
       125 天前   ❤️ 2
    可以参考下




    lidashuang
        56
    lidashuang  
       124 天前
    Gogs 就算了
    Gitlab 走起
    tylinux
        57
    tylinux  
       124 天前
    Gitlab + Gitlab-runner ,都公司了,不查这点计算资源,我家里都跑着一套
    LifStge
        58
    LifStge  
       124 天前
    反正我是感觉 gitlab 团队使用比较适合了 本身自带的 ci/cd 也是可以的 虽然跟其他相比 各有优劣 不过 就是哪个合适就用哪个 到时候也可以针对项目使用 drone jenkins 等
    其实吧 对于私有部署的 不管哪个 git 也都大同小异 功能上的差异问题 有些为了精简 像 gitlab 更注重的功能 各自取舍吧
    自己私有部署 先就新的小项目 搭起来 选一个 选多个 各自测试下 都跑下流程 踩踩坑 看看是否适合自己的需求 然后再定吧 慢慢熟悉功能 慢慢积累 或者是再找比较精通的运维来把新环境搭起来 一定得比较熟悉的能处理未知问题的
    比较关键的还是看公司运维方面的问题.

    弱弱的提醒下 OP 新环境测试 一定要多备份 多备份!!!!!! 毕竟出了问题 很多时候 不需要费时找问题所在 直接重搭 恢复备份 也是比较快捷的方案

    看公司情况 如果能接受云的话 其实付费的 私有仓库 云上的 DevOps 也是很好的选择啊 毕竟这方面运维方面的问题就不用太担心了 功能上也不需要担心 肯定更丰富
    gamexg
        59
    gamexg  
       124 天前
    企业,硬件性能足够不推荐 gogs ,
    gogs 兴起大概一年的时候,我试用过,结果碰到新建 issue 带图片就 500 .
    而且当时 CI 需要另外使用 Drone 。

    后台自用都换成了 github ,
    虽然吃配置,但是该有的功能都有,省心。
    Hstar
        60
    Hstar  
       124 天前
    为什么没人提 bitbucket ,和 jira 配合使用真的很流畅,也和 gitlab 一样自带一个 cicd ,我觉得对于小型初创团队来说是起步代价最小的选择之一
    lidlesseye11
        61
    lidlesseye11  
       124 天前
    还有 gitbucket
    mmmfj
        62
    mmmfj  
       124 天前
    直接请个运维搞云服务吧
    skiy
        63
    skiy  
       124 天前
    明显 GitLab 了。GitLab Runner 用得非常爽。
    社区版的可以参考 gitcode ,它家就是用 CE 。
    c4fun
        64
    c4fun  
       124 天前
    愿意出钱的话,gitlab 的商业版本还有服务。感觉这种还比较省心,有问题可以尽快招人解决。
    villivateur
        65
    villivateur  
       124 天前
    Gitea 的话,感觉他的 LFS 功能有缺陷,有的时候下载 LFS 文件会报 404
    liyg04120414
        66
    liyg04120414  
       124 天前
    coding 目前用的挺好或者 gitlab 私有化部署
    missdeer
        67
    missdeer  
       124 天前
    我们这里小团队私有化部署 Gitlab+Jenkins ,感觉不错,就是要自己会折腾一下,写点脚本
    feelinglucky
        68
    feelinglucky  
       124 天前
    目前我们小团队正在使用 gitea + drone ,已经稳定运行快两年了,问题不大供参考
    lunny
        69
    lunny  
       124 天前
    Gitea 创始人在这里强烈推荐用 Gitea ,主要原因如下:

    1 )易安装和易维护,只有一个 exe ,Windows 都能够安装。升级也只要替换 exe 即可,基本上免运维。
    2 )除了资源占用低,性能比 GitLab 好太多,请参见 GitLab 自己的官方比较文档 https://about.gitlab.com/devops-tools/gitea-vs-gitlab/,里面记载了 Gitea 的平均页面加载速度低于 700ms ,而 Gitlab 超过 2 秒
    3 )在代码管理和协作这块其实功能比 GitLab-CE 要强很多
    4 )和 jenkins ,droneci ,几乎所有的工单系统均能够进行集成
    5 )客户端 fork ,sourcetree ,移动客户端 workingcopy ,gitnex 等均支持 Gitea
    6 ) Gitea 作为国人创始的项目,技术支持上会比 GitLab-CE 有很多的优势。有问题请加官方 QQ 群:328432459
    Uplay
        70
    Uplay  
       124 天前
    我们公司就是用的 gitlab CI/CD 感觉还行,就是内存占用有点大
    hu8245
        71
    hu8245  
       124 天前
    @snoopyhai 哈哈,要得。不要管闲事,不要操闲心,不然出问题,自己就是责任人。
    try4times
        72
    try4times  
       124 天前
    @muyangren 阿忠伯的黑粉[doge]?


    @snoopyhai 实在,中肯~
    wengych
        73
    wengych  
       124 天前
    gitlab 全家桶即可,gitlab 有 cicd ,不需要再引入一个臃肿的 Jenkins 。
    WispZhan
        74
    WispZhan  
       124 天前 via Android
    drone 不成熟,都打算 gitlab ee 了,直接 gitlab ci 呗
    knives
        75
    knives  
       124 天前
    小公司,一直用的 gitea + drone 的组合。

    gitea 除了在组织管理方面不大满意(比如没有组织级别的工单,当然这个 github 也没有),其它没有什么不满的地方。
    drone 运维功能比较残缺,出问题只能想办法各种查日志外,算是能用;基于容器的插件可以说是相当灵活了,有什么不足也可以自己撸一个也不算困难。
    sdushn
        76
    sdushn  
       124 天前
    gitlab 免费版也可以的,可以自己再自定义流水线与 mr 关联,后面慢慢建设呗,也可以看看 coding 一条龙服务
    sampeng
        77
    sampeng  
       124 天前
    几个建议。。
    1.不要一口气吃成一个大胖子。先切 git ,完善提交 review 的流程。别想着直接上 CI/CD ,这属于自嗨,做好了大家都好,做坏了,锅与你常在。
    2.不要用 git-flow 流程。这是实话实说,这玩意是看着美好,会把简单事情复杂化,除非你有几十上百个人在一个项目里提交。每个团队应该有适合自己的 workflow 。
    mingl0280
        78
    mingl0280  
       124 天前 via Android
    其实,你先自建一套 git (这个不需要 git 外的任何软件),然后再考虑 web 用啥比较好。
    Huelse
        79
    Huelse  
       124 天前
    经验告诉我 gitlab 的 CI/CD 并不好用,有这个计划的最好考虑下别的
    liyhu
        80
    liyhu  
       124 天前
    说个锤,直接 gitlab 做 ci/cd ,冲冲冲
    kongkongyzt
        81
    kongkongyzt  
       124 天前
    Coding 就挺好用的, 目前我们 BG 收购了 Coding 后也在内部大范围推广, 使用后的体验还不错
    jinqzzz
        82
    jinqzzz  
       124 天前
    看你们的需求喽,其实选择不多的。工作流可以复用甚至完全一致的项目比较多,可以考虑 Gerrit + Jenkins 的方案。各自配置的话用什么都行
    wanguorui123
        83
    wanguorui123  
       124 天前
    公司还是用 gitlab 吧
    NJAllen
        84
    NJAllen  
       124 天前   ❤️ 1
    @forgottencoast 我们公司上万人也是全家桶,各平台的交互很好。用起来还不错,就是印度人来管理。管理人员比较操蛋。
    Jinkeup
        85
    Jinkeup  
       124 天前
    看到用 Docker 了,可以尝试 Gitlab+Jenkins+Docker+Harbor 用一下还是不错的,对代码和 images 都会有着不错的管理作用
    ThanksSirAlex
        86
    ThanksSirAlex  
       124 天前
    cicd 不是很复杂的话 gitlab-ci 就完事了
    duke807
        87
    duke807  
       124 天前 via Android
    十年前我讓公司從 svn 切到 git
    我當時剛入職沒多久,本身也是剛畢業沒多久
    公司用 svn ,我懶得學 svn ,先用 git-svn 頂了一段時間
    lovedebug
        88
    lovedebug  
       124 天前
    说实话强烈建议选企业版的 github 或者 gitlab ,自建更新,出问题是很累的,能花钱解决的还是花钱吧
    cheng6563
        89
    cheng6563  
       124 天前
    jenkins 就是个大胶水,基本啥都能黏上。
    janus77
        90
    janus77  
       124 天前
    git 和 ci/cd 是两码事,Jenkins 可以直接上
    git 的界面系统看你需求了,没有很复杂的 review 等等东西随便弄一个轻量级的都可以,后期有需求了可以再换别的系统。
    forgottencoast
        91
    forgottencoast  
       123 天前
    @NJAllen 我觉得 Atlassian 家的 UI 比较好看,插件市场上的插件也很丰富。
    qfdk
        92
    qfdk  
       123 天前 via iPhone
    gitlab-ce 刚升级完 还有 jenkins 别用 docker 要不然溶气炸了 你都不好升级
    joyhub2140
        93
    joyhub2140  
       123 天前
    @muyangren 哥们可以分享一下这个 PDF 文件嘛,看上去很不错!
    a567
        94
    a567  
       123 天前
    数据库管理工具可以看下 Bytebase ,跟 Gitlab 集成蛮好的
    aguesuka
        95
    aguesuka  
       123 天前
    2022 年只用 Gitlab 就可以了, 真么必要用 gerrit 和 jenkins.
    muyangren
        96
    muyangren  
       83 天前
    @joyhub2140 #93 留个联系方式我发你
    xyxc0673
        97
    xyxc0673  
       11 天前
    @wineast 我想问下设计思路这篇文章的标题是什么呢?最近在 CI CD 上遇到了一些问题。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2743 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.