2019-12 温铭:从 0 到 1:Apache APISIX 的 Apache 之路
2020-03-01 197浏览
- 1.从 0 到 1:APISIX 的 Apache 之路 温铭 wenming@apache.org
- 2.关于我 • Apache APISIX PPMC • 深圳支流科技创始人 • 《OpenResty 从入门到实战》极客时间专栏作者 • 曾在奇虎 360 担任企业安全架构师,开源委员会发起人、委员 • 40 多项安全方面的专利
- 3.Apache Way • 社区大于代码:烂代码可以改,不健康的社区没治 • 优先邮件列表:邮件列表中没有出现的,就当做不存在;72 小时原则 • 精英治理:贡献越大,声音越大 • 民主:所有人都可以投票,区别在于此票是否有效(binding)
- 4.开源社区的三种治理模式 • 社区共识:Apache APISIX • 商业公司共识:Kong Inc. • 仁慈的独裁者:Python
- 5.如何加入 Apache 孵化器 • Champion:项目的引路人,进入孵化器后转为 Mentor 角色 • Mentor:项目的导师,帮助 PPMC 发布 Apache Release,并传授 Apache 文化 • Proposal:关键的文件,可以参考其他项目 • Discuss:邮件列表先讨论,达成共识 • Vote:一般需要投票一周的时间
- 6.Apache APISIX 的孵化器之路 • 进入 Apache 孵化器是成为 Apache 顶级项目的必经之路 • APISIX 是第 16 个加入 Apache 孵化器的国内项目 • APISIX 是第 1 个国内初创公司捐赠的项目
- 7.Apache APISIX 的孵化器之路 • 先找 Champion:熟人、熟悉微服务和 API 网关、经验丰富 • 写英文提案 • 再找 Mentors:找 Apache 基金会主席和 Apache 孵化器主席面聊 • 问题:初始 committer? • 邮件列表讨论和投票
- 8.Apache Way 和国内开源文化的冲突 • 996、业务导向都是表象 • 文化的碰撞,不在一朝一夕 • 沟通方式:邮件列表公开聊(异步、慢)还是私聊(同步、快)? • 投票:精英民主还是仁慈的君主? • 职位:是义务还是权力?
- 9.持续召集贡献者和 committer
- 10.讨论:Nginx 的版权问题
- 11.基于 Apache APISIX 的 下一代微服务架构 温铭 wenming@apache.org
- 12.大纲 • Apache APISIX 是什么? • Apache APISIX 能解决什么问题? • 微服务是如何演进到 Service Mesh 的? • Service Mesh 是银弹吗? • 下一代微服务架构是什么?
- 13.Apache APISIX 是什么? • 云原生微服务 API 网关 • 基于 Nginx 和 etcd 实现 • 集成了控制面和数据面 • 提供灵活的插件机制 • 动态上游、动态路由、插件热加载
- 14.快速的成长 • 6 月 6 号开源 • 7 月被纳入 CNCF 全景图 • 8 月首家付费央企 • 9 月贝壳找房上生成环境,每日处理近 3 亿流量 • 10 月进入 Apache 孵化器,国内唯一由初创公司贡献的项目 • 11 月全面支持 ARM64 平台,并推出 apisix-ingress-controller • 12 月:即将推出新一代微服务架构方案
- 15.NASA 也在使用
- 16.API 网关的传统功能 • 让 API 请求更安全、更高效的得到处理 • 覆盖 Nginx 的所有功能:反向代理、负载均衡 • 动态上游、动态 SSL 证书、动态限流限速 • 主动/被动健康检查、服务熔断
- 17.云原生下的新功能 • 对接 Prometheus、Zipkin、Skywalking • gRPC 代理和协议转换(REST <=> gRPC)、websocket • 身份认证:OpenID Relying Party、OP(Auth0、okta…) • Serverless • 高性能、无状态、随意扩容和缩容 • 支持多云、混合云 • 容器优先,Kubernetes 友好
- 18.Apache APISIX 能做什么? • 处理 L4、L7 层流量:HTTP、HTTPS、TCP、UDP、MQTT、Dubbo、gRPC… • 替代 Nginx 处理南北向流量 • 替代 Envoy 处理服务间东西向流量 • k8s ingress controller • 借助 MQTT 插件作为 IoT 网关 • 借助 IdP 插件成为零信任网关
- 19.愿景:快速处理所有业务流量
- 20.微服务的演进史
- 21.1. 从单体到微服务
- 22.痛点:大量的重复开发 技术变革:容器
- 23.
- 24.2. 微服务从类库到 proxy • Spring CLoud • Dubbo
- 25.痛点:语言绑定、升级难
- 26.
- 27.3. 微服务从 proxy 到 sidecar • 技术变革:云原生 • proxy 的痛点:路由、上游、证书等不能动态
- 28.
- 29.4. 从 sidecar 到 Service Mesh • 痛点:不通用、抽象层次不够 • Service Mesh 想做为基础设施下沉 • Istio + Envoy:控制面和数据面
- 30.Service Mesh 不是银弹 • 每个微服务都要带 sidecar • 多次的流量转发,不适合对性能要求高的场景 • 不如 Nginx 稳定
- 31.下一代微服务会是怎样? • 分久必合,抛弃 sidecar • 走向中心节点或者集群的模式 • 也就是下一代网关:全动态、全协议支持、高性能、云原生友好
- 32.我希望 Apache APISIX 可以担此重任!
- 33.Q&A