云原生API网关 - 开源项目Hango网关设计与实践

本文介绍了Hango云原生API网关的设计与实践,探讨了云原生API网关的特点,如动态服务发现、高性能和云原生兼容性。Hango基于Envoy和Istio构建,提供高性能、多场景适用性和可扩展性,支持平滑纳管、灰度发布和可观测性。Hango已在网易集团大规模落地,助力企业实现API管理和流量治理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解读开源Hango网关的云原生设计与实践,本文先从云原生溯源,解读云原生API网关选型特点;再进一步解读网易数帆开源Hango云原生API网关设计及大规模落地实践。

云原生溯源

什么是云原生

CNCF(云原生计算基金会)对云原生的定义是:云原生是一种架构模式,有利于各组织在公有云、私有云和混合云等动态环境中,构建和运行可弹性扩展的应用。代表技术包括,容器、微服务、不可变基础设施和声明式API。

从云原生的定义可以看出,云原生具备快速集成,拥有良好的扩展性及高可用性。得益于Kubernetes的发展,云原生技术蓬勃发展,已然迈入新时代。

API网关的意义

随着容器技术以及微服务理念的发展,更多的产品组织着重于暴露开放API,用于客户端进行交互。API网关充当API代理的功能,网关接收请求,将请求进行统一路由转发至后端服务。网关作为抽象层,为整个微服务系统或集群提供统一接入层。

除了代理功能外,API网关为微服务集群提供统一的安全、响应转换、熔断、降级和监控等多维度功能,确保流量安全可靠。

随着云原生理念引领微服务进行演进,应用迭代频率以及交付速度会加快,API网关的出现可以使得业务开发更加专注于自身业务逻辑的设计,提升研发敏捷性。在云原生的架构下,API网关也在向云原生演进,Hango网关便是云原生设计下催生的优秀网关产品。

云原生API网关特点

进入云原生时代,行业用户除了关注传统API网关提供的请求代理,流量治理等常规功能外,更多的开始关注云原生兼容性,支撑场景的多样以及更优异的性能。

相较于传统API网关,在云原生模式下笔者认为API网关应该具备的一些思考:

  • 服务发现方式:与传统网关服务发现需要手动指定upstream,云原生网关在服务发现上需要动态感知业务变化。

  • 更高的性能追求:随着Kubernetes以及容器将云原生带入新时代以及微服务理念的发展,API网关的卓越性能可以减少整个链路的RT。

  • 云原生架构兼容/整合:网关的部署架构是否能够和云原生架构进行兼容,能否和容器以及服务网格进行无缝对接。

  • 动态配置能力:传统的反向代理无法实现动态配置加载能力,云原生模式下的代理配置更新变化较频繁,动态配置下发能力显得尤为关键。

  • 部署形态及架构:网关部署架构能否满足弹性扩展,是否支持从业务混部到独立部署的平滑迁移。

  • 监控/链路追踪:云原生架构中,良好的监控和链路追踪能力可以便于运维人员进行服务观测以及问题定位。

Hango API 网关设计

