Apache APISIX Intro

Apache APISIX

云原生微服务API网关,高性能、安全性、开源可扩展的服务平台
APISIX 基于Nginx, Etcd.与传统的API 网关相比,具有动态路由和热插拔加载,适合微服务系统下的API管理.

API Gateway

API网关将微服务的通用功能作为中间层, 比如统计、安全、限速、限流和缓存,这样每个服务只需要关注自己的业务,无关的需求被抛给API网关.

  • Traditional vs. Cloud Native
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 传统的API网关功能
    - 覆盖了Nginx所有的功能, 包括 reverse proxy(反向代理)、load balancing(负载均衡)、caching(缓存)、secure authentication(安全认证)、rate-limiting(限流)、speed-limiting(限速).
    - 支持传统的Web服务无法实现的功能,比如dynamic upstream(动态上行)、dynamic SSL certificate(动态SSL证书)、dynamic rate-limiting and speed-limiting(动态限流限速)、active/passive health check(主动/被动健康检查)、service disconnection(服务断线)。
    - 提供生命周期管理,在API网关领域,Google是最大的参与者,Google在收购Apigee后,整合了除反向代理、负载均衡、限流限速功能外,API网关还包括API的设计、文件管理和测试.从项目设计到产品测试一系列功能都包含在API网关的生命周期管理中.

    # 云原生下API网关的新特性
    - 需要对接云环境下的Prometheus(系统监控报警组件)、Zipkin(分布式日志追踪系统)、Skywalking(观察性分析平台和应用程序性能管理系统).
    - gRPC 代理和协议转换(REST <=> gRPC). 现在HTTP在微服务中使用较少,开始使用gRPC
    - identify authentication(身份认证的变化): 在传统的Nginx中,一般流量进来之后,根据路由规则执行反向代理和负载均衡的功能,发送流量的客户端的身份很少经过身份验证,但是在云原生计算中,由于很多流量都在微服务中,必须进行严格的身份认证,包括加密和OpenID
    - Serverless今年来非常有名的概念,如果你想在边缘节点动态运行一个函数或停止一个函数.或者动态改变内容,可以在边缘节点部署API网关,使用FaaS(Function as a Service),边缘节点将更加灵活. Apache APISIX最近支持Serverless,可以让Lua函数在边缘节点动态运行.
    - 保持无状态,动态缩容/扩容的功能,云原生计算下的一个重要标准是所有的服务都可以通过容器随意扩容和缩容对Kubernetes友好.
    - Support multiple clouds and hybrid clouds.

Nginx vs OpenResty

  • Nginx
    1
    2
    > A high performance free open source web server powering busiest sites on the Internet.
    > nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server
  • OpenResty
    1
    > OpenResty (aka. ngx_openresty) is full-fledged(成熟)的web应用程序服务器,基于标准的Nginx核心和许多第三方Nginx模块以及第三方外部依赖.

参考资料