云原生架构应该怎么设计?

简介: 阿里巴巴为大量各行各业的企业客户提供了基于阿里云服务的解决方案和最佳实践,以帮助企业完成数字化转型,并积累了大量经验和教训。阿里巴巴将企业的核心关注点、企业组织与 IT 文化、工程实施能力等多个方面与架构技术相结合,形成了阿里巴巴独有的云原生架构设计方法— ACNA(Alibaba Cloud Native Architecting )

ACNA 的概念

阿里巴巴为大量各行各业的企业客户提供了基于阿里云服务的解决方案和最佳实践,以帮助企业完成数字化转型,并积累了大量经验和教训。阿里巴巴将企业的核心关注点、企业组织与 IT 文化、工程实施能力等多个方面与架构技术相结合,形成了阿里巴巴独有的云原生架构设计方法— ACNA(Alibaba Cloud Native Architecting )。这套方法在阿里云官方最近出版的畅销书《阿里云云原生架构实践》中有更详尽的介绍。

(1)ACNA 的作用与目的

1)提升研发团队的能力,实现成本、进度计划、功能和质量等目标。
2)指导研发团队控制研发和运维过程,优化 IT 组织结构并打造更加高效的软件工程流程机制。
3)引导研发团队,在确定云原生架构的成熟度以及定位云原生化方面关键问题的过程中选择改进策略。

(2)ACNA 的实现步骤

1)确定企业当前所处的云原生架构成熟度级别。
2)了解会对改进生产质量和优化过程起关键作用的因素。
3)将工作重点集中在有限的几个关键目标上,从而有效达到优化现有研发流程的效果,进而持续改进产品。

ACNA 是一个“ 4+1 ”的架构设计流程,其中,“ 4 ”代表架构设计的关键视角,包括企业战略视角(ACNA-S1)、业务发展视角(ACNA-S2)、组织能力视角(ACNA-S3)和云原生技术架构视角(ACNA-S4);“ 1 ”表示云原生架构的架构持续演进闭环(ACNA-S5)。4 个关键视角和 1 个闭环的关系(命名为 ACNA-G1 ),如图 1 所示。


图 1 ACNA-G1:ACNA 架构设计流程关系示意图

ACNA 除了是一种架构设计方法,还包含对云原生架构的评估体系、成熟度衡量体系、行业应用最佳实践、技术和产品体系、架构原则、实施指导等。本书的其他章节将分别详细讲解云原生的技术和产品体系、架构原则、最佳实践等方面,这里主要介绍云原生架构的成熟度衡量体系和实施指导两个方面。

ACNA-S1:企业战略视角

任何架构都必须服务于企业战略,云原生架构也不例外!与以往架构的升级有所不同,云原生架构的升级不仅是技术的升级,更是对企业核心业务生产流程(即通过软件开发和运营构建数字化业务)的一次重构,云原生架构升级的意义,如同工业时代用更自动化的流水线替换手工作坊一样深刻。

企业必须清楚业务战略与云 IT 战略之间的关系,即云 IT 战略只是对业务战略进行必要的技术支撑,还是云 IT 战略本身也是业务战略的一部分。通常,高科技公司会对云计算提出更高的需求,比如,通过大量使用云厂商提供的 AI 技术为用户提供智能化的用户体验,以及使用 IoT(物联网)和音视频技术为用户建立更广泛、生动的连接。

实际上,在数字化转型的今天,越来越多的企业认为云 IT 战略应该在企业业务战略中扮演技术赋能业务创新的重要角色,云 IT 已经变成了“ Cloud First ”,甚至“ Cloud Only ”,只是在全部采用公有云还是采用混合云的策略上存在一些差别。基于云 IT 战略,云原生架构可以帮助企业实现泛在接入技术,构建数字化生态系统,还可以从技术的角度确保数字化业务的快速迭代,构建面向用户体验管理的数字基础设施,持续优化 IT 成本,降低业务风险。

ACNA-S2:业务发展视角

阿里巴巴在为企业提供云服务和咨询的过程中发现,数字化业务对技术架构的主要诉求是保证业务连续性、业务快速上线、业务成本控制,以及科技赋能业务创新。业务连续性诉求主要是指数字化业务必须能够为用户持续提供服务,不能因为软硬件故障或 Bug 导致业务不可用,还要能够防止黑客攻击、数据中心不可用、自然灾害等意外事故发生。此外,当业务规模快速增长时,软硬件资源的购买和部署一定要及时,以便企业能够更好地拓展新用户。

