演讲嘉宾简介: 阿里云云原生应用平台团队负责人——丁宇(花名:叔同)
以下内容根据演讲视频以及PPT整理而成。
本次分享主要围绕以下四个方面:
一、何为云原生
二、云原生发展现状
三、阿里云云原生产品
四、阿里全站上云
一、何为云原生
1.云原生产品
云平台提供的数据库产品、大数据、中间件、函数计算、容器服务等开放标准的原生产品服务。
2.云原生架构
生长于云上,依赖于产品构建的IT架构。最大化运用云的能力,让开发者聚焦于业务而非技术。
3.云原生技术
围绕基础设施、应用架构、开发以及运维等场景的标准化技术和最佳实践集合。让分布式系统更加可靠、易管理、可观测,提升研发运维效率、提升生产力。代表性技术为容器、声明式API、不可变基础设施、服务网络、无服务器化等。
上图所示为云平台的基础设施以及产品。基于内核底座构建的产品技术即云原生产品。
二、云原生发展现状
1.云原生正重塑软件生命周期
软件生命周期非常长,包括构思设计、技术选型、架构、开发、测试、交互、运维、升级等多方面。云原生最早是从容器、编排调度延展到不同领域,目前已经涵盖整个软件生命周期。架构设计、微服务、架构理念、具体产品形态、交互、运维等以往可能通过传统IT构建,而今天通过互联网架构构建,提出了许多新方法与实现。因此Service Mesh等许多新技术也逐渐流行起来。
2.K8S成为云原生时代的基础设施
过去使用云的基本能力或者企业IT架构需要管理很多基础组件,如异构计算能力、网络、存储等。容器K8S向下封装基础设施IaaS层,屏蔽底层架构差异性,云边端一体化管理,形成新界面。K8S向上支撑不同工作负载,从微服务、Web应用到AI、大数据、基因计算、区块链、边缘计算、IoT等。K8S大幅提高了企业数字化转型的效率。
3.云原生形成三个标准
容器化:建立了IT领域核心的应用基本单元的构建、分发、运行、交互的标准化,可以一次构建多处运行。
容器编排:形成了资源编排、任务调度的标准。几乎可以管理所有的工作负载,可以构建完整的IT服务。
云原生操作系统:云原生向不同应用负载的架构治理方向发展。同时横向发展,覆盖软件的生命周期,通过更现代化的方式治理IT架构。云原生形成了架构现代化演进的标准。K8S等管理体系如同操作系统一样形成了统一界面,可以在其上安装不同的工作、应用负载,为应用架构的现代化演进提供了发展方向,逐渐形成了多种新技术。
4.云原生技术正被广泛接受
云原生的理念和实践,以史无前例的速度带动企业对
云计算的接受度:第一,云原生的优势和云的传统优势如规模、稳定性和弹性完美结合,为企业提供了更好的产品和服务,同时降低了上云成本。第二,云原生技术基于开放的技术标准,极大改变了用户心智和对云厂商的信任关系,促进了企业对新技术和上云的接受度,成为云和客户交互的新界面。第三,云原生是应用研发和运维最佳实践的组合(如容器化、持续集成、交付等),正在重塑整个软件生命周期、帮助企业快速释放技术红利、加速企业数字化升级。
云原生技术正快速被接收和应用:Forrester预计2022年,全球75%以上组织将在生产中运行容器技术(当前超30%)。中国云原生技术快速发展,CNCF调研显示,云原生技术在中国被更广泛接受,除互联网等新兴企业,还覆盖很多传统行业如制造业。
三、阿里云云原生产品
阿里云是中国最早、最大的云计算服务提供商,现有200+款云产品,是国内最丰富的云原生产品家族。IT架构的一个应用的全生命周期几乎都可以在阿里云找到支撑产品。
阿里云多年来在开源领域投入巨大并得到了一定成果。下图所示为阿里在云原生领域的一些投入与贡献,几乎所有版块都有所投入与布局,做出了一定贡献。
1. 阿里&微软——开放应用标准模型
该模型期望在云原生领域实现应用交付标准化。一家公司的IT体系中有许多不同角色、环境、基础设施。N个环境,N份部署文件在不同环境之间频繁进行组合,与运维人员沟通,流程复杂,失败率高。将该种复杂架构平滑地部署到不同环境当中面临开发与运维的巨大投入。主要原因是没有统一标准将环境、基础设施、应用之间的关系描述清楚。
云原生重塑软件生命周期是通过容器K8S,K8S在基础设施层面提供了良好抽象。因此该开放应用模型在以应用为中心的交互层做了向上的抽象。开发人员只需要描述应用组件、依赖与架构。运维人员定义应用运维配置和运行时参数。平台层通过K8S拉通异构环境,执行OAM应用描述。该模型可将应用平滑交付到不同环境,在不同基础设施上做到一键安装。并且省去了过去重复冗余的工作,用更少人力进行优化,大幅提升企业的IT效率。期望用户能在云上体验到智能手机APP的“一键安装、多处运行”。
2.云原生应用平台产品家族
云平台分为以下3层。
函数FaaS:以函数为界面,基于事件的响应式编程模型,带来数倍的研发运维效率提升。
应用PaaS:以应用为界面,与云平台交互,全生命周期托管,增加弹性能力和高可用性,诊断维护智能化,提供降本增效的能力。
容器PaaS:以容器为界面,作为云原生的基石将应用与运行环境解耦,提供运维底座和新交互方式。
云平台同时提供了许多中间件、组件类产品,如完整的消息队列产品家族,以及其他中间件如服务网格、应用配置、事务服务、微服务引擎MSB、云服务总线CSB。另外提供了许多应用工具、开源框架产品。以上产品提供了一站式基础中间件服务,组合选择使用,能增加灵活度、完整度和丰富性,加速企业数字化转型。云平台服务边界不断上移是云计算行业 的新态势。
3. 容器服务产品
容器服务产品大图:在开源K8S基础之上提供了大量专业的企业级特性包括安全/合规能力、可观测性、弹性、多云/混合云、服务网格、安全沙箱等。并且能够很好地实现基础软件的自动升级,快速修复问题。容器服务向上对多个场景集成,包括微服务、有状态应用、大数据、智能应用、创新应用。同时对多云/混合云管理扩展边界,做云边端一体化统一管理。
容器服务提供多种解决方案:如下图所示,容器服务助力企业向基础设施云化(向下封装)和应用架构现代化发展。
容器服务覆盖全球:目前容器服务覆盖全球20+个可用区域。ACK Gartner 竞争格局国内唯一入选,Forrester报告国内排名第一,全球第三。
国内最大的容器客户群:阿里云有近万家容器企业客户,部分企业如下图所示。
4. 中间件
中间件&aPaaS的业务价值:云原生中间件帮助企业重塑IT价值链。阿里云做了许多开源建设,希望以优势开源产品形成行业标准,引领趋势,服务开发者。云原生中间件产品能够形成高SLA、低成本、开放、标准、稳定等核心竞争力和客户价值。以云原生中间件为核心的PaaS重塑IT构建、交付和运行三大价值链,提升企业生产力。希望以开源开放、技术优势和低引入成本,帮助企业实现全面技术升级,充分享受阿里云价值。可见,中间件&aPaaS助力企业向核心技术互联网化发展。
传统IT与互联网IT区别:如下图所示。
互联网技术架构优势:互联网建设IT的思维催生了互联网技术架构,其优势如下图所示,第一,互联网技术架构是分布式体系,具备强大的可扩展微服务能力,具有高可用属性与运维自动化能力。
第二,业务可扩展性。基于微服务的业务中台架构设计,能将业务基础服务原子化。上层业务单元可灵活组装底层原子服务,快速适应市场需求。对业务的创新迭代有强大的助力作用。
第三,互联网技术架构兼容开源开放标准。因此,云原生时代,中间件体系升级为云原生中间件以适应行业变化。
第四,互联网技术架构开发效率敏捷。开发迭代周期短,响应速度快。其服务化设计,高内聚、低耦合、可共享、可重用。并且灰度发布、交互体验都更加敏捷。
核心技术互联网化-EDAS:EDAS是面向微服务架构的应用PaaS平台,提供多样的应用发布管理机制,包括微服务管理、应用生命周期、高可用运维和监控诊断。EDAS支持包括Spring Cloud、Dubbo等多种轻量级微服务架构。并实现了应用监控、应用诊断、应用运维等与智能化结合的先进能力。
核心技术互联网化-世界一流消息中间件:消息中间件是一个拥有完备产品体系的产品家族。阿里云构建低延迟、高并发、高可用、高可靠,可制成万亿级数据洪峰的分布式消息中间件。并且经过阿里巴巴交易中心核心链路反复打磨和十年的双11严苛考验。
阿里消息中间件生态丰富,包括RocketMQ、Topic模型、低延迟、高吞吐、融合Kafka开源生态、多协议支持、多场景支持等。其次,消息中间件实现多维管理,包括全链路消息轨迹、无缝迁移能力。另外,消息中间件服务健壮性、性能优越。
中间件&aPaaS解决方案:基于上述微服务、分布式技术体系,向上提供了业务中台解决方案。阿里结合多年中台储备的能力,构建了从咨询到最佳实践,到标准、实施,到轻量化产品的一整套解决方案,助力企业全面数字化转型。再向上提供了IT体系的高可用解决方案,包括应用高可用、应用间关系治理、地域级容灾级方案,实现了异地多活、跨区域高可用。面对企业不同的IT架构、不同阶段的系统、不同组件的集成诉求,构建了集成能力,提供了企业IT集成方案。
阿里中间件产品正帮助诸多领先企业进行数字化转型与互联网技术升级。
5. 函数计算
介绍:阿里云对Serverless的理解分为两部分。一部分是架构思想和治理理念,即BaaS化。意味着软件架构可以做到全托管、免运维、极致弹性、无偏容量、按需申请、按用付费,可以在降低成本的同时大幅度提升IT效率。
另一部分是FaaS化,FaaS是Serverless一种较为核心的形态。FaaS基于函数响应式编程模型。例如将一段代码上传到云上,无事件触发时代码不运行,事件触后时代码才运行,处理事件后销毁,只在处理事件的周期内产生费用。并且开发者无需考虑运维、搭建等问题,只需要编写、上传代码即可。函数响应式驱动编程模型需要大量事件集成,需要在底层进行从开发到运维的全托管、自动化的全链路打通,使用户专注于业务逻辑开发,无需关注基础设施。
Serverless支持丰富的编程语言,也支持自定义语言。
事件驱动连接云端服务:函数计算Serverless是基于事件驱动的编程模型,因此事件源的丰富度十分关键。如下图所示,阿里云在云上打通了大量产品,对象存储、API网关等。丰富的事件源简化了编程模型,编写少量代码即可串联多个服务,实现复杂功能。
函数式编程模型通过代码片段与云平台进行交互,代码与云之间形成了服务界面,大幅提高了企业IT构建的效率。
场景示例:非常丰富的场景可以通过函数计算来实现,例如Web应用,IoT/API后端服务,大规模图片、文档、音视频处理,大规模消息处理,AI推理,日志流式处理。只要某场景能够抽象为事件驱动的模型,提供满足其特性的服务,都可以通过函数计算实现。
国内最大FaaS企业客户群:阿里云拥有国内最大的FaaS企业客户群,并且发展迅速。部分客户群如下图所示。相信FaaS与Serverless理念会在未来成为核心的编程方法。
四、阿里全站上云
1. 阿里全站上云目标
从Cloud Hosting到Cloud Native方式做全面上云,从自由、定制的技术体系走向通用、开放、公共的技术体系。
沉淀加强云面向企业技术体系服务的能力,阐述阿里云是最佳实践加持的云。
2019实现了核心系统100%上云,希望2019、2020两年完成主体上云。因此2020年需要实现大量技术向公共云产品的切换。业务系统要全面运行在公共云上,需要大量技术的切换与升级。
2.阿里全站上云方案
Cloud Hosting方案:阿里从2011年开始实施容器化,2016年实现全面容器化, 2017年实现统一调度,2018年实现全面混部(大幅降低成本,利用率提升30%)。
2014年开始尝试借助云资源来弹性支撑双11,在2015年开始使用云资源支撑双11 50%+流量,三年双11大促每万笔交易成本下降超过80%。
现在的Cloud Hosting和之前弹性场最大的不同在于:常态化、更多场景(含大数据、搜索、广告等业务)。
Cloud Native方案:云上对应领城有相关产品的,默认向公共云产品迁移,可升级和扩展。
云上对应领域无相关产品的,判断内部技术是否要做成公共云产品,若不需要则以Cloud Hosting方式部署该系统。