基于 Apache APISIX 的自动化运维平台

项目背景

2019 年底,因为公司在业务研发的过程中,遇到了一些业务痛点,比如:公司的开发技术栈是 Java 相关的,而运维工程师擅长的则是 Shell 和 Python 脚本,无法直接对接;公司本身正处于快速增长期,开发工程师人力不足,无法支援日常的运维工作及运维平台的开发;在现有的运维平台中,使用了多种开源工具,而且没有整合,较难管理。因此我发起了自动化运维平台的项目,希望通过该运维平台实现快速上手的开发模型,可以实现运维工程师自己开发业务,并进行快速的迭代服务。

为什么选择 Apache APISIX

在进行网关选型时,我们进行了实际的测试。相对于其他网关,APISIX 基本上可以达到 NGINX 90% 的功能,并且支持了多种负载均衡策略以及支持多语言插件的机制,同时支持了软 WAF,可以覆盖我们95% 的安全业务场景。作为云原生 API 网关,APISIX 也提供了强大的日志功能,支持自定义日志格式,因此可以直接让 access log 对接 ELK。由于 APISIX 也支持自定义插件的开发,可以根据我们的需求灵活扩展。得益于 APISIX 的基础功能和强大的插件体系,可以有效降低开发成本。

自动化运维平台架构

自动化运维平台整体架构图如下:

架构图

  • 存储层:核心是 CMDB,主要功能是记录和管理组织业务和 IT 资源的属性,以及其它们之间的关系。不但负责所有业务变更的起始状态查询,而且所有的业务资源的变更都要反馈记录在其中,实现业务标准规范的管控。存储层也包含一些权限管理的数据、业务工单的流转数据以及监控告警的时序数据;

  • 公共基础服务层:提供原子业务的 API,也可以认为是基础中台,复用了大量的开源工具;

  • 业务编排层:需要根据实际业务进行设计,工程师的工作就是把原子业务 API 按需求进行报文适配、流程组合、数据读写,并打包成为接口供前端调用;

  • 网关层:APISIX 所在的层,是后台服务的业务边界,负责负载均衡、服务注册与发现、用户鉴权、基础网络报文数据转码、内外交互日志的统一记录、部分安全管控等等。与业务无关并且通用的服务统一放置到本层;

  • 展示层:从用户角度出发,设计便利的交互界面。此处使用了一个开源的前端全响应式 admin 网页模板,即使开发者(运维)不熟悉 JavaScript ,也可以自己实现基本的表单和报表。

平台使用的组件

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

API7.ai 技术团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值