基于Consul + Registrator 快速构建内部工程交付服务支撑体系

要解决的问题

在上线交付之前,研发体系需要有各种提升工程或质量效率的Mock系统,这些系统通常是提供各种 Restful的接口,以支撑诸如单元测试,功能测试,自动化回归测试、测试数据生成与维护等工作。

团队会成长,系统也会越来越复杂,而随着这些队伍和系统的演进,Mock系统提供的接口也会越来越多,越来越复杂,包括提供方和提供团队也会越来越多,所以如何高效、及时、低门槛地更新、维护日益庞大的 mock restful API 调用信息,方便工程师们查找,以及贡献者们追加,是我们经常要解决的问题。

 

演进式服务注册发现体系建设

团队规模小,Mock 服务少时:


一张简单的 wiki 作为mock portal,里面登记上主机名,接口,mock的服务名称等等就可以了,方便添加、修改也方便查阅。

 

团队规模小,Mock 服务增多,需要共享公司或是部门级全局配置信息时:


这里的配置信息可以是公司统一要求的服务启动缺省参数配置(研发或DevOps需要),或是不同环境的入口地址(单元、自动化回归需要)等等

引入consul 先作为配置中心,也为后继地演进做过渡。
选择的原因是其小而美:

  • consul系统是专为服务注册发现而设计的,搭建方便快捷,自带Web Server。
    没有Zookeeper那么臃肿,又比 etcd + confd 强大易用
  • 具备简易的分级的 KV 存取体系
  • 支持 Restful API 的存取形式
  • 自带Web UI 维护界面

当然我们也可以基于nginx/apache,通过 Git/Svn 在公共Repo中签入签出一系列的静态配置文件来维护共享的配置信息,只是这个更新的步骤就比较繁琐。

搭建步骤

  1. 安装 docker 以及 docker-compose。
    基于docker搭建是简化系统搭建,以及系统接近零成本重建或搬迁的标配。
  2. docker pull consul。获取 consul 的官方镜像
  3. 编写 docker.yaml 文件(见下)后,敲入:docker-compose up
    ps: 如果想在启动镜像后,进入其中进行一些自定义动作,敲入: docker exec -it <your container id> /bin/sh
    version: "3"
    
    services:
      consulserver:
        image: consul
        ports:
        - "8300"
        - "8400"
        - "8500:8500"
        - "53"
        command: agent -server -ui -data-dir /tmp/consul -bootstrap-expect 1 -client 0.0.0.0

    - image: consul : 镜像来自于#2 拉取的 consul
    - ports: ... : consul 容器中打开的几个tcp端口,其中的 8500 必须映射至宿主机的 8500,以便可在宿主机上输入:http://localhost:8500,访问 consul 的 Web UI
    - command: 相当于container中执行:consul agent -server ...,即 consul 以 server 的形式运行agent,同时打开Web UI 服务(-ui)

    可以用 docker run/stop ... 来启停 consul,但命令长,步骤繁,以 docker-compose up/down 启/停容器,尤其是多容器启、停及彼此关联或依赖维护简化的不二法宝。

  4. 访问 “http://localhost:8500/ui/dc1/kv” ,通过 UI 直接更新维护全局共享配置项


    支持分级的 key/value,例如 dev环境中服务项里的 user 服务配置,dev/service/user = ...

  5. 配置完成后,可通过 http://localhost:8500/v1/kv/dev/service/user 获得配置项的 value 内容,其中 value 是经过了 base64 编码处理的

续待 ……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值