《2019年用Kong构建混合环境下的服务网络.pdf》由会员分享,可在线阅读,更多相关《2019年用Kong构建混合环境下的服务网络.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、用Kong构建混合环境下的服务网络独立顾问/PolarisTech联合创始人目录 分布式环境与服务网络 KongNginx家族小伙伴 基础的基础LBaaS 南北向与东西向流量 数据平面:sidecar与代理 控制平面:多租户、配置和缓存 部署环境:物理机、云、虚拟化、容器 跨微服务平台 监控与服务质量引言随着微服务架构的流行,服务之间流量的管理变成了新的问题和话题。为了解决这类问题,以Istio为代表的开源软件提出了service mesh的概念,第一次把这个领域的问题、功能、解决办法做了汇总,完成了这个领域概念的标准化和体系化的工作。目前大多数的service mesh解决的问题都是依赖或者
2、绑定到微服务平台和框架上(比如Istio构建在K8s之上)。但是现实当中,使用环境往往是复杂的,尤其是企业环境,一般都包含多个版本、多种微服务平台(比如K8s,Dubbo,Spring Cloud等);同时部署环境也涵盖了公有云、虚拟机、物理机、容器等;在地域上也有着跨数据中心的需求。一起了解如何基于Kong来解决这些问题。分布式环境与服务网络问题:开通全链路访问是一个繁琐、容易出错的过程 访问规则的管理复杂、冗余、过期配置大量存在 防火墙无法有效实现应用层访问控制 缺乏应用层的统一视图 跨集群的服务间依赖关系管理复杂现状:分布式从一种架构选择,变成一种客观存在 多平台:Spring,Dubb
3、o,K8S 多堆栈:Java,Node.js,PHP,Python 多中心:两地三中心 传统系统:Core Banking、ESB、CRM、ERP“随着Service Mesh概念的提出和实践,分布式架构从“功能导向”向“服务质量导向”演化。”化繁为简,分而治之数据中心-1数据中心-2 统一数据中心的入口 统一数据中心的出口 统一集群的入口 统一集群的出口应用层解决框架层解决协议层解决更通用,更兼容Nginx家族:Nginx-OpenResty-Kong Lua开发,插件体系 采用数据库维护配置一致 高效、高速、高稳定 GitHub 20K+starKongNginx家族小伙伴春哥MarcoK
4、ong认证授权速控流控NginxLuaDAOCache软负载即服务 优良的LB是流量管理的基础 高吞吐、高可靠 扩容水平扩展 便捷的部署 REST 接口,基础设施可编程 配置同步 与已有体系集成监控、日志、跟踪 功能可扩展Route/插件Route/插件Route/插件Route/插件协议转换服务/插件分支/插件分支/插件服务实例服务实例服务实例服务实例Tips:HTTP为REQ/RES提供了标准模型 充分利用HTTP Keep-Alive 根据网络条件使用HTTP短连接南北流量:Ingress Egress南北向和东西向流量东西流量:服务调用 条件路由 全局路由服务管理:注册 发现 发布(蓝
5、绿/滚动)断路保护:熔断 降级 限速Spring CloudEurekaDubboZKK8setcd传统应用DNS统一配置/网关级联Tips:通过请求信息匹配规则 匹配和规则区分开 复用东西/南北通用规则Sidecar(istio):两次代理 Iptables拦截数据平面:Sidecar与代理代理:HTTP Socks5MS-AMS-BEnvoyEnvoyMixer(Policy/Rule)容器?Linux?物理机/容器/虚拟机 Linux/WindowsMS-AMS-BKong/HTTP(Policy/Rule)BC/Socks5(Policy/Rule)减少一次代理 配置同步更简单 无需i
6、ptablesTips:环境变量可以设置代理 Socks5支持域名和认证 全局化配置:不再“铁路警察各管一段”多租户与自服务:尽量授权给服务维护者做配置变更 自动化:从服务配置中心获取配置 可视化:操作可视化,结果可视化 流程:加入必要的审批和review 版本化:配置的回溯能力控制平面:多租户、配置和缓存SpringDubboK8sLegacyetcdDNSEurekaZookeeperGUIRESTCLIBotDB可视化GrafanaBI Tools监控PrometheusZabbix跟踪Zipkin*SkyWalking门户DrupalLifera