市场瞬息万变,相较于传统业务,数字化业务具有更灵活的特性,这就要求企业具备更快的“业务到市场”的能力,包括新业务快速构建、现有业务快速更新等。云原生架构能够深刻理解企业对这些能力的诉求,并在产品、工具、流程等多个层面进行不同程度的处理。需要注意的是,这些诉求同时对组织结构带来新的要求,可能会要求应用进行彻底重构(比如微服务化)。

云计算必须为企业释放成本红利,帮助企业从原来的 CaPex 模式转变为 OpEx 模式,即不用事先购买大批软硬件资源,而是用多少支付多少;同时,大量采用云原生架构也会降低企业的开发和运维成本。有数据显示,通过容器平台技术可使运维支出成本降低 30%。

传统模式下,如果要使用高科技赋能业务,则会经历一个冗长的选型、POC、试点和推广的过程,而如果选择使用云厂商和第三方提供的云服务,则可以更快速地应用新技术进行创新。因为这些云服务具备更快的连接速度和更低的试错成本,且在不同技术的集成上具备统一平台和统一技术依赖的优势。

ACNA-S3:组织能力视角

云原生架构升级是对企业的整个 IT 架构的彻底升级,每个组织在进行云原生架构升级时,必须根据企业自身的情况量体裁衣,其中,组织能力和技术栈处于同等重要的地位。云原生架构涉及的架构升级对企业中的开发、测试和运维等相关人员都带来了巨大的影响,技术架构的升级和实现需要企业中相关组织的积极参与和配合。特别是在架构持续演进的过程中,需要类似“架构治理委员会”这样的组织负责云原生的规划和落地,并不断检查和评估架构设计与执行之间是否存在偏差。

此外,云原生架构的设计还需要考虑组织结构的改变。前面提到一个非常重要的云原生架构原则就是服务化(包括微服务、小服务等),这个领域的一个典型原则就是康威定律,要求企业的技术架构与沟通架构必须保持一致,否则会导致畸形的服务化架构,甚至导致组织沟通成本上升和“扯皮”现象增多的问题。

企业需要考虑的另外一个很重要的问题就是,企业接受改变的程度如何,或者说,企业能够快速进行组织结构调整,并保持业务稳定性的能力如何。云原生架构升级要求大量的企业 IT 人员也进行技术体系的升级和岗位职能的重新设计,这势必导致原本处于稳定和舒适区的技术领导者和底层员工必须破而再立,所以组织改变的风险不得不慎重考虑。

ACNA-S4:云原生技术架构视角

从技术架构的维度看,ACNA 认为架构维度包含七个重要的领域,具体说明如下。

(1)服务化能力
用微服务或小服务构建业务,分离大块业务中具备不同业务迭代周期的模块,业务以标准化 API 等方式对模块进行集成和编排;服务间采用事件驱动的方式集成,减少相互依赖;通过可度量建设不断提升服务的 SLA(Service Level Agreement,服务等级协议)能力。

(2)弹性能力
利用云资源的特性,根据业务峰值和资源负载情况来自动扩充或收缩系统的规模,业务不再需要进行容量评估、按量付费。

(3)无服务器化程度
在业务中,应尽量使用云服务,而不是自己持有第三方服务,特别是自己维护开源软件的模式;应用的设计应尽量变换成无状态模式,把有状态的部分保存到云服务中。进一步采用 Serverless 技术体系重构应用运行时,让软件的底层运维逐渐“消失”。

(4)可观测性
IT 设施需要得到持续治理,任何 IT 设施中的软硬件发生错误后都要具备快速修复的能力,以避免影响业务,这就需要系统具备全面的可观测性,内容涉及对传统的日志方式、监控、APM、链路跟踪、服务质量(Quality of Service,QoS)度量等多个方面。

(5)韧性能力
韧性能力除了包括服务化中常用的熔断、限流、降级、自动重试、背压等特性之外,还包括高可用、容灾、异步化等特性。

(6)自动化水平
关注开发、测试和运维三个过程的敏捷性,推荐使用容器技术自动化软件构建过程、使用 OAM 标准化软件交付过程、使用 IaC(Infrastructureas Code ,基础设施即代码)和 GitOps 等自动化 CI/CD 流水线和运维过程。

(7)安全能力
关注业务的数字化安全,在利用云服务加固业务运行环境的同时,采用安全软件生命周期开发,使应用符合 ISO27001、PCI/DSS、等级保护等安全要求。安全能力是基础维度,要求在架构评测中关注,但它不会参与评分。

ACNA-S5:架构持续演进闭环

