V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wanderingaround
V2EX  ›  问与答

现实生产环境各类应用是如何部署到服务器上的的?

  •  
  •   wanderingaround · 2023-09-11 08:59:04 +08:00 · 2757 次点击
    这是一个创建于 433 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1 、分别运用到哪些技术?
    2 、数据库主从是标配吗?
    3 、对于一般应用服务器数量和几核多少内存够?
    第 1 条附言  ·  2023-09-11 09:33:58 +08:00
    为何讨论表设计或者并发以及多线程、io 以及业务当中代码如何写比较多,但是服务器部署、应用、管理、运维以及上线的数据库数据备份、troubleshooting 以及集群等问题比较少?你们所在都是公司有专业的运维呀?
    第 2 条附言  ·  2023-09-11 12:03:00 +08:00
    代码放到 github 或者 gitlab 或者自建代码仓库,哪种多一些,利弊是什么?
    26 条回复    2023-09-11 23:01:10 +08:00
    IDAEngine
        1
    IDAEngine  
       2023-09-11 09:01:22 +08:00   ❤️ 1
    Jenkins
    Worldispow
        2
    Worldispow  
       2023-09-11 09:02:35 +08:00   ❤️ 1
    小公司 ssh ,大公司 k8s ,但本质上没啥区别。
    数据库不一定是主从,也可能是集群,比如 oracle rac 之类的。
    wanderingaround
        3
    wanderingaround  
    OP
       2023-09-11 09:27:24 +08:00
    4 、应用上线了数据库多久做一次备份,数据库出现的问题直接在服务器上解决吗?会把上线的应用所在数据库当中的数据拉到测试库吗?
    5 、应用部署有像设计数据库表那样有规约不?就是常见最佳实践?
    6 、你所在的公司部署、维护、管理上线的应用常见做法是什么?
    ltfree
        4
    ltfree  
       2023-09-11 09:28:46 +08:00   ❤️ 1
    Jenkins + docker B 端业务 没必要主从 4h8g 基本差不多
    mypchas6fans
        5
    mypchas6fans  
       2023-09-11 09:31:16 +08:00   ❤️ 1
    1. CICD 老派的就 Jenkins 为代表;新派的就以代码 repo 为中心触发;
    2. 看应用;
    3. 看应用
    Rache1
        6
    Rache1  
       2023-09-11 09:43:49 +08:00   ❤️ 1
    数据库直接用云服务商的
    duojiao
        7
    duojiao  
       2023-09-11 09:45:29 +08:00   ❤️ 1
    为何讨论表设计或者并发以及多线程、io 以及业务当中代码如何写比较多,但是服务器部署、应用、管理、运维以及上线的数据库数据备份、troubleshooting 以及集群等问题比较少? ----------- 也很多的,可以了解下 CI/CD (持续集成)、devops 之类的,敏捷这个事情已经讨论了几十年了,了解下这些方向或许可以解你惑~
    arrhenius
        8
    arrhenius  
       2023-09-11 09:51:17 +08:00
    这是面试题来这里找答案了吗,哈哈哈,善用搜索
    8355
        9
    8355  
       2023-09-11 09:57:12 +08:00   ❤️ 1
    1 、Jenkins
    2 、1 主 1 从基本标配,读多增加从库数量
    3 、测试双核 4g 生产 4 核 8g 常规,我司接口优化的好,高并发接口 10ms 以下机器数量更重要不追求单机
    纯后端任务机根据系统运行情况做优化或者调整配置
    4 、数据库上云每天凌晨快照备份,数据库出问题?能出什么问题?线上数据测试无法模拟?追求解决速度肯定是拉更好,但是取决于线上的量,同时也不规范长此以往出问题的概率更大,权限得不到控制。
    5 、应用部署有啥规约,权限合并,代码审核,必要的话代码关联检查。
    6 、不理解你想得到一个什么样的具体答案,Jenkins 配置好,开发者普通组员有测试环境构建权限,负责人/tl/技术经理/系统负责人有对应权限。
    wanderingaround
        10
    wanderingaround  
    OP
       2023-09-11 10:09:13 +08:00
    @8355 现实当中只用过比如代码更新了某一功能或者修改了啥,只用了哪个 windows IIS 部署了一下,更深度细致的有其他人搞,其他的比如博客啥的用过那个 nginx 啥的,就特别好奇现实当中这一些列运维操作如何搞得,想拓宽一点视野,因为没有从零到一搞过这部署应用这一套(比如上云啊,数据库主从、集群这些啊等等以及常见运维小技巧啥的),所以想知道主流的到底咋搞的?
    wanderingaround
        11
    wanderingaround  
    OP
       2023-09-11 10:16:03 +08:00
    @arrhenius >这是面试题来这里找答案了吗,哈哈哈,善用搜索
    不是,搜索当然要搜索,但是实际常见咋做的更有意义,因为你知道懂了实际到底咋做的,你看哪些理论或者以及搜索出来的实操啥的更有意义,更能豁然开朗,如果不知道实际或者没听说过实际如何做的,哪些搜索东西还是不能学以致用的。而且质量也参差不齐的,当然这就说到你善用搜索了,但是你得知道一般这玩意咋做咋搞的,通用常见做法啊,搜出来大多都是具体业务下咋做的,当然又回到你说的善用搜索了,掌握了 google 搜索技巧以及一些关键字,但是有时候还是不能搜到你想要的答案,有点干货的东西不是那么好找的。
    8355
        12
    8355  
       2023-09-11 10:46:44 +08:00
    @wanderingaround #9 容器+k8s 这样解释就好了
    wanderingaround
        13
    wanderingaround  
    OP
       2023-09-11 10:50:57 +08:00 via Android
    @8355 恩,好的,不过像您刚才分条别类比较详细的回答比较好,更细致,太粗旷了虽然也好,但是稍微具体更佳。
    julyclyde
        14
    julyclyde  
       2023-09-11 10:51:40 +08:00   ❤️ 1
    首先要打个包,不管容器还是 rpm 还是 jar ,一定要打个包
    这个包就是“边界”,里面是各种具体的东西,外面是标准化的操作手段(复制单个文件,启动程序)
    28Sv0ngQfIE7Yloe
        15
    28Sv0ngQfIE7Yloe  
       2023-09-11 11:03:59 +08:00   ❤️ 1
    Gitlab + Gitlab Runner ( on K8S ) + minIO + sonakube + docker + K8S
    28Sv0ngQfIE7Yloe
        16
    28Sv0ngQfIE7Yloe  
       2023-09-11 11:04:19 +08:00   ❤️ 1
    👆补充:istio
    zyxk
        17
    zyxk  
       2023-09-11 11:36:16 +08:00
    @IDAEngine @ltfree @mypchas6fans @8355
    请教,个人建站,之前一直使用 ftp 手动上传,前段时间才知道 github actions , 发现还挺方便的,push 代码到 github 时就可以自动上传腾讯/阿里云, 但是唯一的问题是 github 上传到国内腾讯云速度比较慢。
    我想要简单的实现:push 到 github 时,自动上传到腾讯云等 sftp , 使用 Jenkins 合适吗,还是有其他的推荐,谢谢。
    wanderingaround
        18
    wanderingaround  
    OP
       2023-09-11 11:44:29 +08:00 via Android
    @mypchas6fans 您经历过的的项目主从和集群或者不用这些以及服务器台数和内存大小核数能讲讲吗,数据库您觉得上线了特别要注意的事项是那些?
    GeorgeWai
        19
    GeorgeWai  
       2023-09-11 11:55:04 +08:00   ❤️ 1
    思考清楚整个发布流程,写个脚本,一键完成,停会服问题不大;不停服发布需要做一大堆的事情来保证不停机发布,k8s 也一样,特别是涉及到消息生产消费的问题。至于 CI/CD 的问题,讨厌 jenkins ,自撸了个轮子,代码质量不咋样,未完待续,可以看下 https://github.com/weichenqi/OpsGoCD ,目前做到 java 项目可以上传镜像仓库,不喜勿喷。
    8355
        20
    8355  
       2023-09-11 12:09:14 +08:00
    @zyxk
    Jenkins 合适,刚开始不会配置自动可以在 ide 里安装 Jenkins 插件点击一个按钮实现手动部署。
    其实更简单的是在 ide 里直接配置 ftp 的目录,ide 保存之后自动上传覆盖服务器文件,不要折腾这种才是最佳,适合只有一个开发者场景不需要版本管理,如果你需要多台电脑环境混合提交还是要 git+Jenkins 。
    GeorgeWai
        21
    GeorgeWai  
       2023-09-11 13:20:54 +08:00
    @zyxk 写个钩子程序配置到 git 仓库里,收到 push event 后,解析有用的数据,然后做自己想做的操作,jenkins 本质就是个壳子+插件,脚本还是要自己写,如果不需要壳子,jenkins 的用途就不大了。
    nomytwins
        22
    nomytwins  
       2023-09-11 13:28:19 +08:00
    我们用的纯 docker 环境
    ltfree
        23
    ltfree  
       2023-09-11 14:14:18 +08:00
    @zyxk 自己搞 Jenkins 太费内存了(貌似官方推荐 10G 内存) 换个码云 或者 阿里云的云效 都不错
    wellerman
        24
    wellerman  
       2023-09-11 19:08:15 +08:00   ❤️ 1
    哈 现在小公司不都是用 BT 么
    wanderingaround
        25
    wanderingaround  
    OP
       2023-09-11 19:26:48 +08:00 via Android
    @wellerman BT 是啥?
    wellerman
        26
    wellerman  
       2023-09-11 23:01:10 +08:00
    @wanderingaround 宝塔面板
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1631 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:39 · PVG 00:39 · LAX 08:39 · JFK 11:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.