石犀流量网关平台.md
在 XX流量治理平台 项目中,我担任团队的技术负责人,主要负责 系统架构设计、团队组建与管理、技术突破和代码审核,并承担重难点技术问题的快速解决。下面我来详细回顾这个项目的关键内容:
项目背景与目标
XX流量治理平台是为了帮助大型企业应对复杂的网络流量需求而设计的,它提供了一个统一的解决方案来接管企业内外的各种流量。平台支持在物理机、虚拟机、云主机以及容器化平台上进行部署,以确保在不同基础设施环境下的 兼容性和灵活性。平台主要提供了 API 网关和旁路由 功能,同时针对 边缘网络 功能持续进行研究和集成。
- API 网关:允许用户自定义配置,提供 路由转换、身份验证和授权、负载均衡、缓存和安全等功能。
- 旁路由:用户能够直接将流量传递给后端服务,以提升服务的响应速度。
我的角色与职责
作为技术负责人,我的主要职责包括:
- 架构设计与技术选型:设计整个系统的架构,并撰写详细的架构文档。
- 团队管理:负责团队的组建和人员招聘,带领团队进行代码评审,提升整体代码质量。
- 代码实现与调优:参与关键模块的代码实现,进行性能调优。
- 技术问题解决:对项目中的重难点技术进行方案突破,排查解决疑难问题。
- 付费授权流程设计:保障项目的营收需求。
采用的技术栈
- 云原生技术:Golang、Kubernetes Operator 开发、Envoy、Linux 网络协议栈。
- 数据存储:MongoDB、MySQL、Redis、Etcd。
- 消息队列:NSQ。
- 负载均衡:LVS。
- 编程语言与脚本:Python、Shell。
项目成果
全平台兼容的统一部署
基于 Golang 和 Kubernetes Operator 的开发模型,解决了在 物理机、虚拟机、云主机和容器平台 间的兼容性问题,实现了 全平台统一的安装部署。除了初始组件需要执行 Shell 脚本外,其余部分都可以通过界面进行部署,并且具备 热升级功能,在升级时不影响业务。API 网关的实现
利用 Gin + Proto + CRD 和代码生成器 + Envoy,实现了 API 网关的核心功能,包括 路由转换、身份验证和授权、负载均衡、缓存和安全,帮助用户建立了 更安全、更可靠、更快捷 的 API 管控体系。流量可视化与监控
通过 NSQ 和数据库 实现了流量可视化组件,提供用户流量的 实时统计与分析,并确保服务的 高性能和高可用性。旁路由的实现
利用 Envoy 实现旁路由功能,使得服务之间的通信 透明化,显著提升了 服务的透明性、可观察性、安全性和可扩展性。高可用架构的搭建
搭建了一套高可用的系统架构,保证了整个平台的可靠性。企业私有 GitLab 代码仓库的部署维护
负责搭建和维护企业私有的 GitLab 代码仓库,确保开发流程的安全和稳定。解决关键技术问题
成功解决了 IP 地址冲突、配置下发给 Envoy 的效率低、可视化数据存储查询慢、总控引擎与商城的通信不安全等多个技术问题。
团队合作与成长
作为团队的负责人,我以 循序渐进的方式 培养团队成员的 技术能力和协作能力,组织了定期的 代码评审和技术分享,并通过 实操实战 来提升大家的 动手能力和逻辑思维。我带领的团队在企业的表彰中多次获得 最佳优秀员工奖,这体现了团队成员的成长和整体项目的成功。
技术栈
Python、Shell 进行 K8s 等基础平台组件的部署
- 不同硬件平台的适配
- 第三方软件对这些平台的适配版本或源码编译安装
- 基础资源的获取和初始化
- CPU、内存、磁盘、操作系统内核是否满足最小安装
- 操作系统镜像交付和镜像安装,xorrios+cloud-init制作
Go 负责云原生应用的开发
用 Envoy 实现流量治理、可视化、API 分析
- 基于 GRPC 协议,改进 fetch xDS server 而采用 delta xDS server
- 双向流通信:使用 gRPC 的双向流通信来处理动态更新。这意味着 xDS server 需要持续监听来自 Envoy 的请求,并根据资源的变化动态生成响应。
差量更新的生成:xDS server 需要跟踪各个资源的状态和版本变化,并在每次生成响应时,只发送那些新增或已更改的资源,同时标记需要移除的资源。
高效的数据管理:可以使用高效的数据存储和缓存(如 Etcd、Redis)来管理资源的动态状态,以便能够快速响应变化请求。
订阅管理:处理 DeltaDiscoveryRequest 中的 resource_names_subscribe 和 resource_names_unsubscribe 字段,灵活管理 Envoy 对不同资源的订阅。