哪种语言部署生产环境简单? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
madfishy
V2EX    问与答

哪种语言部署生产环境简单?

  •  
  •   madfishy 2017-03-12 17:25:17 +08:00 5925 次点击
    这是一个创建于 3137 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近有几个小的项目,用 python 写的,部署时候觉得很痛苦。然后换了 php 直接一键就好。
    请问还有哪种比较简单的容易部署生产环境的写 WEB 应用很方便的语言? GO ? Elixir ?
    因为特殊原因不是跟码农用,是给各个传统小公司用,越简单越好
    61 条回复    2017-03-13 19:52:15 +08:00
    tinyhill
        1
    tinyhill  
       2017-03-12 17:32:28 +08:00 via iPhone
    nodejs
    tomczhen
        2
    tomczhen  
       2017-03-12 17:34:11 +08:00
    你需要 docker
    metaquant
        3
    metaquant  
       2017-03-12 17:36:45 +08:00 via iPhone   1
    golang
    lecher
        4
    lecher  
       2017-03-12 17:48:59 +08:00   1
    golang 依赖极小,打包之后随意复制,还附赠高防破解门槛。
    xycool
        5
    xycool  
       2017-03-12 17:50:01 +08:00 via iPhone
    html
    veelog
        6
    veelog  
       2017-03-12 17:58:38 +08:00 via iPhone
    C 程序一个可执行文件就够了
    WildCat
        7
    strong>WildCat  
       2017-03-12 17:59:19 +08:00 via iPhone
    继续 py :
    1. virtual env
    2. docker
    yongzhong
        8
    yongzhong  
       2017-03-12 18:04:10 +08:00
    HTML?
    skydiver
        9
    skydiver  
       2017-03-12 18:11:02 +08:00 via Android
    什么语言都可以一键,写个部署脚本即可
    python7
        10
    python7  
       2017-03-12 18:12:54 +08:00
    有两个问题:楼主有生产环境的 root 权限么?生产环境是否运行了其他 Python 服务?
    agtc
        11
    agtc  
       2017-03-12 18:13:04 +08:00
    go
    SuperMild
        12
    SuperMild  
       2017-03-12 18:14:00 +08:00
    “ go 最终生成的是一个可执行文件,不管你的程序依赖多少库,都会被打包进行,生成一个可执行文件,所以相比 java 庞大的 jar 库来说,他的部署非常方便,执行运行这个可执行文件就好了。对于 Web 开发,更方便,不用安装 jdk , tomcat 容器等等这些环境,直接一个可执行文件,就启动了。”

    http://www.flysnow.org/2016/12/28/from-java-to-golang.html

    给 Python 开发者的 Go 语言入门指南
    http://blog.rainy.im/2016/05/30/golang-101-for-pythoners/
    sheep3
        13
    sheep3  
       2017-03-12 18:16:50 +08:00
    spring boot 也可以一键运行
    loading
        14
    loading  
       2017-03-12 18:19:27 +08:00 via Android
    asp 和 php

    虽然我会选 golang 。
    Yoock
        15
    Yoock  
       2017-03-12 18:23:47 +08:00
    go ,只需要编译成二进制文件就可以了,不需要配置环境 。
    C 语言需要 各种动态链接库的,版本不一样 很蛋疼的。
    murmur
        16
    murmur  
       2017-03-12 18:31:10 +08:00
    投 java 一票 毕竟拷一份 jar 包走可比拷 node modules 好多了
    lhbc
        17
    lhbc  
       2017-03-12 18:33:23 +08:00
    @murmur 然后装环境花了两个小时
    murmur
        18
    murmur  
       2017-03-12 18:34:25 +08:00
    @lhbc 那是虚拟机调优 跟部署又没关
    wevsty
        19
    wevsty  
       2017-03-12 18:36:47 +08:00
    C or C++ 完全静态编译,一个文件就够。
    lhbc
        20
    lhbc  
       2017-03-12 18:39:20 +08:00
    1. golang: 解压直接运行,不需要安装任何依赖包(数据库不在讨论之列,下同)
    2. PHP: 部署环境并配置(apache+mod_php, nginx+php-fpm),解压运行
    3. c/c++: 看情况,我自己写的话,通常连外部库一起编译,解压即跑,一般都能跨发行版
    izgnod
        21
    izgnod  
       2017-03-12 18:40:55 +08:00 via Android
    go + docker
    Shura
        22
    Shura  
       2017-03-12 18:50:16 +08:00 via Android
    用 docker
    RealLiuSha
        23
    RealLiuSha  
       2017-03-12 19:29:45 +08:00
    我之前所在的一家小公司就是 php/golang/java/js/python/lua
    ....

    其实套路整好了 都好部署, 推荐 docker
    Kilerd
        24
    Kilerd  
       2017-03-12 20:05:02 +08:00
    golang 蛮好的


    python web 的部署 一点都不难

    pyenv + gunicorn + supervisor 搞定

    docker 更是一次解决的问题( docker 不需要用 Supervisor )
    rrfeng
        25
    rrfeng  
       2017-03-12 20:37:35 +08:00 via Android
    shell 最好
    haozes
        26
    haozes  
       2017-03-12 21:46:00 +08:00 via iPhone
    nodejs
    python 用 pm2 管理也还好
    0915240
        27
    0915240  
       2017-03-12 22:59:28 +08:00
    go 吧
    murmur
        28
    murmur  
       2017-03-12 23:08:25 +08:00
    @Kilerd python 的最大问题是在 windows 下 pip 和 easy setup 的行为都不一样,我去年用 django 的一些版本就碰到这个问题, win10 下有的 pip 能装,有的 easy setup 能装

    反倒是 nodejs 没出过这种奇葩问题。。都 2016 年了跨平台还做成这样也是厉害
    jarlyyn
        29
    jarlyyn  
       2017-03-12 23:25:23 +08:00 via Android
    Go
    jarlyyn
        30
    jarlyyn  
       2017-03-12 23:27:05 +08:00 via Android
    另外, php 本质上部署很麻烦

    上了 Docker 都很麻烦。
    mingyun
        31
    mingyun  
       2017-03-12 23:36:09 +08:00
    php
    J0022ZjV7055oN64
        32
    J0022ZjV7055oN64  
       2017-03-12 23:38:41 +08:00
    vbs
    Kilerd
        33
    Kilerd  
       2017-03-12 23:53:26 +08:00
    @murmur 印象中 easy_setup 好久没用过了,基本都能用 pip 管理了。

    至于这个问题, python 确实缺少一个优秀的 package 管理器。
    scnace
        34
    scnace  
       2017-03-13 00:01:52 +08:00 via Android
    简单的话还是 Golang 吧 直接扔个二进制程序就可以了 啥依赖都不用(当然静态文件和数据库还是要自己部署

    当然 环境都配置好 依赖都装好的情况下 我觉得都差不多吧 这里配置环境还是要顶一下 docker 的…
    wwhc
        35
    wwhc  
       2017-03-13 04:54:48 +08:00
    perl
    guokeke
        36
    guokeke  
       2017-03-13 06:02:14 +08:00 via Android
    @murmur 拷 nodemodules ?
    murmur
        37
    murmur  
       2017-03-13 07:50:50 +08:00
    @guokeke 有的服务器是内网环境不给接外网的
    guokeke
        38
    guokeke  
       2017-03-13 08:10:49 +08:00 via iPad
    @murmur 建议用 npm mirror 或者 lazy mirror 搞一下。
    simo
        39
    simo  
       2017-03-13 09:05:55 +08:00
    看你 编程底子、团队能接受度,没问题的话,比较建议 golang 。
    大众化的推荐 lnmp (入门、中级的学习成本低)/docker (有一定学习成本)
    MrJing1992
        40
    MrJing1992  
       2017-03-13 09:12:09 +08:00
    golang
    pwcong
        41
    pwcong  
       2017-03-13 09:25:15 +08:00
    @murmur 有 package.json 根本不需要拷贝 node_modules
    goophy
        42
    goophy  
       2017-03-13 09:27:49 +08:00
    go
    其他需要配置乱七八糟运行环境的,就 docker
    Light3
        43
    Light3  
       2017-03-13 09:41:35 +08:00
    html+js .. 不比你 php 搭建的快么..
    opengg
        44
    opengg  
       2017-03-13 10:35:39 +08:00
    docker
    markx
        45
    markx  
       2017-03-13 10:41:06 +08:00
    最简单的应该是 go 吧。
    MushishiXian
        46
    MushishiXian  
       2017-03-13 11:36:41 +08:00
    golang 吧
    yghack
        47
    yghack  
       2017-03-13 11:45:35 +08:00
    目前最简单的肯定是 golang
    huangzxx
        48
    huangzxx  
       2017-03-13 13:07:23 +08:00
    docker 啥语言都一样
    issues
        49
    issues  
       2017-03-13 13:43:58 +08:00
    一波 gogogo
    n6DD1A640
        50
    n6DD1A640  
       2017-03-13 13:58:33 +08:00
    此帖成为 Docker 安利帖。。
    barbery
        51
    barbery  
       2017-03-13 15:18:43 +08:00
    必须 go 啊,虽然 PHP 是宇宙最强语言,但是说到部署, go 直接编译成一个执行文件,直接开箱即用
    wangxiyu191
        52
    wangxiyu191  
       2017-03-13 15:43:01 +08:00
    @lecher go 的可执行程序自带函数位置,函数名,参数类型。而且 strip 不掉。其实减小了破解门槛。
    wangxiyu191
        53
    wangxiyu191  
       2017-03-13 15:43:39 +08:00
    @wangxiyu191 额。语文没学好。。。减小-》降低
    freeznet
        54
    freeznet  
       2017-03-13 16:04:04 +08:00
    没有遇到比 go 更容易部署的语言了,太舒坦了。。。
    learnshare
        55
    learnshare  
       2017-03-13 16:09:24 +08:00
    Docker 就是为了这个而生的
    ixiaozhi
        56
    ixiaozhi  
       2017-03-13 16:10:20 +08:00
    你说的不应该是 exe 么,双击打开
    R18
        57
    R18  
       2017-03-13 16:11:07 +08:00
    所以我学了 Go
    ixiaozhi
        58
    ixiaozhi  
       2017-03-13 16:12:02 +08:00
    续上条补充: 工作过的某公司 OA 就有服务器 exe 版,在 Server 系统上双击下一步下一步会把 db 和 各种东西都装上
    bomb77
        59
    bomb77  
       2017-03-13 17:24:16 +08:00
    我投 golang 一票
    muziki
        60
    muziki  
       2017-03-13 17:56:08 +08:00 via iPhone
    rust
    codeaqua
        61
    codeaqua  
       2017-03-13 19:52:15 +08:00
    go go go~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5983 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 46ms UTC 01:41 PVG 09:41 LAX 18:41 JFK 21:41
    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