随着集团内业务大规模进行容器化改造,业务对网关的诉求也愈发强烈。我们团队着手于建设新一代高性能API网关Hango(项目地址:https://github.com/hango-io/hango-gateway),目的是替换集团内部较多的采用Java的异步网关、Zull,同时满足业务逐渐上云的南北向流量治理需求。

在选型方面,我们选择Envoy作为云原生网关实践的关键基础组件,具备丰富的特性,包括:

  • 原生功能丰富:相较于Nginx,HAProxy等流量代理所需的基本功能,Envoy本身基于C++实现了相当多的高级治理功能,包括负载均衡、熔断、

<think>嗯,用户想了解如何使用开源项目构建公有云,需要最佳实践、教程和工具。首先,我得理清楚构建公有云的关键组件。通常公有云需要计算、存储、网络、身份认证、监控这些基础服务。然后,每个部分对应的开源项目有哪些呢?计算方面,OpenStack的Nova组件是常用的,或者Kubernetes做容器编排。存储的话,Ceph是个不错的选择,支持对象、块和文件存储。网络方面,OpenStack Neutron或者Calico、Flannel这些CNI插件。身份认证可以用Keycloak或者OpenStack Keystone。监控方面,Prometheus和Grafana组合很常见。 接下来,用户可能需要具体的步骤,比如如何选择和集成这些工具。比如,计算虚拟化可以选择OpenStack,但如果是云原生环境,可能更适合Kubernetes加KubeVirt。存储部分,Ceph的部署需要规划集群,网络配置要考虑多租户隔离。身份认证要集成单点登录,监控则需要覆盖各个层面。 然后要考虑工具链,像Terraform和Ansible这样的基础设施即代码工具,能帮助自动化部署。CI/CD部分,Jenkins或者GitLab CI可以自动化测试和部署。安全性方面,可能提到Harbor作为镜像仓库,Vault管理密钥,Snort或Suricata做入侵检测。 教程资源方面,OpenStack和Kubernetes官方文档是基础,还有社区的最佳实践指南。参考案例的话,像网易数帆的Hango网关基于Envoy,说明开源项目云原生中的应用。阿里云ECS的最佳实践也提到使用开源蜜罐系统,可能和云安全相关。 用户可能还关心如何保证高可用和扩展性,比如多区域部署、负载均衡、自动化扩缩容。成本优化方面,混合云架构和资源调度策略,比如使用Kubernetes的Cluster Autoscaler。 需要确保回答结构清晰,分步骤说明,并推荐具体工具和教程。同时,根据提供的引用,Hango、Jenkins、ECS实践、Docker可视化工具、OCR工具这些可能相关,但用户的问题是关于构建公有云,所以重点在OpenStack、Kubernetes、Ceph等,但可以提到云原生和自动化工具如Jenkins,以及安全方面的开源工具如Hfish蜜罐。 最后,生成相关问题时要围绕用户可能的后续疑问,比如具体组件的部署、集成挑战、成本优化、安全方案、混合云管理、监控日志方案等。</think>### 使用开源项目构建公有云的最佳实践工具指南 #### 一、核心架构组件选择 构建公有云需涵盖以下核心模块: 1. **计算虚拟化**:OpenStack Nova、Kubernetes(容器编排) 2. **存储服务**:Ceph(分布式存储)、MinIO(对象存储) 3. **网络管理**:OpenStack Neutron、Calico/Flannel(容器网络) 4. **身份认证**:Keycloak、OpenStack Keystone 5. **监控日志**:Prometheus+Grafana、Elastic Stack 示例架构: ``` 用户请求 -> 负载均衡(HAProxy) -> 计算集群(Kubernetes/OpenStack) -> 存储集群(Ceph) ``` #### 二、关键实施步骤 1. **基础设施自动化** - 使用 **Terraform** 定义云资源模板,配合 **Ansible** 完成配置管理 - 部署 OpenStack 时建议采用 Kolla-Ansible 容器化部署方案[^3] ```bash # OpenStack 最小化部署示例 kolla-ansible deploy -i all-in-one ``` 2. **容器化云原生** - 基于 Kubernetes 构建容器服务,集成 **KubeVirt** 实现虚拟机管理 - 参考网易数帆基于 Envoy 构建 API 网关的经验[^1],使用服务网格(如 Istio)增强微服务治理 3. **存储系统建设** - Ceph 集群部署需规划至少 3 节点,使用 **CRUSH 算法**确保数据分布 ```bash # Ceph 集群初始化命令 ceph-deploy new mon-node1 ceph-deploy install admin-node ``` 4. **安全体系构建** - 集成开源蜜罐系统如 **HFish**[^3] 实现主动防御 - 使用 **Vault** 管理密钥,**OPA** 实现策略即代码 #### 三、推荐工具链 | 分类 | 工具推荐 | 特点 | |---------------|-----------------------------------|-----------------------------------| | 基础设施即代码| Terraform/Pulumi | 多云资源统一管理 | | CI/CD | Jenkins[^2]/ArgoCD | 自动化流水线建设 | | 网络观测 | SkyWalking/Envoy Access Log | 微服务链路追踪[^1] | | 镜像管理 | Harbor | 企业级容器镜像仓库 | #### 四、学习资源参考案例 1. **OpenStack 官方部署指南**(需实践多节点部署场景) 2. **Kubernetes 生产级实践手册**(重点关注 Ingress 存储卷配置) 3. 阿里云 ECS 最佳实践中提到的混合云架构设计思路[^3] 4. Docker 可视化工具 Portainer 的集群管理方案[^4] #### 五、成本优化建议 1. 采用 **混合云架构**,冷数据存储使用 MinIO 对接公有云对象存储 2. 通过 **Kubernetes 垂直扩缩容**(VPA)实现资源利用率最大化 3. 参考网易数帆的网关性能优化方法[^1],使用 eBPF 技术提升网络吞吐量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

网易杭研

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

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

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

打赏作者

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

抵扣说明:

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

余额充值