当前位置:   article > 正文

云原生时代“云化”研发运维_云原生到云化

云原生到云化

今天探讨的课题是云原生,目前越来越多的小伙伴探讨和解读云原生这个大课题,本周云效将为您带来云原生DevOps解决方案重磅发布,请锁定2020年10月21日,下午14:00-15:00,我们不见不散!长按识别下图二维码,直达会场。

直播时间:2020年10月14日 14:00-14:30 预约直播

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

那么今天先来尝个鲜,看看怎样结合云的能力实现全面云原生化。
摘要:阿里巴巴未来针对研发运维效能的提升有几个重点方向,其中一个重要方向就是结合云的能力实现全面云原生化,全面实现聚焦业务提升效能的目标。本次分享将由阿里云云原生应用平台研究员张瓅玶为大家介绍研发运维效能提升的关键路径,从而详细讲解云原生和研发运维效能提升的关联,并介绍阿里巴巴走向云原生演进的实践与痛点解决 。

演讲嘉宾简介:阿里云智能 研究员——张瓅玶(花名:谷朴)以下内容根据演讲视频以及PPT整理而成。观看回放:http://developer. aliyun. com/topic/2020

本次分享主要围绕以下三个方面:
一、研发效能提升的核心要素
二、云原生架构是研发效能提升的关键路径
三、云原生时代的研发运维:阿里巴巴实践

一、研发效能提升的核心要素
1.研发效能目标
在数字化转型高速发展的时代,企业巨大的动力在于研发效能,也即追求迅捷、可靠、安全的软件交付。但是哪些因素能够驱动快速、可靠、安全的软件交付呢?下图所示引用了DORA state of devops 2019的研究结论。

我们看到绿色部分为快速交付的核心指标——Lead time & Deployment frequency(需求交付市场速度和部署频率),蓝色部分为关于安全可靠交付的核心指标——Change fail & Time to restore(软件部署失败频率以及软件出现问题需要的恢复时间)。这些都是效能的关键衡量指标。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

对于几千家企业的研究表明,软件的效率即反映在这几个核心指标上。而研究同样揭示了,不同的企业在效能存在巨大差异,高效能的企业在以上核心指标方面数十倍优于传统模式企业。

以部署频率为例,高效能的企业能实现一日多次部署,而一些没有很好地进行应用架构转型的传统企业,一年未必发布部署一次。高效能团队能实现按天级进行需求交付,而一些传统行业仍按季度、按半年交付需求。巨大的效能差距对于企业抢占市场有巨大影响。因此企业的数字化转型,必须提升自身的软件交付效能,弥补效能的巨大鸿沟。那么如何做到这一点呢?我们需要首先分析驱动效能提升的核心要素。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

2.驱动不同企业效能提升的核心要素
前面我们分析了 软件交付效能的几个核心指标。同时,DevOps研究也揭示了有如下三个重要的关联因素能够驱动企业提升效能指标。
第一,持续交付。实现持续软件交付能力,能够显著提升软件开发的迭代效率。
第二,企业是否基于云构建应用架构是效能优劣的分水岭。
第三,企业文化是否透明安全。

今天我们先聚焦前面两个因素来分析。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

持续交付:实现持续交付的企业具有更好的代码可维护性、更松耦合的架构、更好的开发流程、部署自动化能力、更好的可观测性以及持续集成和自动化测试能力。
用云Cloud:基于云构建的架构是应用架构和基础设施解耦的架构,可避免in-house重复建设,从而减少资源浪费及避免效能降低。此外,用云使得企业应用架构基于标准技术体系构建应用,提升团队效能。

而实现了上面两个要素,即能够持续交付并基于云构建软件的企业,其实就是在遵循一种云原生架构。这也就是引出了我们下一个话题,为什么云原生架构是研发效能提升的关键路径。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

二、云原生架构是研发效能提升的关键路径
1.云原生架构定义
在探讨什么是云原生架构之前,我们希望来分析云原生技术和产品。
云原生技术:以容器、微服务、可声明式API、服务网格等为代表的一系列技术,使用标准化方式、松耦合、易观测的架构使分布式应用的构建变得更简单。
云原生产品:在云平台基于标准、开放的技术体系构建出一系列云原生产品。