云原生架构演进是一个不断迭代的过程,每一次迭代都要经历从企业战略、业务诉求到架构设计与实施这样一个完整的闭环,整体关系(命名为 ACNA-G2)如图2所示。

图 2 ACNA-G2:架构持续演进闭环

下面就来详细介绍架构持续演进闭环的关键输入和实现过程。

1. 关键输入

1)企业战略视角(ACNA-S1):包括数字化战略诉求、技术战略(特别是云战略)诉求、企业架构诉求等,建议量化描述创新效率提升百分比、IT 成本降低值、风险成本降低值等。

2)业务发展视角(ACNA-S2):包括新业务(特别是数字化业务)的技术诉求、BI/AI(商业智能 / 人工智能)诉求、IoT(物联网)诉求、用户体验诉求等,建议量化描述业务迭代速度提升值、用户体验改善百分比、业务开发效率提升百分比等。

2. 关键过程

1)识别业务痛点和架构债务(ACNA-S5-P1):明确并量化业务痛点(比如,云上云下一套部署、端到端的可观测性等);技术债务依据各企业的具体情况而有所不同,通常包含容器化改造、CI/CD 完善、微服务改造、老应用下线、遗留系统集成方案、非 x86 架构的转移等。

2)确定架构迭代目标(ACNA-S5-P2):建议每次迭代不超过 1 年,并通过 OKR(ObjectiveandKey Result,目标与关键成果法)的方式,在目标中描述本次迭代的业务目标,在关键成果中量化业务价值和技术价值。注意,在确定迭代目标的时候,要充分识别架构升级的利益相关者(Stakeholder)及其价值诉求,避免出现项目很成功但是得不到业务方认同的情况。

3)评估架构风险(ACNA-S5-P3):风险和价值往往是一对矛盾体,不要因为风险大而不做云原生架构升级,也不要因为迫切升级而忽视风险,建议在风险和价值间获得平衡。P3 阶段的重点是识别风险类别和风险点,它们会根据企业所在行业和企业自身特性的不同而不同。风险类别通常包括组织风险、市场风险、技术风险、设计实现风险、实施落地风险、运维风险、IT 文化风险、财务风险、数据风险、合规风险等。

4)选取云原生技术(ACNA-S5-P4):P4 阶段需要从云原生技术栈中选取在本次迭代中需要采用的云原生技术,也需要把采用该技术可能造成的风险和带来的价值放在首位考虑。

5)制订迭代计划(ACNA-S5-P5):P5 阶段需要充分考虑是否每个里程碑都能够得到各参与方的认同,一定要避免先闭门开发然后期望产出一个高价值产品的情况,因为像云原生架构升级这样的项目,需要与各参与方深度合作,且在执行过程中很可能出现改变计划和目标的情况。

6)架构评审和设计评审(ACNA-S5-P6):P6 阶段作为改变企业整个生产流水线的重要架构升级,需要在技术上进行架构评审和重要设计评审,让重要设计在各参与方之间得到认同,这也是减少整体风险的重要手段。

7)架构风险控制(ACNA-S5-P7):在 P3 阶段确定了风险点之后,就需要马上设定这些风险的监控方法和预警阈值,并在架构升级的过程中不断监控这些阈值的变化情况,做到实时风险评估和预警。整体而言,在整个实施过程中,企业需要建立“识别—监控—评估—预警—改进”的风控闭环。

8)迭代验收和复盘(ACNA-S5-P8):为了让云原生架构升级的下一个迭代取得成功,即使本次迭代已经成功验收,也需要团队客观、深入地对本次迭代的得失进行复盘,特别是在组织能力、项目和产品的管理能力等软技能。

云原生架构成熟度模型

云原生架构成熟度模型是一种能够帮助企业找到当前软件架构与成熟的云原生架构之间的差距,从而在后续的架构优化迭代中进行针对性改善的评估模型。ACNA 参考 CMM(Capability Maturity Model,能力成熟度模型)的定义,从主要的架构维度定义了云原生架构的成熟度模型。我们需要注意到,ACNA 的云原生架构成熟度评估模型不会帮助企业从通用技术架构、应用架构或信息架构的维度进行评估,因此它并没有帮助实施者梳理架构的核心利益相关者和架构交付合同。同时,评估模型本身也没有对团队核心人员技能以及组织的流程、文化和流水线建设进行评估,而是从基于云的现代化应用这 一特定的软件技术架构进行评估。虽然这样的评估范围相对较小,但是更专业,可操作性更强。

