V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zinev
V2EX  ›  Linux

生产服务器,编译还是二进制?

  •  
  •   zinev · 2015-02-23 14:49:12 +08:00 · 5073 次点击
    这是一个创建于 3321 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先,我不是来引战的。

    有心想往运维方向发展,很好奇各位公司或者个人的正式业务是编译多还是二进制多?

    几个限制条件:
    Linux RedHat/CentOS Debian/Ubuntu 生产服务器

    二进制还是编译?处于什么考虑?


    PS:lz目前大二学生,想往运维发展,有什么好的建议不?
    32 条回复    2015-02-26 14:31:27 +08:00
    vzch
        1
    vzch  
       2015-02-23 15:06:44 +08:00
    kodango
        2
    kodango  
       2015-02-23 15:27:52 +08:00
    基本上是 rpm 包,少数 java 应用可能会使用 tar 包。
    huatai
        3
    huatai  
       2015-02-23 15:41:37 +08:00
    生产环境即使需要自定义(编译)安装,也会尽可能制作成rpm包来部署。

    因为一个运维工程师面对的是数千或数万的服务器(或虚拟机)。

    现在兴起的Docker/CoreOS部署是另外一种运维架构,但也会以二进制方式完成部署,采用了Layer https://docs.docker.com/terms/layer/

    不知道有没有使用 Gentoo 来运行生产环境的?
    invite
        4
    invite  
       2015-02-23 16:02:54 +08:00
    生产服务器一般是不让你在上面编译的.
    ryd994
        5
    ryd994  
       2015-02-23 16:10:13 +08:00 via Android
    编译的话要装很多东西啊,生产装这么多是作死
    而且u no test?既然测试,一般都找一样的机器吧,那么反正都编译好了,就拿测试好的用,别作。
    bombless
        6
    bombless  
       2015-02-23 16:40:38 +08:00
    生产服务器一般是不让你在上面编译的+1
    msg7086
        7
    msg7086  
       2015-02-23 21:36:42 +08:00
    虽说源码base是一个,不过二进制包有千千万万其他人帮你测试,而你自己手工编译,你就是这份二进制的第一个吃螃蟹的人。
    zinev
        8
    zinev  
    OP
       2015-02-23 21:49:21 +08:00
    我自己目前来说最正式的一个服务器就是申请的免费试用的Azure CN,装的CentOS的一个变种,仅仅yum装了nginx、mysql-server、php-fpm、php-mysql这几个包,最后还是挂了,连SSH都上不去了,数据都取不回来
    pandada8
        9
    pandada8  
       2015-02-23 22:03:50 +08:00
    恩……手上的VPS两个Ubuntu一个Arch
    打算全部换成基于Docker的……这样基本就不用关心底层系统了
    一般来说除非有奇怪的依赖源里没有才会考虑自己编译
    我倒是很关心豆瓣使用Gentoo作为服务器系统的心路历程XD
    ryd994
        10
    ryd994  
       2015-02-23 22:12:01 +08:00 via Android
    @zinev 装几个包也能装崩掉,你这水平也是醉了。不要用个案证明整体
    zinev
        11
    zinev  
    OP
       2015-02-23 22:15:22 +08:00
    @ryd994 我刚想了想,不是因为那几个包弄崩的,应该是我手贱在上面sudo yum update && sudo yum upgrade
    ryd994
        12
    ryd994  
       2015-02-23 22:18:41 +08:00 via Android
    @zinev nonono,正常来讲这也是没关系的。我好几个私用VPS都是cron里放这个的。
    zinev
        13
    zinev  
    OP
       2015-02-23 22:29:48 +08:00
    haofly
        14
    haofly  
       2015-02-23 23:04:53 +08:00
    推荐用二进制,如果是编译,不仅浪费大量的时间,而且不方便多人共同运维,上次叫一个人帮忙搭个环境,结果发现编译的是一个非常老的版本,并且连他都不知道哪些东西放在哪儿了。。。
    frankzeng
        15
    frankzeng  
       2015-02-23 23:09:45 +08:00
    正式的生产环境是不可能用编译方式的,都是在一台机器上编译完成后把二进制文件往其他机器上复制,
    所有的机器的操作系统都是一样的,库文件也一样,只要在一台机器编译完成后就可以随便往其他机器上复制,如果有1000台以上的服务器,更换文件都要有多台分发的方式上线,不然上线非常漫长,等到你想吐。
    O21
        16
    O21  
       2015-02-23 23:23:41 +08:00 via iPhone
    你在生产服务器编译会造成大量资源占用的
    branchzero
        17
    branchzero  
       2015-02-23 23:50:22 +08:00
    编译不便于维护,节点少还好说,如果手头有一大票节点要维护就悲催了。
    而且有时候编译会遇到不少的坑,排错又会花掉你一大票时间。
    onlyice
        18
    onlyice  
       2015-02-23 23:56:33 +08:00 via Android
    有人像我司这么奇葩吗?现在其他机器上编译成二进制,再打包上运维系统,分发到机器上。。
    snnn
        19
    snnn  
       2015-02-24 00:15:24 +08:00
    哥们儿,如果你才大二,好好学Python/Java/C++吧。也许你毕业的时候,运维就不存在了…… 因为运维做的事情越来越多的被自动化了,人工参与越来越少,职位需求量越来越少。
    phoenixlzx
        20
    phoenixlzx  
       2015-02-24 00:52:16 +08:00
    @snnn 所以运维的事情不就是在编写这些自动化的东西吗...
    Mars
        21
    Mars  
       2015-02-24 03:00:06 +08:00
    别编译了。。。太费时间,如果服务器多的话,累死你。。。现在的服务器性能都很强,编译出来的东西,性能优势不明显。
    Twinkle
        22
    Twinkle  
       2015-02-24 03:37:51 +08:00
    感觉二进制没啥不好,当然就我的使用程度来讲,看法可能还是非常肤浅的
    ryd994
        23
    ryd994  
       2015-02-24 07:55:48 +08:00 via Android
    @onlyice 我认为这很合理,集中管理
    onlyice
        24
    onlyice  
       2015-02-24 08:58:07 +08:00 via Android
    @ryd994 如果编的是 Apache, Python, MySQL 这种东西呢?生产机器上连个包管理系统都没有,这些基础的包都要自己编译,相当要命
    zent00
        25
    zent00  
       2015-02-24 09:03:18 +08:00 via Android
    @snnn 编写这些自动化程序的人,还有监控这些程序是否被正确执行的人,以及发现异常后来处理的人是谁?依旧是运维。虽然现在有一种岗位叫“运维开发”,但其核心工作内容还是围绕着“运维”这件事。
    hitsmaxft
        26
    hitsmaxft  
       2015-02-24 09:56:47 +08:00 via iPhone
    生产环境是发布最终代码的地方。自然是用语言规定的最终格式。编译在编译机器上搞定,不是运维人员的范畴。
    ryd994
        27
    ryd994  
       2015-02-24 14:16:24 +08:00 via Android
    @onlyice 犯不着吧,生产服没包管理这也太……
    没特殊原因的话这可以说是作
    AstroProfundis
        28
    AstroProfundis  
       2015-02-24 14:37:01 +08:00
    内网自建软件源,专用服务器打包过后放到源里面,需要的机器自己从源安装,本质上还是二进制分发
    julyclyde
        29
    julyclyde  
       2015-02-24 19:41:40 +08:00
    一是编译慢,二是无法表达依赖关系,容易缺feature
    yangzh
        30
    yangzh  
       2015-02-25 17:29:10 +08:00 via iPhone
    @zinev 你这也是醉了,要不是服务器提供镜像有 bug,要不是你打开方式不对。
    dreamtrail
        31
    dreamtrail  
       2015-02-25 23:37:34 +08:00
    早就不自己编译了,维护起来太麻烦,依赖关系自己很难搞清楚。。
    JohnVon
        32
    JohnVon  
       2015-02-26 14:31:27 +08:00
    在一台机器上编译解决完所有依赖后打包,传输到目标机器s解压,设置path 目前是这样搞的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1168 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:21 · PVG 02:21 · LAX 11:21 · JFK 14:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.