云原生技术和产品支撑了企业架构向云原生架构的演进。云原生架构生于云长于云,最大化运用云的能力,依赖云产品构建IT架构,让开发者聚焦于业务而非底层技术。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

2.云原生架构与业务价值
驱动效能提升和成本利用率提升:云原生架构主张的业务价值围绕着驱动效能提升和成本利用率的提升。
第一,云原生架构中典型的容器、资源编排等技术能够非常好的提升运维效率和资源利用率。
第二,云原生架构使分布式系统的可弹性扩展和稳定性可靠性得到提升。
第三,云原生架构是主张开放、标准的技术体系。客户对开放、标准的技术体系的接纳度大幅度提升。开放、标准的技术在云厂商在社区在众多工程师共同的努力下,会有快速的迭代与发展,为企业带来巨大红利。目前没有任何一家企业能独立自主地驱动像Kubernetes这样可能有上百家企业、上千个研发工程师参加的大型项目。此类大型开放标准的社区中的协作,在过去一个企业单独的封闭体系下是难以实现的。开放协作带来的巨大技术红利,将云厂商平台通过标准、开放的技术所构建的产品能力用到自己企业的架构中,是每一个企业提升研发效率的关键路径。
第四,云原生架构提供持续交付、持续集成等标准化技术和产品的能力是支撑企业创新迭代的重要因素。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

研发运维生命周期视角:云原生架构所提供的能力与产品技术和研发运维的生命周期密切相关。

一个产品上线过程的全生命周期,往往从业务需求开始,做分析,设计,到进入开发、自测编码,进行集成测试,灰度测试,然后在测试环境上线。最后到生产环境上线以及运维。

云原生架构更多支撑应用开发,涉及应用架构、松耦合架构、应用本身的一些基于云产品构建的体系、应用运维、应用部署和测试等层面。云的可观测性,容器、应用等随时随地轻量化迁移的能力,容器编排等能力都使运维变得更加简单。基础设施的计算、存储网络、设施维护等很多能力能通过云的架构很好地覆盖,使应用开发过程无须关心基础设施的维护、生产、管理等工作。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

  1. 云原生架构是研发效能提升的关键路径
    云原生架构通过全面利用托管、安全、高性能的云服务支撑软件架构。在此基础上,企业一方面能基于云来集成应用的管理运维,另一方面能够让企业业务高效进行集成开发测试,形成一个企业自身的高效持续集成、持续迭代的良好闭环。因此认为云原生架构是研发效能提升的关键路径。
    9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

下一部分,我来分享阿里巴巴在落地云原生架构升级过程中的实践。
三、云原生时代的研发运维:阿里巴巴实践
1.研发运维效能痛点
第一,不同部门自建的基础技术体系有重复建设,易树烟囱,投入高。
第二,自建的多种基础技术体系之上,新上线一个应用的流程较复杂,需要开通不同账号申请多种资源,存在许多不同且不统一的管理配置方法,较耗时。而我们前面已经看到,这些问题可以通过全面运用标准化云的能力来解决。

新应用创建后也存在其他痛点。例如应用架构可能绑定在一个具体的自建技术体系上,新项目难以灵活选择开发工具和语言。应用的发布效率有待提升。微服务集成测试面临挑战。线上问题排查与可观测性的痛点。大量应用面临繁琐的容量与预算管理流程等效能挑战。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

应用创建后的痛点和应用架构的云原生升级有密切关联。通过应用架构云原生技术的升级结合全面运用云的能力,能够比较好地解决上述痛点。

在此基础上要使阿里巴巴的研发运维走向Serverless化,使研发人员、运维人员聚焦于自身业务,更少关注底层技术。

因此,针对痛点,阿里巴巴的云原生架构升级有几个关键的实践:
第一,全面上云并使用云产品,实现全面运用云的能力
第二,应用架构云原生技术升级,更加充分的和基础设施解耦
第三,研发运维全面走向Serverless化,以效能为首要目标

