前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零打造自己的CI/CD系统|RS机器上目录创建

从零打造自己的CI/CD系统|RS机器上目录创建

作者头像
追马
发布2020-07-02 21:53:11
3730
发布2020-07-02 21:53:11
举报
文章被收录于专栏:一日一工具一日一工具

从零打造自己的CI/CD系统|RS机器上目录创建

发布的过程中要求对业务无影响,也就是用户无感,如何才能做到这一点呢,其实上需要多个环境协同才能完成,首先在入口层(SLB|API网关)这一层做关联自动摘除|上线动作(这个实现谢军后面我们会有讲到), 再则在发布的时候每次操作都确保在整个操作的过程(编译后的包或代码分发)中对当前正在运行的服务不会受影响,接下来就是那些通过注册中心进行服务发现的服务调用时候的健康检测以及重试机制的配合,这些点每个拎出来都能聊上许久,今天我们来聊聊发布真正生效之前所做工作的实现。

RS上工作目录机制

先决条件

•远程机器上有专门运行服务的账号切记不要用root跑业务,切记,切记•上面所说的账号对服务运行的目录要有权限

远程目录结构

•所有服务都是以软链的方式实现,为了减少应用新旧版本之间的切换时间•远程机器上默认保留3次发布版本,目的是为了实现秒级回滚操作•远程机器上应用的目录结构如下图所示

使用Ansible实现远程机器目录创建

逻辑大概讲解

•首先生成时间戳并注册,后续会用到•等待编译后的代码或包传输完毕之后,这个时候可以校验md5,然后切换软链,可以根据服务决定是否要进行服务reload的动作。

实现代码如下

总结

部署过程中真正的做到用户无感要考虑的边界很多很多,另外一个层面就是研发侧的使用方式也有很大因素,为什么要如此说,我们简单的举个例子:

某业务线,只暴露了自己业务线的gateway服务,作为跨语言服务的http方式调用,业务线内部全部走服务发现机制,如果这个时候gateway通过服务发现机制调用自己的服务,没有开启重试机制,那发布对生产的业务来说真的是灾难,不要笑说为啥这么傻逼,重试都不开启,真实的世界中,你会发现太多太多那个啥的问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 链上追马 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从零打造自己的CI/CD系统|RS机器上目录创建
    • RS上工作目录机制
      • 先决条件
      • 远程目录结构
    • 使用Ansible实现远程机器目录创建
      • 逻辑大概讲解
      • 实现代码如下
    • 总结
    相关产品与服务
    访问管理
    访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档