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

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

  •  
  •   madfishy · 2017-03-12 17:25:17 +08:00 · 5508 次点击
    这是一个创建于 2815 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近有几个小的项目,用 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
    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
    lgpqdwjh
        23
    lgpqdwjh  
       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   ·   实用小工具   ·   4786 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:38 · PVG 13:38 · LAX 21:38 · JFK 00:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.