2.全面运用云的能力
阿里巴巴上云历程可分为三阶段。
2018年前为弹性上云,核心系统在云下,在自己的技术体系内。2016年到2018年的双11通过弹性使用云资源节约了大量成本。

2019年初阿里巴巴提出核心系统全面上云,一年时间实现了核心电商系统全面上云。2019年双11峰值交易背后的技术应用、数据等100%跑在云上,是阿里巴巴的巨大的里程碑。

核心系统全面上云不意味着上云的结束,而是上云的开始。2020年阿里巴巴进入第三阶段,在核心系统上云之后构建云原生架构。云原生架构将全面运用云的能力,充分运用云产品、标准的技术体系重构阿里巴巴的整体技术架构,提升研发运维效率、降低成本、提升稳定性。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

全面运用云的能力意味着计算、存储、网络、容器、应用管理等方面均实现全面运用云的能力来构建。也就是说企业的应用架构和云的界面要发生巨大的变化。

云提供的中间件、数据库、容器、原生产品、函数计算、应用管理、发布等丰富的产品与能力还未被企业充分运用。阿里巴巴重构应用架构的过程中,云原生升级意味着要更加充分地将基础产品与能力替换成使用云的产品与能力。该演进将是对阿里巴巴应用架构的一次巨大升级,将是一个逐渐实现的过程。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

3.应用架构云原生升级
阿里巴巴云原生升级与以往使用虚拟机、裸金属等裸上云的方式区别在于自身业务的应用架构需要随之升级。阿里巴巴云原生化走到了重新构建应用的一步,即应用架构升级,才能全面运用到云的能力,带给企业巨大红利。

阿里巴巴正不断摸索应用架构云原生升级应该采用些何种路径,关键升级有哪些。结合过去多种技术体系总结出了一些相对较好的最佳实践。下图所示为阿里巴巴认为在企业云原生架构升级上云的过程中核心技术架构的演进。
第一,运维编排基于容器与Kubernetes技术。在此基础上,云上提供了Kubernetes相关产品,基于K8S相关产品来构建应用运维体系,是阿里巴巴所认为的关键路径。
第二,服务网格化技术使网络和流量下沉到基础设施,与应用解耦。Mesh化是使应用管理和流量管理等充分运用云的能力,使应用拥有更好的容灾、弹性、可靠性等能力的关键技术路径。
第三,拥抱Serverless化,使应用开发与后端服务解耦,才能够更好地运用云的能力。
第四,轻量化容器使应用能够随时随地迁移,拥有极致弹性。
第五,多种多样的软件有灵活部署的需求,需要应用交付标准化能力。阿里巴巴正主导建设开放的应用标准化模型OAM。OAM使应用定义与运行环境解耦,实现一次定义,多方自动化运行。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

Serverless化基础设施:用户有以下诉求。
第一,无须管理底层服务器资源。
第二,应用做到真正的Autoscaling,即无需进行资源规划,按照流量需求与资源消耗实现弹性。
第三,按需计费。实现该模式能使得应用管理与基础设施解耦。那么怎样的基础设施能够支撑上述三种能力?

以上用户诉求看似简单,却对基础实施提出了更高要求。基础设施需要具有标准容器界面、K8S界面,具有0到无穷的自动伸缩能力,具有QoS保障、安全隔离、计量计费支持与更好的可观测性。也就是说无服务器化的基础设施提供给用户的价值本身也对基础设施提出了更高要求,也正是云擅长并且应该解决的问题,

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

服务网格:阿里巴巴的技术架构演进中许多时候新项目必须选择Java语言。由于后端服务与一些流量管理功能的SDK是成对出现的,过去许多功能只提供Java SDK。
如果将流量管理、服务注册、应用注册等功能下沉到服务网格中,应用就不再依赖语言绑定的基础设施,为应用创新、不同语言的构建带来很好的基础。反之,基础设施如果在流量管理上做一些创新与演进,完全可以在服务网格上进行升级与迭代,而无需应用随之升级与迭代。可以想见应用与基础设施的解耦能够提高研发运维效率。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

