1、如何构建下一代分布式系统刘相,平台 让创新无限,IT 架构演进趋势微服务下关键技术剖析平台架构与展望,数字商业演进路线图,在系统架构的自然演进中,诞生了微服务,在系统架构的自然演进中,逐渐要求持续变更(DevOps),下一代分布式平台,DevOps平台,微服务平台,容器平台,开发平台,实现微服务架构,解决巨石问题,推动“大平台,小应用”,增加系统弹性和灵活性,实现软件交付过程自动化、流程化、协作化,提升交付质量和效率,一切皆资源,服务围绕资源按业务能力划分服务和组织自管理、自服务,自助与自动,是提升企业运营效率的一大途径以BAPO为指导,实现PDCA的良性循环,以Docker为首的容器技术栈,
2、让古老的LXC产生了新生命力屏蔽底层资源差异性,从上层支撑服务的可靠与可用,下一代分布式平台定位,微服务,微服务,历史系统,基础平台(IaaS、CaaS),DevOps,历史系统,微服务平台,原有平台,微服务不仅仅只有RPC框架,数据同步,分布式事务,上下文,交易编排,统一门户,一体化安全,服务 网关 API Gateway,代码仓库,介质仓库,持续集成交付,部署包仓库,自动测试平台,边界类,核心类,微服务开发设计器,服务挡板,微服务运行容器,微服务平台,云平台(PaaS/CaaS/IaaS),运行时配置管理,统一日志收集分析展现,服务注册中心,容器状态管理,资源监控,微服务监控治理,适配类,
3、开发&集成,微服务运行的容器:原生开发体验,享受分布式的能力,微服务容器,Svc.Register服务注册,注册中心,Inner API,微服务容器,Inner API,Svc.Find服务发现,安全 流控 权限,微服务容器,Inner API,Public IP,安全 流控 权限,安全 流控 权限,微服务容器(前端),html,CSS,js,REST,REST,REST,REST,REST,REST,微服务容器逻辑视图,业务逻辑,限流&降级,负载均衡,Doc,服务注册与发现,统一异常处理,日志,安全&访问控制,序列化,微服务容器,REST,REST,容错&熔断,Mock,健康检查,基础能力,
4、RPC,核心能力,如何在不确定的环境中交付确定的服务?,外部系统,网络中断,服务不可用,服务超时,事务完整性,并发请求,超量请求,请求积压,如何在不确定的环境中交付确定的服务?,分段事件驱动(SEDA)模式,微服务的熔断与降级,Closed,进:失败计数器归0过程:每次失败调用,计数器+1出:/,Open,进:启动时钟过程:持续禁止访问出:/,Half-Open,进:成功计数器归0过程:每次成功调动,计数器+1出:/,成功调用次数达到了给定时间的阈值,失败调用次数达到了给定时间的阈值,达到超时时间,调用失败,熔断:与股市熔断概念一致,当调用下游服务出现问题时,需要自行进行智能处理,降级:由于整
5、体资源出现瓶颈时,为保证核心服务的可用性,将低等级服务暂停,设计思路,概念,关键点,上游服务,服务A,服务B,服务C,线程池A,线程池B,线程池C,微服务的升级与回退,V1 Rep:4,用Replication结合rollingupdate的方式来做灰度,难点在于流量的控制和数据兼容,Start V2 Rep,V1 Rep:2,V2 Rep:2,V2 Rep:4,针对于数据灰度的两种方式:类似现在很多传统行业的方案,只可以增加字段,不可以删除资源从数据访问层中间件着手,往两个库同时差异写(这个有些互联网公司是这样的),流量控制:业务解决可通过APIGateway实现,微服务给容器技术的风靡加了
6、一把火,微服务架构,灵活部署,轻量可伸缩,动态分布式,Server,Host OS,Bins/libs,Bins/libs,App a,App b,App c,App d,镜像管理,跨系统,AUFS、介质小,启停快,Link、环境变量注入,容器扩大了微服务的应用边界,J2EE与容器,Java EE是一个标准化的交付形态、一个通用的运行环境和基础架构,并由此衍生出一个完整的IT产业链容器也是一个标准化的交付形态、一个通用的运行环境和基础架构,并即将由此衍生出一个完整的IT产业链,严重依赖于应用服务器,但是应用服务器存在如下问题:资源隔离差:无法对CPU、内存、文件系统、IO进行隔离依赖管理差:内