此外,ACNA 云原生架构成熟度模型的评估对象不是企业或架构实施人员,而是某个具体软件所采用的架构。因此,对于一个企业而言,可能部分软件的评估结果是零级(初始级),部分软件的评估结果是中级(发展级),这完全取决于每个软件自身的架构情况。

6 个评估维度

ACNA 云原生架构设计共包含 6 个关键架构维度(Service + Elasticity + Serverless + Observability + Resilience + Automation,简写为 SESORA),在此我们先定义关键维度的成熟度级别,如图 3 所示(命名为 ACNA-T1)。


图 3 ACNA-T1:云原生架构成熟度模型:关键指标维度

结合云原生架构的四个不同成熟阶段,我们定义了整个架构的成熟度模型,如图 4 所示。

图 4 云原生架构成熟度模型

评估模型的实施指导和工作表

评估模型实施指导的整个工作流程(命名为 ACNA-T2)如表 5 所示。

表5 ACNA-T2:云原生架构评估模型实施指导的工作流程

为了统一 ACNA 评估模型的产出,我们给出了统一的《云原生架构评估表》(命名为 ACNA-T3 ),以让用户对结果有一致的认知,如表 6 所示。

表6 ACNA-T3:云原生架构评估表

服务化能力的评估

服务化能力的评估(命名为 ACNA-T4-1)如表 7 所示。

表 7 ACNA-T4-1:服务化能力评估表

弹性能力的评估

弹性能力的评估(命名为 ACNA-T4-2)如表 8 所示。

图8 ACNA-T4-2:弹性能力评估表

无服务器化程度的评估

无服务器化(Serverless)程度的评估(命名为 ACNA-T4-3)如表 9 所示。

表9 ACNA-T4-3:无服务器化程度评估表

可观测性的评估

可观测性的评估(命名为 ACNA-T4-4)如表 10 所示。

表10 ACNA-T4-4:可观测性评估表

韧性能力的评估

韧性能力的评估(命名为 ACNA-T4-5)如表 11 所示。

表11 ACNA-T4-5:韧性能力评估表

自动化能力的评估

自动化能力的评估(命名为 ACNA-T4-6)如表 12 所示。

表12 ACNA-T4-6:自动化能力评估表

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

360数科知微实验室发布反诈报告:揭秘黑灰产数据流转真相

近日,360数科旗下信息安全知微实验室通过反诈分析研究,追踪溯源网络黑灰产数据非法交易链条,发布系列反诈研究《黑灰产数据流转分析报告》(以下简称“报告”)。报告称,目前在网络黑产平台流转的数据主要来源…

【详谈 Delta Lake 】系列技术专题 之 Streaming(流式计算)

简介: 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 的系列技术文章。众所周知,Databricks 主导着开源大数据社区 Apache Spark、Delta Lake 以及 ML Flow 等众多热门技术,而 Delta Lake 作为数据湖核心存储引擎方案给企业带来…

jdbc驱动程序_JDBC操作数据库的步骤