应用架构云原生升级历程——应用架构演进:例如下图所示简单的单体架构,包含业务逻辑与中间件。第一步演进是微服务架构,使应用架构的拆分满足快速迭代的需要。拆分为既便于集成测试,又便于小团队快速掌握发布、变更、上线流程的架构。下一步向容器化演进,使拆分好的微服务可通过标准化方式打包、编排,提升运维效率。下一步是Mesh化,从容器化基础上分割下来的部分是原本中间件体系中进行服务治理、流量治理相关的一部分。剥离出业务不关心的一部分代码,使其升级、管理、维护不再限制应用自身的演进。下一步是Serverless化,其中一部分是BaaS化,进一步分割的部分原本是依赖的各种后端服务。为使用后端服务,将代码中耦合的相关SDK或逻辑通过BaaS化剥离出来,与业务解耦。下一步业务逻辑自身或许还可以拆分为运行时与更轻量级的业务逻辑或者细分FaaS化。演进到FaaS化对应用架构的侵入较大,并非适合所有场景。

业务关心的范围从下图最左侧完整的单体架构逐步演进到最右侧的轻量的一部分。该演进过程正是应用架构演进所追求的。一部分偏向前端或者轻量化的应用已经能够很好地应用Function的轻量能力与迭代能力,提升研发运维效率。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg
4.云原生研发运维
基于云的能力与云原生应用架构演进,阿里巴巴重新构建了一个以研发运维人员为中心的研发运维体系。

研发需要进行代码管理、发布应用到线上,线上依赖云的能力,通过工具与云的Open API进行交互,使用云的标准界面、容器界面、数据库界面、大数据界面与云产品进行交互。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

Serverless研发运维:重要演进方向是走向基础设施及代码与GitOps的模式。工程师只需要根据代码、逻辑与配置就能够管理研发运维的生命周期,不关注云产品与底层技术。

下图左侧编写应用代码与配置,构建之后在不同环境中变更配置,然后GitOps引擎能够识别应用镜像与配置等变化,将应用发布到线上。此时应用与后端服务的关联已经在配置中指明。因此该流程中工程师需要关注的就是代码、逻辑与配置。laC & GitOps是让业务研发能够真正聚焦于业务的关键路径。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

传统研发运维模式与云原生研发运维模式差异:传统研发运维模式所进行的操作是在一些工具上按照流程逐步进行,而云原生研发运维模式将其变更为统一的声明式的描述与配置。

就配置管理角度而言,传统研发运维模式中可能有多种产品,研发时除了编写代码还需要到不同产品的控制台进行相应配置。而云原生研发运维模式升级为BaaS化模式,工程师只需要在自己的应用配置中描述所需服务与参数,无需到不同产品中进行管理。此种声明式描述也使日常的手工运维操作转变为无需关注底层服务器与技术的模式。

Serverless研发运维模式能够大幅度简化研发运维在产品生命周期中所需关注的内容。

9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg
总而言之,作为研发人员在传统研发运维模式中原本所关注的代码、不同的后端产品配置、多种需要维护的基础设施、容量和资源等事情,在Serverless研发运维模式中希望简化为只关注代码与以代码形式存储的配置。也就是无需关心其他事情,真正实现Serverless化的研发运维。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

以上是从阿里巴巴的实践来讲希望能够一步一步实现的目标与演进方向。也就是通过全面运用云的能力、通过云原生化的技术升级,使阿里巴巴集团的应用架构演进到充分运用云的能力的架构。最后再结合Serverless化的研发运维使业务研发真正聚焦于自己的业务代码与配置上,无需关心其他内容。

回顾主题,迅捷可靠安全的软件交付是企业数字化转型的驱动力,而云原生时代的研发运维可以真正实现倍增效能,聚焦业务。
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/743838
推荐阅读
相关标签
  

闽ICP备14008679号