分享嘉宾朱雷,腾讯 IEG 运维 PaaS 平台技术负责人。
蓝鲸(全名“蓝鲸智云”)是一套孵化于腾讯 IEG(互动娱乐事业群)内部,服务于多业务与各内部平台的研运一体化 PaaS。 其作用是在 CI、CD 和 CO 三个阶段,对公司业务提供全生命周期的服务。
蓝鲸 API 网关
既然是为内部业务服务,那么腾讯游戏的业务都有哪些特点呢?
大家在日常生活中肯定也接触过很多腾讯出品的游戏。在腾讯内部,可能有上千款的游戏业务,除部分自研游戏外,大部分都属于代理类。代理业务的特点在于,它们是由不同公司所开发,因此各产品使用的语言、依赖的存储或者整个架构风格可能都是千差万别的。
面对这种包含大量异构架构的复杂业务场景,蓝鲸作为一个服务于内部的平台产品,在建设时就需要做到以下几点:
- 采用原子化设计,将平台能力抽象、打散,进行微服务化改造,形成一套 PaaS 架构;
- 使用低代码技术高效开发 SaaS,来使用 PaaS 平台的原子能力;
- 通过各类 SaaS 来灵活应对不同的服务场景。
诞生背景
考虑到现实中的业务环境与内部业务需求,最终蓝鲸平台的整体架构如下图所示。
中间的蓝色部分是 PaaS 层,其中最大的一块是前面提到的各类原子能力。包括用户管理、统一权限中心、统一配置平台等。
上层的橙色部分是 SaaS 层,主要由很多不同角色针对特定需求场景开发的 SaaS 构成。这些 SaaS 在开发过程中,或多或少地都需要通过 API 使用 PaaS 层最核心的各平台原子能力。在这种情况下,就势必需要一个统一的 API 网关。
以上就是最初想要打造蓝鲸 API 网关的原因。将前面的架构图做一些抽象,就会得到一个如下简单的网关画像。
蓝鲸是一个比较复杂的平台,它对于统一网关的需求也会比较复杂。除了最基础的作为代理去调用原子平台的 API 之外,还需要提供一些额外的网关能力。比如服务发现、统一用户认证和鉴权、限流限速,等等。
另一方面,随着云原生技术的发展,如今内部很多 SaaS 和原子平台也开始部署在 K8s 集群中。这类场景又向网关提出了新的要求,比如需要通过统一流量网关或 API 网关来将外部的调用请求流量统一管控。同时,内部还存在一些业务系统,本身使用了蓝鲸平台的一些基础架构能力,如容器管理或监控等,它们也需要一个统一的服务网关来管理所有调用流量。
面对外部技术的趋势与内部业务的发展要求,蓝鲸的 API 网关需要支持的场景开始变得越来越多样化。
往期迭代
蓝鲸 API 网关到目前为止经历了三个阶段的迭代。
蓝鲸 API 网关的 1.0 版本,主要是让原子平台的调用方