首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
raysonlu
V2EX  ›  程序员

弹性伸缩的方案中如何部署更新代码?

  •  
  •   raysonlu · 276 天前 · 1509 次点击
    这是一个创建于 276 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想把自己的一个项目尝试改为均衡负载+弹性伸缩方案,其他无节点化的改进方案都有了,但唯独代码更新这一块还没找到好的方案。

    我现在只有一台 ECS,上面放前端和后端的代码,平时有更新的时候,后端代码用 git pull 就 OK 了,前端代码就 webpack 打包好后上传到服务器。

    看过 Jenkins,我理解这个主要是用 git 的 webhooks 来通知 Jenkins 进行一系列自定义命令操作。

    但这种方法在没有弹性伸缩的情况下才有用吧,我甚至不用 Jenkins,登陆负载均衡集群里的一台机,进行 rsync 操作也可以,但如果加上了弹性伸缩,我无法知道我每次更新当前集群有多少台机以及每台机的 IP (内网)是多少

    我在这里就卡住了,也搜不到什么相关的方案,可能是我关键字没命中到?求各位大佬指教了~

    10 回复  |  直到 2019-04-27 18:45:13 +08:00
    yufeng0681
        1
    yufeng0681   276 天前
    弹性伸缩这种大型方案,你这几百字哪里够……
    我看阿里云有卖 弹性伸缩方案,可以按他的思路看看。买来用用
    opengps
        2
    opengps   276 天前
    每次去做个更新系统模版,然后逐步把所有机器更新系统
    opengps
        3
    opengps   276 天前
    弹性伸缩是云的架构出来之后才开始后的,市面上确实不多见。算不上是关键字查询不到的问题
    不过真用到弹性架构了,那么主要依赖的是系统镜像。因为同样任务的机器数量很大,逐台更新不现实,自动检测更新也不够靠谱。
    一般建议是配合 slb 的权重 0,创建一批机器 0 权重的机器,然后尽量修改权重切换到新版本机器上,然后释放掉旧版本的服务器
    defunct9
        4
    defunct9   276 天前
    k8s
    xdays
        5
    xdays   276 天前
    你这个场景要解决两个问题:

    1. 已有机器的部署,这块需要像 ansible 之类的工具,每次动态拿到当前的机器列表,ansible 应该有阿里云的动态 inventory 脚本
    2. 对于那部分由弹性伸缩创建出来的机器,一般云厂商都支持创建机器的时候运行一个启动脚本,这个脚本就是用来初始化机器的,你要在这个脚本里完成代码环境和代码本身的安装和部署。
    shynome
        6
    shynome   276 天前 via Android
    阿里云的 k8s 好像能做到,不过就是弹性伸缩的机器比较贵
    tomczhen
        7
    tomczhen   276 天前
    需要可以通过云平台 api 管理云设施。

    1。利用云平台启动脚本完成 ansible / saltstack 的节点初始化工作,再使用 ansible / saltstack 完成环境初始化,部署,更新,加入或移除负载需要通过云平台 api 完成。

    2。云平台的 k8s 集群一般都有开箱可用方案,但是需要对项目做容器化改造适应。
    EileenJ
        8
    EileenJ   275 天前 via Android
    代码放在文件存储 NAS 上面,系统只有运行环境
    fire9
        9
    fire9   275 天前
    如果你用的是 aws auto scaling, 这个是根据设定监控的阈值来做自动的伸缩.举个栗子,如果你的设定 cpu 达到 70%负载的时候,就可以出发自动启动一台或多台实例,它也会自动使用 lb 来添加节点.反之也可以关闭实例.
    fire9
        10
    fire9   275 天前
    如果你使用 Jenkins 来做,估计需要编写大量的代码了.另外,webhook 只是一种.jenkins 可以通过多种方式来实现 CD.
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   879 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 19:16 · PVG 03:16 · LAX 11:16 · JFK 14:16
    ♥ Do have faith in what you're doing.