您好,欢迎访问三七文档
云原生中间件白皮书(2020年)郑立中国信息通信研究院云大所云计算部工程师2020年7月29日01概述何为云原生?何为中间件?云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径;帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式API及Serverless等。云原生中间件产业技术价值标准化功能特征中间件是一种独立的系统软件或服务程序,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性。中间件位于客户服务器的操作系统之上,管理计算资源和网络通信。参考CNCF云原生定义参考北京大学梅宏和IDC对中间件定义1946ENIAC的诞生1990s互联网时代来临现代中间件诞生2010开源技术兴起开放协作推动中间件技术发展1960s软件登上历史舞台2006云计算时代为中间件提供了平台2013云原生时代赋予中间件新的内涵中间件前世今生:一切为了支撑上层应用系统02云原生应用云原生应用优势云原生应用可以快速构建并部署到平台上,平台提供了简单快捷的扩展能力并与硬件解耦,提供了更好的灵活性、弹性和高可移植性云原生应用关注弹性和高可用的架构设计,帮助开发人员和架构师设计不受环境中故障影响的在线系统,快速弹性的重建和保持系统可用使用支持云原生技术的云平台,企业可以将构建在任何(公有或私有)云上的应用快速迁移,无需担心锁定云生云长,充分利用云平台优势敏捷弹性,致力高效高可用设计具备多云间扩展的灵活性云原生应用技术特征容器化及编排将应用整合到容器中并且运行起来的这个过程。容器是为应用而生的,能够简化应用的构建、部署和运行过程。微服务化微服务架构以开发一组小型服务的方式来组成一个独立的应用系统。计算存储分离计算存储分离架构清晰,提高了系统灵活性,计算与存储资源独立扩展,提高了资源利用率。服务网关为微服务基础的系统提供了统一的接入口,在网关层处理所有的非业务功能。使微服务的部署和应用更加便捷。分布式事务一致性将分布式事务从业务中剥离,作为技术组件单独管理,以服务的形式提供给应用,以解决解决分布式架构带来的数据一致性问题。将业务逻辑的部分设计成无状态的,应用很容易的横向扩展。应用无状态化03云原生中间件十要素--构建云原生中间件的关键底层资源呈现形态设计原则运行时容器原生组件模块化、服务状态、事件驱动、可观测性统一响应式与声明式的API、平台化韧性设计、弹性伸缩、动态部署1.容器原生云原生(CloudNative)架构,部署容器化(Containerization)按云原生架构设计,以容器化形式进行部署1.中间件服务快速启动,灵活完成资源的扩缩容2.容器隔离了底层资源的差异,可轻松实现多实例3.容器原生的中间件占用更少的资源,有更好的优化策略,提升资源利用率2.服务状态有状态(Stateful)和无状态(Stateless)分离中间件设计时需要考虑服务的状态:有状态部分和无状态部分1.无状态部分运行的实例不会在本地存储数据,便于横向扩展2.在有状态中间件设计时,应考虑扩容时状态的迁移、复制、同步等机制无状态实例无状态实例无状态实例分布式缓存分布式数据库分布式消息队列3.组件模块化组件模块(ComponentModules)业务应用中间件中间件中间件按照可插拔、松耦合、可动态编排的组件化进行设计1.每个组件都是高度抽象的、自包含的、封闭的,并和其它的组件有逻辑隔离2.对外提供统一的应用程序编程接口供开发者调用4.事件驱动采用事件驱动(Event-driven)架构采用事件驱动的架构进行设计1.异步:事件驱动的架构是异步的,不容易堵塞2.松耦合:各个中间件不需要(也不应该)知道或依赖于其他服务3.易扩展:中间件在事件驱动的结构下解耦,对该服务(且仅对该服务)进行扩展变得很容易MediatorEventQueueEvent5.可观测可观测性(Observable)在微服务构成的高度复杂的应用系统运行态下,可观测性是云原生中间件必须具备的能力1.实时地观察应用系统的健康状态2.日志、监控、跟踪、告警是可观测性的主要实现日志分布式跟踪告警监控中间件6.韧性设计云原生中间件具备韧性(Resiliency)韧性设计输入错误调用超时错误重试韧性设计的中间件具备较强的系统自愈能力和抵抗外部冲击能力。1.关注功能和性能上的鲁棒性和健壮性2.兼顾外围应用系统的适应能力磁盘故障网络过载恶意攻击应用限流服务降级外部故障内部故障7.弹性伸缩资源可扩展(Scalability),服务可弹性(Elasticity)可扩展:具备按需动态调用资源的能力,在保证业务连续性前提下,独立完成资源扩展或者收缩可弹性:中间件的吞吐量将根据资源的扩缩自动地缩放,满足不同资源下的业务需求服务可弹性是建立在资源可扩展基础之上8.动态部署服务全生命周期的动态部署(DynamicDeployment)具备动态部署与发布能力1.发布策略:滚动发布、灰度发布、蓝绿发布2.部署策略:批量并发部署、任务定时部署、分阶段部署等3.版本控制:版本追溯及回滚部署发布开发构建部署策略发布策略回滚中间件9.统一响应式与声明式的API将响应式API与声明式API统一(UnifiesReactiveandDeclarativeAPI)云原生中间件承担了运行时为应用动态赋能的重任,应用与中间件以API调用的形式进行通信与控制。1.响应式API:描述为了达到某一个效果或者目标所需要完成的指令2.声明式API:描述应用期望的目标状态发出的指令将两种API模型进行统一,产生强大的杠杆作用。DeclarativeReactive10.平台化以云平台(CloudPlatform)的形式提供服务以平台化的形式对外提供服务。平台是能够独立运行并自主存在,为其所支撑的上层系统和应用提供运行所依赖的环境,并通过标准的接口和API来隔离其支撑的系统。1.中间件功能下沉到基础设施,成为云的一部分2.在运行时为应用赋能,帮助实现应用的轻量化部署资源可观测弹性管理韧性04典型云原生中间件服务分布式消息队列•系统间相互协作的通信机制,是分布式系统中的核心组件•典型场景:削峰填谷、异步解耦、日志分析等分布式事务系统分布式配置服务API网关分布式缓存链路跟踪服务云原生中间件典型服务:功能保持,赋能云原生化,践行十要素•将不同机器或服务器的缓存贡献到由多个节点和虚机访问的大型缓存池中。•典型场景:大规模分布式集群环境或者云环境•管理分布在不同计算节点上的数据的一致性,保障系统处理能力的效率与负载均衡•典型场景:交易处理系统•统一管理配置,使开发者专注业务逻辑开发,提高开发运维效率,提升发布成功率•典型场景:分布式集群环境下的微服务配置•将系统对外暴露的服务聚合起来,封装服务的内部结构,统一通过API网关进行访问。•典型功能:认证、鉴权、流量控制、协议转换、监控•为分布式应用提供了完整的工具包,快速分析诊断分布式应用架构下的性能瓶颈。•典型功能:调用链路还原、链路拓扑、依赖分析。05发展趋势趋势01技术架构归于统一十要素促进了云原生中间件统一平台的发展02基础能力下沉赋能轻量化云原生应用03标准化进程持续深入深化以用户需求为中心的技术规范和能力要求THANKS!
本文标题:云原生中间件白皮书
链接地址:https://www.777doc.com/doc-8267949 .html