V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rockyliang
V2EX  ›  程序员

小公司都是怎么部署代码到生产环境服务器的?

  •  2
     
  •   rockyliang · 2021-06-25 15:32:34 +08:00 · 18713 次点击
    这是一个创建于 1029 天前的主题,其中的信息可能已经有所发展或是发生改变。

    据我所知,大公司的代码上线流程一般都会很规范,有专门的代码发布系统。但小公司的话,可能会没有实力去开发这种发布系统,所以想了解下这个问题。

    如果是我的话,我的做法应该是: 首次部署使用 git clone,后续代码的变更则使用 git pull

    这种做法好不好?或者有没有更好的做法呢?

    144 条回复    2021-06-28 16:35:01 +08:00
    1  2  
    oneisall8955
        101
    oneisall8955  
       2021-06-26 05:46:53 +08:00 via Android   ❤️ 1
    曾经小公司经历的版本:
    v1:本地打包+sftp+手工命令
    v2:上述封装成本地脚本命令一件执行
    v3:项目多了,改 jenkins 发布,按钮点点点

    现在:jenkins+docker 镜像
    oneisall8955
        102
    oneisall8955  
       2021-06-26 05:49:36 +08:00 via Android
    @yhxx 生产这样不怕进程没了吗😂
    madpecker009
        103
    madpecker009  
       2021-06-26 08:41:59 +08:00
    Ctrl+c Ctrl+v
    yumerdev93
        104
    yumerdev93  
       2021-06-26 08:50:02 +08:00   ❤️ 1
    本地打包 docker image,push 到自己的仓库,然后 docker swarm 更新下 service🐶
    xinJang
        105
    xinJang  
       2021-06-26 08:59:29 +08:00
    看来这里需要先对小公司做个定义。比如我目前所在公司,就我一个人搞技术!!!
    目前做法是:后端直接替换 class 跟 jsp(tomcat),公众号直接替换 npm build 之后的 dist(改名为 app)
    盲人摸象的感觉,随时准备裸辞
    bojackhorseman
        106
    bojackhorseman  
       2021-06-26 09:06:25 +08:00 via iPhone
    @yhxx xs 哈哈哈
    jeffh
        107
    jeffh  
       2021-06-26 09:07:41 +08:00
    >> 阿里云云效 2020,30 人一下的团队可以申请免费;
    包括云代码管理,项目管理,流水线部署等~~~

    @xuxuxu123 感谢分享,最近一直在找阿里云 CICD 的有力工具
    darrenfang
        108
    darrenfang  
       2021-06-26 09:14:52 +08:00   ❤️ 1
    服务器上装 eclipse,代码在服务器上面写,写完在 eclipse 里面重启服务器 😈
    creanme
        109
    creanme  
       2021-06-26 09:42:12 +08:00
    早些年用过 scp 部署,后来用过 gitlab
    weitch
        110
    weitch  
       2021-06-26 09:42:38 +08:00
    svn co svn://xxxxx/app
    service httpd restart
    JingKeWu
        111
    JingKeWu  
       2021-06-26 09:55:58 +08:00
    docker+k8s
    anonymous256
        112
    anonymous256  
       2021-06-26 09:59:16 +08:00
    @whileFalse git pull 容易自动合并或者卡在冲突. 那是因为你们工作在同一个分支上,每个人的改动不一。

    最佳实实践每个人用自己的分支,最后再 PR 或 merge 代码到主分支,merge 的权限交给对代码最熟悉的人。
    axzy
        113
    axzy  
       2021-06-26 10:11:32 +08:00
    小公司啊?直接 FTP 上传呗,然后就完事了
    byte10
        114
    byte10  
       2021-06-26 11:40:13 +08:00
    都是太低端啦,直接 vscode 远程开发,改完之后,直接启动服务,nohup 命令即可,发布完成。随时有问题,随时改,改完发布完成。有问题直接开一个节点 debug 完后,重新发布。手动、狗头
    yinxianwei
        115
    yinxianwei  
       2021-06-26 11:57:09 +08:00
    Jenkins 配合 git flow
    cp19890714
        116
    cp19890714  
       2021-06-26 12:29:31 +08:00
    上家公司稍大, 用 jenkins + k8s
    现在的小公司, 云效部署, 比 jenkins 省事多了.
    30 人以下的公司, 真心推荐云效, 不用维护那么多的工具.
    alsas
        117
    alsas  
       2021-06-26 13:34:53 +08:00
    sftp 手动放上去
    Torpedo
        118
    Torpedo  
       2021-06-26 14:29:29 +08:00
    底线就是完全自动化,可以回溯版本。

    至于怎么搞,方法有很多
    pcbl
        119
    pcbl  
       2021-06-26 15:32:03 +08:00 via Android
    web 面板搞起,生产数据库直接改(狗头)
    Dkngit
        120
    Dkngit  
       2021-06-26 16:11:59 +08:00
    @sadfQED2 谢谢你提供我今日的欢乐
    cnbattle
        121
    cnbattle  
       2021-06-26 16:19:53 +08:00
    目前再用:gitea+drone 自动部署
    whileFalse
        122
    whileFalse  
       2021-06-26 16:27:22 +08:00 via iPhone
    @anonymous256 题目说了小公司,lz 连 jenkins 都不会你让他用 pr ?一个人 force push 也可能在 ci 上冲突啊。

    所以我说 ci 应该用 fetch reset clean,没错吧? git 工作流是一回事,ci 这边要做的是精确复制,不能说 ci 要正常工作还得研发保证优雅地使用 git 。
    xyx0826
        123
    xyx0826  
       2021-06-26 16:40:38 +08:00
    用 GitHub Actions 配合这个 Action: https://github.com/appleboy/ssh-action 通过专门创建的 deploy SSH key 在服务器上 pull 然后构建
    feiniu
        124
    feiniu  
       2021-06-26 18:44:00 +08:00
    阿里云的 k8s 那一套
    wellsc
        125
    wellsc  
       2021-06-26 19:04:17 +08:00 via iPhone   ❤️ 2
    @darrenfang 我见过 win server 服务器上直接用 pycharm 跑程序的,太野了
    EscYezi
        126
    EscYezi  
       2021-06-26 19:10:23 +08:00 via iPhone
    弄个脚本调用本地 winscp,批量上传到固定目录,然后挨个登录服务器执行一下部署脚本......
    fiypig
        127
    fiypig  
       2021-06-26 19:41:33 +08:00 via iPhone
    FTP 感觉很容易出问题,git 还行的,或者 jenkins
    fernandoxu
        128
    fernandoxu  
       2021-06-26 20:50:39 +08:00
    filezilla😭
    xcstream
        129
    xcstream  
       2021-06-26 23:59:37 +08:00
    vscode 远程 保存立即生效
    qaqLjj
        130
    qaqLjj  
       2021-06-27 00:32:04 +08:00
    rz 传上去可以吗?
    junas7
        131
    junas7  
       2021-06-27 14:54:52 +08:00
    mstsc -> ctrl+c -> ctrl+v -> tomcat start
    lkk
        132
    lkk  
       2021-06-27 17:05:26 +08:00
    git 代码托管设置 webhook 。服务器上 inotify-tools 时时监控文件改变,执行 git pull 。
    HB9527
        133
    HB9527  
       2021-06-27 18:38:12 +08:00
    ansible
    810244966
        134
    810244966  
       2021-06-28 00:45:52 +08:00 via Android
    当然是用宝塔直接上传啦 :)
    who1996
        135
    who1996  
       2021-06-28 07:18:53 +08:00
    jenkins,遇到那种逗比老板不给时间做 infra 级别的开发的,只看业务,最主要是装自己很懂的,还是算了
    helllkz
        136
    helllkz  
       2021-06-28 09:05:07 +08:00
    非开发人员,处于爱好帮开发整过 Jenkins,也仅限于前端代码,整个项目部署的流程大概是这样
    停 Tomcat,更新文件,重启 Tomcat,重启 Nginx
    jerry1zeng
        137
    jerry1zeng  
       2021-06-28 09:13:02 +08:00
    之前用 jenkins,但是要自己搭。后来发现了云效,可以申请小微企业扶持,免费使用,应付十几个人的小队团足够了,使用也简单。
    dfkjgklfdjg
        138
    dfkjgklfdjg  
       2021-06-28 09:58:55 +08:00
    Jenkins,看到楼上说云效感觉可以试试看。
    myCupOfTea
        139
    myCupOfTea  
       2021-06-28 10:18:10 +08:00
    Jenkins docker k8s
    darrenfang
        140
    darrenfang  
       2021-06-28 10:18:56 +08:00
    @wellsc #125 公司 10 年前的项目就是在服务器 eclipse 里面跑的 😂
    x66
        141
    x66  
       2021-06-28 10:21:07 +08:00
    jenkins docker ansible
    back0893
        142
    back0893  
       2021-06-28 13:49:47 +08:00
    直接 ftp+ssh
    或者 docker
    要不就 git
    xuxuzhaozhao
        143
    xuxuzhaozhao  
       2021-06-28 14:17:46 +08:00
    @code4you bingo
    ezreal
        144
    ezreal  
       2021-06-28 16:35:01 +08:00
    node 项目 pm2 deploy
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2601 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 966ms · UTC 01:44 · PVG 09:44 · LAX 18:44 · JFK 21:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.