阿里云, 如何给 slb 后面的多个 ecs 更新代码? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kankana
V2EX    程序员

阿里云, 如何给 slb 后面的多个 ecs 更新代码?

  •  
  •   kankana 2016-10-17 08:57:01 +08:00 4382 次点击
    这是一个创建于 3342 天前的主题,其中的信息可能已经有所发展或是发生改变。

    赶鸭子上架. 不懂运维.

    代码托管在 github.

    要使用 aliyun, 在 slb 后面部署多个 ecs, 只有 slb 有公网地址.

    如何给后面的 ecs 更新代码呢?

    Thanks in advance! :]

    21 条回复    2019-12-10 12:52:40 +08:00
    timothyye
        1
    timothyye  
       2016-10-17 09:05:34 +08:00 via Android
    你们是用的金融云吗?
    pepesii
        2
    pepesii  
       2016-10-17 09:06:06 +08:00
    可以试试用 Fabric
    cocochan
        3
    cocochan  
       2016-10-17 09:08:37 +08:00
    VPN 进内网...
    huigeer
        4
    huigeer  
       2016-10-17 09:09:55 +08:00 via Android
    把公网机器当成发布机,内网 rsync 同步
    kankana
        5
    kankana  
    OP
       2016-10-17 09:10:27 +08:00
    @pepesii 在公司内网内, 部署到内部的测试服务器, 用的就是 fabric.

    问题是, 阿里云 slb 后面的 ecs 没有公网 ip, 不知道怎么更新代码上去.

    想问下是不是有 devops 的方法, 做代码部署的.
    kankana
        6
    kankana  
    OP
       2016-10-17 09:12:52 +08:00
    @huigeer
    倒是一个思路. 让 slb 后面的 ecs 去同步更新的代码.
    但是, 我是希望找到一种主动, 由我这边发起的代码更新.
    好烦啊~
    kankana
        7
    kankana  
    OP
       2016-10-17 09:16:15 +08:00
    刚 google 下, 国外的是说, 创建包含新代码的镜像, 再创建相同数目的 ecs, 最后替换掉旧的 ecs
    shoaly
        8
    shoaly  
       2016-10-17 09:18:32 +08:00   1
    开多一个 ecs 开外网端口. 然后 slb 所有的 ecs 能跟新的 ecs 互通的.
    这样你 push 代码到新 ecs 上, 新 ecs 负责 代码更新到 各个 slb.all_ecs
    kankana
        9
    kankana  
    OP
       2016-10-17 09:20:20 +08:00
    @shoaly bingo! 多谢
    odirus
        10
    odirus  
       2016-10-17 09:25:50 +08:00
    如果的代码是常驻内存这种,完全可以在一台具有公网 IP 的机器上搭建一个 samba ,然后其他机器共享某个目录,里面用于存放打包好的文件。

    其他服务器全部加载这个包文件执行。。。

    但如果不是常驻内存的话,还是通过 rsync 同步吧,毕竟每次执行都要加载代码。
    shoaly
        11
    shoaly  
       2016-10-17 09:26:16 +08:00
    刚 google 下, 国外的是说, 创建包含新代码的镜像, 再创建相同数目的 ecs, 最后替换掉旧的 ecs..
    属于比如你的项目已经不怎么频繁更新了, 横向延伸用的, 比如说游戏开新服...
    incompatible
        12
    incompatible  
       2016-10-17 09:36:20 +08:00 via iPhone   1
    买一台有公网 ip 的 ecs (如果你的其他 ecs 是经典网络私网实例就买经典网络带公网 ip 的 ecs ;如果你的其他 ecs 是 vpc 网络的实例那么就买同一个 vpc 下的实例+一个弹性公网 ip )做为跳板机,做发布、维护等操作时先 ssh 到跳板机上,再从跳板机 ssh 到你的其他 ecs 上。
    goodryb
        13
    goodryb  
       2016-10-17 10:41:15 +08:00
    12 楼正解,楼主应该找个兼职运维
    tomczhen
        14
    tomczhen  
       2016-10-17 11:46:53 +08:00
    不管什么方案都需要一个跳板机,剩下的就看实际情况选择方案了。
    需求简单的话可以用 git/svn hook 实现,复杂的话, saltstack 之类的工具都已经很成熟了,挑个自己喜欢的就行。
    jwnlive
        15
    jwnlive  
       2016-10-17 11:58:33 +08:00
    阿里云建议是把 ecs 搞成无状态的,挂载统一的存储来用,不过还是感觉用 rsync 来同步比较方便,做成代码发布机的模式
    tczzjin
        16
    tczzjin  
       2016-10-17 12:11:08 +08:00
    可以试试 lsync,配置和使用比 rsync 简单得多...自动同步所有代码
    Aliencn
        17
    Aliencn  
       2016-10-17 12:21:45 +08:00
    除了上面说的几个方案,补充两点
    1.如果是这种专有网络的 ecs ,可以搭配阿里云前段时间刚退出的一个 nas 服务,一个存储可挂载多个 esc 主机。
    2.每个机器弄个脚本实时检测有没有代码更新
    realpg
        18
    realpg  
    PRO
       2016-10-17 13:29:50 +08:00   1
    你的 ECS 连按流量的管理用外网都不开?
    太吝啬了吧
    kankana
        19
    kankana  
    OP
       2016-10-17 14:08:13 +08:00
    @realpg 哈哈, 你不说, 我还不知道有这个功能.....
    littlehz
        20
    littlehz  
       2016-10-17 15:38:39 +08:00   1
    开一台机器,同时有外网和内容,用于管理,配置 ssh 目标机内网 IP `ProxyCommand ssh -q -W %h:%p 管理机公网 IP 或别名`,用证书登录。
    在这台管理机上同步推送代码。
    这台管理机平时也可以放一些 cron 、队列 daemon 进程等任务,省的浪费资源。
    avenger
        21
    avenger  
       2019-12-10 12:52:40 +08:00 via iPhone
    直接用阿里云的 nas 把业务代码部署在共享 nas 上,这样更新一台,所有服务器都是最新代码了,是否可行?不知道有没有 io 瓶颈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1434 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:50 PVG 00:50 LAX 08:50 JFK 11:50
    Do have faith in what you're doing.
    ubao msn 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