WIP-自动代理自愈机制的探讨

背景

因为工作的需要,会搭建 proxy 机器,但有时候机器会出故障,出故障后的恢复过程现在是手动的,虽然也不算麻烦,但终归是把人的精力打成碎片的一个祸害,因此,考虑如何保证机器出故障后能及时处理并自愈?

简单分析

要实现这个能力,需要从基础设施层和应用层两个方面进行。

基础设施,主要包含 创建/删除机器节点、对机器节点进行操作配置。

应用层,主要包含 更新节点信息。

基础设施的角度看,这是一个 IaC 的问题,要实现的方案可以有这么几类:

  • 基于传统 ecs 的方案
  • 基于 k8s 的方案

传统 ecs 在 IaC 的方案上,主要有这么几种:

  • ansible、puppet 这类任务管理方案
  • terraform 这种基础设施管理工具
  • 各云平台自己的 IaC 方案

基于 k8s 的 IaC 的方案,主要为: operator + 节点控制器 的方式。

整个链条的流程是这样的:

健康检测 => 检查失败 => 更换节点 => 更新配置 => 剔除坏节点 => 更新配置
负载检测 => 负载超额 => 新增节点 => 更新配置
负载检测 => 负载过低 => 删除节点 => 更新配置

这个事情,可以往复杂了做,也可以简单点实现功能,复杂点,可以用 ansible 或者 terraform ,简单点,可以写代码实现。

简单实验

  1. 建立健康检查机制 WIP-健康检查与监控梳理
  2. 建立出错反馈机制 事件中心和通知系统关系
  3. 尝试写 aliyun 的 worker (可 serverless 部署)

其他思考:

  • 能否基于 serverless

查看 https://github.com/iamlongalong/goproxy


In all things of nature there is something of the marvelous.
Aristotle


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!