package mysql;import java.sql.Connection;import java.sql.Driver;import java.sql.DriverManager;/** JDBC操作数据库的步骤* 1.注册驱动* 告知JVM使用的是哪一个数据库驱动* 2.获得连接* 使用JDBC中的类,完成对Mysql数据库连接* 3.获得语句执行平台* 通过连接对…

一睹为快 | 施耐德电气全生命周期智能制造解决方案亮相线上工博

作家瓦科拉夫斯米尔在《国家繁荣为什么离不开制造业》曾说过:“制造业始终是技术创新的基本源泉,也是经济增长的原动力。” 反过来看,技术创新该如何推动制造业的发展,从而促进经济增长呢? 12 月 1 日,在…

教程系列——用模板快速生成《客户意见反馈表》

简介: 【开箱即用的模板使用系列教程】将会手把手教给大家如何快速启用钉钉宜搭提供各类模板。今天第二讲,介绍《客户意见反馈表》的模板启用。 【开箱即用的模板使用系列教程】将会手把手教给大家如何快速启用钉钉宜搭提供各类模板。今天第1讲&#xff…

重温设计模式之 Factory

简介: 创建型模式的核心干将,工厂、简单工厂、抽象工厂,还记得清么,一文回顾和对比下。 作者 | 弥高 来源 | 阿里技术公众号 前言 创建型模式的核心干将,工厂、简单工厂、抽象工厂,还记得清么&#xff0c…

云端上的字节,引擎火力全开

作者 | 贾凯强出品 | CSDN云计算(ID:CSDNcloud)十二月,在产业最震撼的一条消息莫过于字节跳动旗下火山引擎终于出云产品了。字节跳动的业务早已跑在云上,这早已是行业公开的信息。可是这朵云究竟有多大呢?在…

收件服务器信息,收件服务器配置信息

收件服务器配置信息 内容精选换一换SAP HANA运行在SAP HANA云服务器上。需要根据部署场景,创建一台或多台HANA云服务器,用于部署SAP HANA软件。请参见方案和数据规划相关章节,确定HANA云服务器数量及相关规划信息。在集群场景下创建多台HANA云…

Nacos 2.0 升级前后性能对比压测

简介: Nacos 2.0 通过升级通信协议和框架、数据模型的方式将性能提升了约 10 倍,解决继 Nacos 1.0 发布逐步暴露的性能问题。本文通过压测 Nacos 1.0,Nacos 1.0 升级 Nacos 2.0 过程中,Nacos 2.0 进行全面性能对比,直观…

深入浅出讲解MSE Nacos 2.0新特性

简介: 随着云原生时代的到来,微服务已经成为应用架构的主流,Nacos也凭借简单易用、稳定可靠、性能卓越的核心竞争力成为国内微服务领域首选的注册中心和配置中心;Nacos2.0更是把性能做到极致,让业务快速发展的用户再也…

交换机是如何对数据包打标签去标签的_条形码软件如何在标签纸上套打可变条码...

在制作商品标签时,通常会遇到标签纸上已经有部分内容,需要我再添加打印一些对应的信息(如下图),那么这种情况下,如何比较简单的在合适位置上打印可变条码呢,下面我们就来详细看一下在中琅条形码软件中套打可变条码的操…

学不动也要学!ViewPager2 新特性

作者 | tech-bus.丹卿来源 | 程序员八十前 言浏览Android开发者官网的时候,发现Google竟然曾经悄悄推出过一个新的控件:ViewPager2;从名字上看就知道是ViewPager的升级版本,看了下推出这个控件的时间,早在2019年2月7号Google就已经发布了&…

方舟手游服务器受人无限物资,方舟生存进化BUG无限刷物资方法 | 手游网游页游攻略大全...

发布时间:2015-10-23壳是铁房子必须的材料,今天小编为大家带来一天1000壳的方法,不过高收益伴随着高风险,大家一定要小心,来看这篇熔岩洞生存攻略以及刷壳方法把. 右下角坐标(75 85 ...标签:游戏攻略 游戏秘籍 方舟生存进化发布时间:2016-04-…

闲鱼如何保障交易链路质量

简介: 闲鱼交易质量自动化 背景 闲鱼作为一款垂直交易社区APP,拥有复杂多样的业务场景:涉及c2c、回收寄卖、租房租赁、见面交易、验货担保等,复杂多变的交易模式。比如验货流程:涉及39个状态机节点横跨10应用系统涉及…

DevOps发布策略简介

简介: DevOps追求更短的迭代周期、更高频的发布。但发布的次数越多,引入故障的可能性就越大。更多的故障将会降低服务的可用性,进而影响到客户体验。所以,为了保证服务质量,守好发布这个最后一道关,阿里逐步…

存储引擎 boltdb 的设计奥秘?

作者 | 奇伢来源 | 奇伢云存储etcd 的存储etcd v3 是使用的持久化存储来存储它的 kv 数据,etcd 存储的是非常核心的元数据信息,所以最重要的是稳定。使用的是 boltdb 。下面说道说道这个 boltdb 。boltdb 是什么?boltdb 是一个非常出名的存储…

提升你的职场竞争力——“低代码开发师”来了!

简介: 最近,钉钉发布了低代码开发师能力图谱,引发业界的广泛关注 。现在低代码开发师(初级)认证已经启动。 最近,钉钉发布了低代码开发师能力图谱,引发业界的广泛关注 。 所谓的低代码开发其实…

mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...

《饮食男女》开头说:“人生不能像做菜,把所有的料都准备好了才下锅。”但做大数据挖掘不一样,MapReduce 不同于人生,一定要把准备工作做好了,才能顺利运行后面的步骤。如果你的 HiveQL 代码没毛病,却一运行…

数字化转型的路上,手握一张地图,但路还得自己走

简介: 本文作者来自于中国人寿保险股份有限公司研发中心,对企业数字化转型、云原生实践有比较资深的经验。以下内容整理自作者对最新出版的《阿里云云原生架构实践》的读后感。 作者|肖晟 ​ 本文作者来自于中国人寿保险股份有限公司研发中…

tp 数据库查询排序_怎么进行数据库分库分表?

一,数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对…