2019年12月14日,由又拍云、Apache APISIX 社区联合举办的 API 网关与高性能服务最佳实践丨又拍云 Open Talk 在广州圆满落幕,这是继深圳、北京、成都、上海、武汉、杭州活动后,系列活动的第七站。

11.png

本次 Open Talk 广州站活动,邀请了Apache APISIX PPMC 温铭、又拍云首席布道师邵海杨、HelloTalk 后端技术负责人李凌、腾讯云高级研发工程师厉辉,为到场的近百名技术爱好者和上千名直播观众带来关于微服务网关、Service Mesh、网络代理、负载均衡算法等备受关注的话题分享。

从 Apache APISIX 看 API 网关的演进

OpenResty 软件基金会发起人温铭做了开场分享,他是开源微服务 API 网关 APISIX 作者,《OpenResty 从入门到实战》专栏作者,他以开源微服务 API 网关 Apache APISIX 为例探究 API 网关的演进。

12.png

Apache APISIX 是一个云原生、高性能、可扩展的微服务 API 网关,基于 OpenResty 和 etcd 实现。和传统 API 网关相比,Apache APISIX 增加了包括支持多云和混合云、无状态、随意扩容和缩容等在内的诸多功能,能够更为妥帖的满足企业个性需求的开发。

温铭对微服务的演进进行剖析,微服务从类库至 proxy、到 sidecar, 再到 Service Mesh 各个阶段面临不同痛点,在此基础上不断变革演进。温铭认为微服务发展至今,将会分久必合、抛弃 sidecar,走向中心节点或者集群的模式,全动态、全协议支持、高性能、云原生友好的网关是下一代网关发展方向。

OpenResty 在又拍云容器平台中的应用

来自又拍云的邵海杨是资深系统运维架构师,多年 CDN 行业架构设计、运维开发、团队管理相关经验,目前专注于容器及虚拟化技术在又拍云的私有云实践。他现场介绍了 Kong、Ingress-Nginx 等基于 OpenResty 实现的 API 网关和负载均衡器的使用方法和工作原理,以及如何基于 OpenResty 实现高性能的内部负载网关,分享了 OpenResty 在又拍云容器平台的实践经验。

13.png

又拍云的业务具有域名多、服务多、调用关系复杂、流量大、高可用等业务特点。邵海杨从业务场景出发,分享了又拍云利用 OpenResty 开发的解决方案:使用 API 网关管理上千个域名,因为服务非常多需要容器化并实现不同节点的容器间网络互通,同时提供高性能的负载⽹网关、避免产生额外流量 ,最后用 VIP 或域名的方式取代直接的 IP 访问以及在实际实现过程中使用的开源软件和需要注意的点。

HelloTalk 基于 OpenResty 的全球化探索

李凌是 HelloTalk Inc 后台技术负责人,目前专注服务出海和基于 Golang/CPP 的 IM 服务及相关技术平台的架构。他从业务场景、业务实践、技术选型等多个方面介绍 HelloTalk 如何使用 OpenResty 在 IM 服务、feed 流服务方面优化和治理。

14.png

HelloTalk 是全球最大的外语学习社交社区,在走向国际化过程中,面临用户分布区域较为分散、语言和网络环境一样复杂的问题,需要不断提高用户的全球接入质量。在多云环境下的全球接入的管理中,HalloTalk 从以下方面着手:

  • 支持 websocket 的 7 层加速。(云服务+自建)

  • 自建低速率的 VPC+ 专线通道。(性价比考虑)

  • 长短连接混合收发消息:Websocket、long polling、httpdns + 内置 IP failover机制

在考虑自建网关时,李凌认为其需求比较简单,依赖 RDMS 会带来额外的维护成本,而 Apache APISIX 代码极致简单易懂,基于 ETCD、节省维护成本,故而考虑引进 Apache APISIX。此外,李凌还现场分享成为 Apache APISIX 首位非初始 Committer 的经历,可以供后续开源爱好者参考。

k8s ingress controller 如何选型

来自腾讯云高级云研发工程师厉辉主要以 Apache APISIX 为例,对比多款主流 k8s ingress controller,介绍如何选择一款适合自己的 k8s ingress controller。

15.png

厉辉认为基于官方 Ingress 功能基础扩展功能较少,开源 Ingress 种类繁多,开发人员擅长的技术栈不一样等问题导致 Ingress 选型困难重重。在做 Ingress 选型时,厉辉介绍他主要考虑以下几个点:

  • 基本特点:开源、服务发现、TLS、WebSocket 等

  • 基础软件:Nginx、HAProxy、Envoy、Golang

  • 功能需求:流量调度、空间命名

厉辉推荐选择 Apache APISIX 作为 ingress controller。ingress controller 是把 K8S 的状态同步到网关的组件,他详细介绍了如何把 Apache APISIX 网关实现成 ingress controller。


至此本次 Open Talk 广州站活动完美落幕,四位讲师通过分享自身的经历,令现场和直播观众受益颇多。线上将陆续更新本次活动四位讲师的现场分享内容,敬请关注 Open Talk 官网(https://opentalk.upyun.com)或又拍云微信公众号(微信 ID:upaiyun)。