Skip to main content Link Menu Expand (external link) Document Search Copy Copied

架构师-创业公司,三周自研自动化上线平台

  • 集群
    • 集群属性
      • 名称 user.service
      • IP列表 ip1,ip2,ip3
      • 二进制目录 /user.service/bin/
      • 配置目录 /user.service/conf/
      • 日志目录 /user.service/log/
      • 负责人列表 wangwu,zhaoliu
    • 集群信息的作用
      • 自动化日志清理
      • 自动化备份
      • 自动化监控
      • 上下游调用(使用最多)
      • 自动化发布
    • 集群信息用处-上下游调用
      • web-X上调用service会用到哪些信息?
        • service.name:user.service
        • service.ip.list:ip1,ip2,ip3
        • service.port:8080
        • 这些信息保存在哪里?
        • web-X.config
      • 上下游调用过程是什么
        • web-X启动
        • web-X读取服务集群的IP列表与端口
        • web-X初始化user服务连接池
        • web-X拿取连接,通过RPC接口调用
    • 初始化,集群是保证高可用的基础
  • 集群信息维护
    • 分散式
      • 不同的应用场景,使用的集群信息均不同
      • 集群信息都写在各自“配置文件”里
      • 集群信息冗余了很多份(一致性问题)
      • 存在的问题
        • 集群信息修改,多个地方要改(耦合)
        • 人员流动,配置在哪里就忘了
        • 时间推移,配置旧改漏了
    • 集中式
      • 统一配置文件
      • 统一配置服务
      • 统一配置中心
  • 集中管理集群配置,是自动化运维的基石

  • 集群需要新增一个集群类型(cluster type)属性
    • 【user.service】
    • cluster.type:Java.service.DSF
    • ip.list:ip1,ip2,ip3
    • port:8080
    • bin.path:/user.service/bin/
    • log.path:/user.service/log/
    • conf.path:/user.service/conf/
    • ftp.path:ftp://192.168.1.101/user.service/user.exe
    • owner.list:wangwu,zhaoliu ————————————-
    • 【passport.web】
    • cluster.type:Java.web.SpringMVC
    • ip.list:ip1,ip2,ip3
    • port:80
    • bin.path:/passport.web/bin/
    • log.path:/passport.web/log/
    • conf.path:/passport.web/conf/
    • ftp.path:ftp://192.168.1.101/passport.web/passport.jar
    • owner.list:wangwu,zhaoliu
  • 规范的目录结构,是自动化运维的基石(功能优先的目录)
    • └── bin ├── das ├── entry ├── logic └── conf ├── das ├── entry ├── logic └── log ├── das ├── entry ├── logic
  • 集群发布自动化举例
    • Java.web.DWF为例
      • 将包从FTP上拉取下来(需要读取集群信息)
      • 读取集群IP列表(需要读取集群信息)
      • 通知NGINX,将一台tomcat的流量且走(需要读取集群信息)
      • 停止Tomcat
      • 备份原web,更新新web(需要读取集群信息)
      • 重启Tomcat
      • 通知NGINX,将流量切回(需要读取集群信息)
      • loop
  • 整个过程

  • 体现的核心架构设计思路
    • 中心化管理:保证数据一致
    • 抽象:提供共性的地方,尽量通用
    • 分解:整体很复杂,分治更简单
    • 可扩展:通过service_type保持个性可扩展,整体流程不用变

萌ICP备20240168号