1、?+86 755 28780808?2021?目录CONTENTS01 企业应用现代化综述02 基础设施现代化,将企业从资源运维中解放出来03 架构与设计现代化,让应用高内聚、低耦合、高可用与弹性04 开发与运维现代化,革新研发模式,提升软件交付效率1.1 应用现代化是高频竞争时代企业的必然选择1.2 应用现代化典型特征及商业价值1.3 应用现代化让敏捷贯穿应用全生命周期2.1 贴近业务、提升体验:构建用户云基础设施新范式2.2 泛在计算、统一计算:让各类应用有机协同3.1 微服务化:让应用高内聚、低耦合、HA、弹性3.2 Serverless:基础设施不可见,简化开发和运维3.3 函数即服务
2、:聚焦业务逻辑,高效开发免运维3.4 应用托管:实现 Serverless 化极简应用托管3.5 高可用与弹性:让应用运行在灵活可靠的环境下4.1 开发运维的挑战:TTM 长、安全风险增加4.2 DevSecOps:软件工程发展的新趋势4.3 企业级开发框架:应用现代化的代码基座4.4 开发现代化:充分发挥云原生自动化优势4.5 协同现代化:构建人人/人机的高效协同4.6 可信开发:让应用“天生安全,健康成长”4.7 Low/No Code:积木式开发,从 CICD 到持续组装4.8 自动化测试:构建 7x24 小时大规模自动化测试工厂4.9 立体智能运维:降低运维成本,全面运维0202040
3、910111212161617171819202122060605 治理与运营现代化,立而不破,最大化新老应用的融合价值06 展望07 优秀实践5.1 微服务治理:应用现代化治理的必由之路5.2 统一 API 治理:汇聚服务,共建生态5.3 融合集成:云原生应用融入传统企业 IT 架构的最佳实践5.4 构建企业全联接能力,充分释放多元数字资产价值5.5 多云及边云协同治理:企业应用治理的新刚需5.6 构筑面向协作的全栈解决方案,做可信世界的基石6.1 可信软件6.2 应用从 API 调用驱动连接走向事件驱动连接6.3 安全原生:安全内置在云原生技术中7.1 中经社的应用现代化上云记7.2 某物
4、流企业“快递”携手华为云 DevCloud,实现应用敏捷创新242526292929313232333501企业应用现代化:让企业应用实现全面敏捷,重塑商业价值企业应用现代化综述数字化浪潮席卷而来,万物数字化已成为必然趋势,未来每一家企业都将是软件企业。IDC 预测,到 2025 年,数字经济将催生出超过 5 亿个新应用/服务,90%的应用程序将是云原生应用程序。用户需求的爆炸式增长、市场环境的瞬息万变引发高度不确定性。据现有数据预测,到 2025 年,7%的企业每天都将发布新的软件版本,以软件高速迭代为特征的高频竞争时代已经到来,敏捷将成为企业应对竞争的制胜因素。未来的企业只有快速响应市场的
5、瞬时变化、加速应用迭代创新,才能形成差异化竞争力,从而适应、跟上甚至引领数字时代。高频竞争时代下,企业该如何破局?以云原生为代表的应用现代化理念为企业提供了转型思路,是企业面向未来的利器。基于20年的数字化实践和数百万企业客户的服务经验,华为云结合业界先进的应用现代化理念,提炼出应用现代化的典型特征,同时以“四个现代化”为核心,摸索出了一套行之有效的最佳实践方法论。藉此,华为云推出企业应用现代化:让企业应用实现全面敏捷,重塑商业价值白皮书,与业界分享华为云对应用现代化的深刻理解,与业界共享华为云在用户侧积累的丰富实践经验。全篇共计 2 万多字并整理成册,以期携手各方共同推动云计算行业的开放与发
6、展。01企业应用现代化综述02企业应用现代化综述企业应用现代化:让企业应用实现全面敏捷,重塑商业价值正如综述所言,未来的企业都将会是软件企业,而软件迭代的敏捷性将成为未来企业构筑自身持续竞争力的决定性因素,也是企业在高频竞争时代中能够持续积累竞争优势的重要基础。然而现阶段的用户应用大多仍建立在传统 IT 技术之上,应用架构耦合性强、复杂度高,导致技术债务重、部署速度慢等问题日益凸显;同时开发模式落后,存在部门墙严重、开发运维割裂的问题,致使研运协同困难、发布周期长且不可控。如何快速感知用户的多元需求,加速应用敏捷提升产品的供给力,以便在日益激烈的竞争环境中获取优势身位,成为企业思考的主要问题。
7、应用现代化建设无疑是当下解决应用敏捷的最佳方案。在用户侧,历经多年建设,以资源为中心的大规模业务云化已接近尾声,IT 运维、部署和扩容等基本问题取得一定程度的优化,但应用与云服务的结合度尚浅。伴随云上服务的不断完善与成熟,应用要进一步提升敏捷效能,必须强化与云能力的内生结合,通过技术架构与应用架构的现代化改造建设,为新老应用根植云能力,实现应用的敏捷效能提升。Forrester 报告指出,67%的企业认为当务之急是要对传统应用进行现代化改造,应用现代化成为业界焦点和应用发展的趋势。企业转型掣肘于传统应用技术陈旧、开发模式落后等问题,应用敏捷的需求被提升至空前高度,围绕应用的降本增效和技术融合创
8、新成为刚需。应用现代化,作为实现应用敏捷的最佳实践,应运而生。AWS认为构建现代化应用需要重新思考应用的架构模式、运维模型和软件交付流程。应用现代化在Ownership文化构建、微服务化、数据管理、轻量化计算、敏捷开发、运维模式、程序治理等方面与传统模式存在显著差异,现代化应用具备更安全、更可靠、更弹性、更敏捷等优势。谷歌认为,应用现代化须实现基础架构与应用解耦、各个团队解耦、开发与运维解耦、安全与开发和运维解耦等。应用现代化分三步走:第一步列出全量应用并定位核心部分,充分理解核心应用功能;第二步合理化应用程序,根据企业的发展战略重新梳理、组织应用;第三步运用先进数字化技术解耦应用架构,灵活组
9、合不同应用以解决企业关键需求。微软认为应用现代化的核心在于从应用模式、开发实践、技术选择三大方面与传统应用拉开差距,为用户提供切实价值。在应用模式方面,充分利用云平台、云服务的优势;在开发实践方面,采用 DevSecOps 进一步提高效率加快创新成果投放;在技术选择方面,灵活选择最适合的开发语言、框架和工具。华为基于 20 年的数字化实践和服务数百万企业客户的经验,认为应用现代化是以软件的敏捷交付为导向(基础),实现贯穿基础设施到应用的认知重塑、架构升级和技术跃迁。应用现代化需从底层基础设施、技术架构、研运管理、统一治理等视角出发,构建自下而上的完整敏捷链路,从而赋予企业实时洞察与快速响应个性
10、化、场景化、定制化需求的能力。在唯快不破的现代化竞争大环境下把握先发优势,保持核心竞争力,华为总结了现代化应用的典型特征:1.1应用现代化是高频竞争时代企业的必然选择1.2应用现代化典型特征及商业价值03企业应用现代化:让企业应用实现全面敏捷,重塑商业价值企业应用现代化综述极致弹性:采用开箱即用、极致弹性的云原生基础设施,应用的算力可随业务量变化动态调整,保障高并发、大流量场景下的业务连续性。高可用:通过现代化技术架构对业务应用进行解耦与重构,为应用注入双活、容灾能力,为用户提供 724 小时的高可用服务。内生安全:将安全的标准和规范内置于应用开发、运行、运维的全流程中,并通过工具进行自动化实
11、施和验证,全面提升应用安全性。高效敏捷:技术与业务架构双敏捷,简化应用全生命周期流程,提升应用发布频率,实现应用的敏捷迭代以适应快速变化的用户和市场需求。融合治理:新老应用并存演进、跨云跨域连接,践行兼容并蓄的应用治理和运营策略,保障应用的持续演进,使能数字资产安全治理运营。实现以上述特征为标志的应用现代化,企业就走上了一条以业务为中心的应用敏捷道路,重塑了应用的商业价值:资源池化管理,统一调度,按需使用,按量分配,显著降低现代化应用的资源管控难度,提高资源利用率。应用架构解耦有助于研发效率与质量的提升,使企业的业务“触角”更丰富、“感官”更敏锐,为产品创新、商业模式创新打下数字化基础。提升从
12、底层基础设施到上层应用全链路的自动化水平与安全性,将 TTM(Time To Marketing,产品上市周期)从数月压缩到数小时,直接缩短了企业与用户的时间、空间距离。通过一套技术架构进行全方面治理,复用已有资产,实现老应用改造与新应用建设的协同管理,统一技术栈,减轻用户使用的心智负担。资源高效深度解耦全面敏捷立而不破04企业应用现代化综述企业应用现代化:让企业应用实现全面敏捷,重塑商业价值以应用为中心,通过“应用现代化”使能企业敏捷商道图 1:应用现代化践行应用的现代化建设应充分利用云计算平台的综合优势,通过实施四个维度的升级改造,即基础设施现代化、架构设计现代化、开发运维现代化和治理运营
13、现代化,让新、老应用满足现代化要求,最终实现应用全生命周期的敏捷。借助一个或多个云计算平台的能力供给,企业便可构建自身的改造能力,而不需独立实现或能力“拼凑”,因此大幅降低设计、实施和运维的难度和成本。基础设施现代化,节约成本减轻用户使用的心智负担。通过传统设施的云原生化改造,实现基础设施的高可用与弹性,降低运维成本,把开发运维人员从重复繁琐的资源调配中解放出来,投入到有益于业务发展的工作。架构设计现代化,解耦可复用功能与业务逻辑。通过改造应用架构,使用微服务架构、Serverless(无服务器)架构等技术,将应用拆分为能独立快速发布的不同模块,使开发运维人员能聚焦于应用和创新工作。开发运维现
14、代化,提升研运过程的自动化与安全性。通过建设以 DevSecOps 为代表的开发运维安全一体化能力,让发布跟上开发的速度,让安全内置在开发运维中。治理运营现代化,整合全域新老资产推动架构可演进。通过全域融合集成、应用资产统一治理运营等技术实现应用的治理运营现代化,构建可平滑演进的应用架构,实现新老资产的价值最大化。?1.3应用现代化让敏捷贯穿应用全生命周期05企业应用现代化:让企业应用实现全面敏捷,重塑商业价值基础设施现代化,将企业从资源运维中解放出来对处于数字化转型初期的企业来说,IT 基础设施尚未云化或仅有部分云化,要想借助应用现代化实现应用敏捷,基础设施现代化是第一步。基础设施现代化推动
15、企业由“面向云迁移应用”的阶段演进到“面向云构建应用”的阶段,即由“以资源为中心”演进到“以应用为中心”的云原生基础设施阶段,逐步改造现有基础设施,享受云带来的敏捷性。基础设施现代化的本质,是尽可能借助云平台的大规模计算资源调度和运维能力,将开发运维人员从繁琐的资源调配和维护工作中解放出来,聚焦于更有价值的开发和设计工作。02基础设施现代化,将企业从资源运维中解放出来06基础设施现代化,将企业从资源运维中解放出来企业应用现代化:让企业应用实现全面敏捷,重塑商业价值华为云的基础设施基于“分布式云”X“云原生”,并不断打磨和持续演进。在擎天架构的加持下,通过高效、敏捷、开放的云原生基础设施将智能贯
16、穿业务全流程,并通过分布式云基础设施,将云延伸到业务所需位置。华为云致力打造云基础设施的新范式,帮助各行各业快速实现全面云化和全栈智能。华为云分布式云基础设施具备如下四个关键特点:“一张分布式网络”帮助客户从 IDC 到公有云环境的便捷和安全接入,实现企业多种组网环境间的高效互通。通过 VPC云边内网互通,客户机房本地应用可以无缝从内网访问中心云的多种高阶服务,同时中心云的 10+云服务可分钟级按需发放到边缘。“一致的运行环境”包括了开发态和运行态两个过程的一致性。开发环境需要支持用户一次开发,一次发布,全网可部署;运行和部署环境需支持用户任一地部署,全网可访问。华为云分布式云基础设施基于擎天
17、架构,提供了一致的 API、一致的工具、一致的实例以及一致的规格,构建无差别体验。“一套管理体系”是企业精细化管理的根基。随着云化深入,企业通常存在多层级组织结构和多地域的部署位置,从而产生多维条件权限控制、统一的资源统筹和业务管理的诉求。华为云基于自身实践推出了一套管理体系,在分布式云中实现了中心 Region 和边缘的统一治理,助力企业提高治理效率。“一朵分布式云”能够将云基础设施从中心延伸到边缘,满足各种业务场景的诉求。借助华为云瑶光分布式云操作系统,可对多地云基础设施进行统一调度、管理、分发,真正做到一朵分布式云覆盖全场景。去年,华为云首次发布了云原生 2.0 的理念和解决方案,目的是
18、要帮助企业从容应对从“ON Cloud”到“IN Cloud”的云化演进趋势,构筑全栈云原生能力。之后又升级发布分布式云+云原生解决方案,将全栈云原生能力通过分布式云延伸到业务需要的每个地方,让每个企业都成为“新云原生企业”。云原生 2.0 的理念是以应用为中心、以容器为核心建设云原生基础设施。CCE Turbo 是华为云在云原生基础设施领域一个革命性的升级,实现了计算、网络、调度的全方位加速,助力开发者在大数据、AI、HPC 等业务场景中加速应用创新,更好的应对高性能、低时延、高效资源利用率的业务诉求。在计算加速方面,为解决集群资源利用率低、服务器性能无法完全发挥的问题,华为云基于擎天架构的
19、软硬协同能力推一张分布式网络满足便捷安全接入一致运行环境构建无差别体验一套管理体系应对精细化企业治理一朵分布式云实现全场景覆盖2.12.2贴近业务、提升体验:构建用户云基础设施新范式泛在计算、统一计算:让各类应用有机协同07企业应用现代化:让企业应用实现全面敏捷,重塑商业价值基础设施现代化,将企业从资源运维中解放出来出了容器卸载技术并应用到 CCE Turbo 中。目前,华为云容器服务将网络、引擎和存储的管理面卸载到 SDI 卡中,让集群资源 100%用于业务处理,为客户节约 30%的资源成本。同时,通过持续优化容器引擎以减少内存消耗,提升容器的启动性能和 Cgroup 管理能力,最终实现容器
20、集群整体性能提升 40%。在网络加速方面,华为云基于云原生2.0“IN Cloud”的理念,打造了云原生网络2.0。基于Trunkport技术全面升级网络,帮助开发者实现 30 秒 1000 容器的极速扩展能力,解决了大流量场景下的网络连通速度慢、转发效率低的问题。在安全性方面,华为云基于弹性网卡的 Trunkport 能力,实现了容器级的网络安全组,相比业界容器共享节点的安全组,不仅提升了容器的安全性,也提升了大业务流量下容器网络的转发效率,减少了网络阻塞。同时,为方便用户在 CCE 内直接为 Pod 关联安全组,CCE 搭建了容器与 VPC 安全组间的桥梁,轻松实现各类复杂安全隔离诉求,简
21、化安全访问控制的规划。在应用调度方面,CCE Turbo 通过 ioaware 等调度算法优化 AI 训练作业执行时间,将 Tensorflow 的执行时间降低30%;同时,通过队列、alloc_set 等策略支持大数据作业,实现面向应用的智能调度。后续,华为云将在云原生方面持续投入,引领云原生发展趋势、为云原生与各产业的结合开创无限可能,用云原生加速企业业务的创新和升级。08架构与设计现代化,让应用高内聚、低耦合、高可用与弹性企业应用现代化:让企业应用实现全面敏捷,重塑商业价值基础设施现代化,解决了云的到达路径问题,通过包含中心云、边缘云、专属云等的分布式云让云基础设施无处不在。与此同时,随
22、着各行各业的数字化转型走向深水区,企业应用架构和云资源供给模式也将发生深刻变革。“架构现代化”作为数字化转型的基础工作和必由之路,也涌现出了大批优秀方法和实践,微服务化、Serverless、高可用与弹性就是其中的代表。典型的应用架构通常是一个从单体到微服务再到 Serverless 的演进过程,微服务架构是当前应用架构的主流,预计未来将演进到 Serverless,同时二者将长期共存。未来的应用将构建在分布式云之上,实现一次构建,任意地方运行(Build Once,Run Anywhere),应用的高可用与弹性将成为基本质量属性。03架构与设计现代化,让应用高内聚、低耦合、高可用与弹性09企
23、业应用现代化:让企业应用实现全面敏捷,重塑商业价值架构与设计现代化,让应用高内聚、低耦合、高可用与弹性图 2:未来应用的典型架构当前,企业的应用架构存在以下痛点:维护老旧应用和单体应用,存在技术升级难、应用运行缓慢、ISV 标准化难以管理等问题,无法满足数字化转型和新业务场景快速扩张的诉求。互联网应用的微服务化相对成熟,但亟需新的更灵活的新型架构应对灵活多变的业务场景,比如分布式事务和流量风暴等。对应的,应用架构也经历了几个阶段的演进:一开始应用采用客户端/服务器以及浏览器/服务器模式,后端基本以单体架构为主;后来为了解决多系统集成问题,演进到服务化架构;近年来,因为云计算普及和多领域业务爆发
24、,对应用的敏捷性和扩展性提出了更高的要求,微服务架构随之而来。从 2012 年 Heroku 发表的“十二要素应用宣言”,到 2013 年云原生概念提出,到 2017 年 Pivotal 对云原生的定义,以及最新的 CNCF 官方对云原生的定义:“云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API”,在这个演进过程中,微服务是一直不变的基调,是应用现代化架构的表现形式。?3.1微服务化:让应用高内聚、低耦合、HA、弹性10架构与设计现代化,让应用高内聚、低耦合、高可用与弹性企业应用现代化:让企业应用实现全面敏捷,重塑商业价值企业需要快速交付能力来应对日益增多的新场景、新业
25、务,微服务是面向变化的架构,是已经被实践证明行之有效的敏捷交付模式。对业务进行领域模型划分,把单一系统拆分为多个微服务,化整为零、化繁为简。组织架构按业务调整,开发团队可以根据业务特点、开发人员的技能灵活的选择不同开发语言、不同的框架进行快速开发。微服务间松耦合,通过标准的契约 API 进行通信,可以按独立的节奏进行迭代演进。按照 12 要素原则,微服务作为无状态的进程执行,对于有状态应用可以把状态数据外置到 Redis 等存储中,这样就可以做到按需水平扩容/缩容,以应对业务流量的突发变化。微服务多实例部署,实例间节点,机房反亲和,实现单元化,AZ 多活,满足容灾高可靠。利用微服务框架提供的负
26、载均衡、限流降级、熔断容错等治理能力,实现系统对于错误、异常、恶意攻击的高韧性保护。结合动态配置、监控告警和调用链等云原生能力,提供可治理、可观测的运维能力,从而保证服务 SLA。从 2006 年云计算初现端倪,到计算虚拟化、网络虚拟化、Openstack 等技术层出不穷,第一个阶段主要改变的是基础设施管理的工作方式,从繁重的机房建设和维护工作中解放出来。云厂商提供虚拟服务器和网络等资源的供给服务,让用户将应用从物理服务器迁移到虚拟服务器上,实现资源云化,从而降低资源管理成本。随后,Docker容器、Kubernetes等技术逐步流行,并出现了如Spring-Cloud、Dubbo等基于云服务
27、的云原生开发框架,云厂商通过提供容器、代码控制管理、编译流水线、自动化测试、中间件等工具,实现应用环境标准化、实践 DevOps、简化应用迁移与托管,提高编排和运维效率。2015 年,AWS 发布 Lambda 标志着 Serverless 理念的 FaaS(Function-as-a-Service)函数计算模式出现,旨在屏蔽服务端的复杂配置和运维,简化云开发以聚焦业务逻辑,改变开发人员的工作方式。Serverless 理念让应用构建与云服务深度结合,以发挥云平台弹性伸缩、按需计费、免运维等能力,实现松耦合、快速上线、高性价比的现代化应用,从而降本增效。2019 年,各大云厂商开始积极拥抱
28、Serverless 理念,并推出多样化的产品,总体而言,Serverless 应该具备的三个基本要素:提供一个小颗粒或大颗粒的抽象,隐藏服务器以及编程和操作服务器的复杂性。提供现收现付成本模型,而不是基于预订的模型,因此闲置资源不收费。自动、快速和无限扩展资源,以紧密匹配需求,从零到几乎无限。一方面,Serverless 为用户屏蔽云端复杂度,简化云应用开发、托管和运维,提高应用开发上线效率,提供资源按需计费模型,降低应用部署和运维成本;另一方面,云厂商通过 Serverless 更灵活的管理闲置资源,提升系统资源利用率,实现用户和云厂商双赢。面向变化,敏捷交付服务 SLA:高韧性、高可靠3
29、.2Serverless:基础设施不可见,简化开发和运维11企业应用现代化:让企业应用实现全面敏捷,重塑商业价值架构与设计现代化,让应用高内聚、低耦合、高可用与弹性说起函数即服务,最为知名的即AWS推出的Lambda服务,它的出现深远影响了现代化应用的开发交付及资源供给模式。主流云厂商也都陆续推出了各自对应的云服务,如 Azure 的 Cloud Functions、阿里云的 FC、华为云的 FunctionGraph以及腾讯的 SCF 等。函数服务通常来说,比较适用于以下几类场景:类型一:单用途无状态类。一般是单一用途,无状态的应用,用函数的方式开发可以极大简化应用开发流程,实现小时级交付。
30、类型二:事件驱动类的应用。这是函数最典型的一类应用,其特点是“事件驱动”+“函数计算胶水层”,由函数来实现对应胶水层业务逻辑。类型三:弹性伸缩类应用。如视频转码、视频直播、热点事件推送等,这类应用的特征是通常无法预知流量大小,需要基础设施能够做到底层资源无感,自动的快速弹缩而不影响业务层的处理。其带来的业务价值可以总结为三个方面:函数即服务是应用实现 Serverless 化的核心能力,当前处在快速发展期,仍有众多课题需要工业界和学术界的共同努力,这里举几例说明:函数与微服务长期共存。微服务架构是当今应用架构的主流,任何应用往Serverless 方向演进都不是一蹴而就的,要基于业务现状有节奏
31、、分批次地进行。在这个渐进式过程中,既需要支持在微服务中直接调用函数,也需要支持在函数中通过 gprc 等方式访问微服务。函数支持有状态。众所周知,函数的运行周期可以到毫秒级,请求处理完毕即释放资源,所有应用处理的状态需要外置到存储或数据库中。对于一些需要保存状态的应用逻辑,如游戏应用场景,无状态函数有些力不从心。通过有状态函数的支持,可以很好的解决这类场景中客户的诉求。多函数的在线调测。函数代码的在线调测是一个开发者使用函数服务面临的痛点问题,云厂商需要提供一个无缝集成的在线 IDE 支持多函数集群的全链条跟踪调测,如断点跟踪、调用拓扑等。函数级别的业务逻辑开发,让用户专注于应用本身,代码运
32、行环境由云平台提供,无需管理和运维底层资源;根据请求的并发数量自动调度资源运行函数,毫秒级弹性伸缩,高效应对业务峰值;根据函数调用次数、运行时长和节点转换次数计费,函数不运行时不产生费用,且降低开发和运维费用,TCO(Total Cost of Ownership)可明显降低。更轻量化更快弹性更低成本1233.3函数即服务:聚焦业务逻辑,高效开发免运维 12架构与设计现代化,让应用高内聚、低耦合、高可用与弹性企业应用现代化:让企业应用实现全面敏捷,重塑商业价值移动互联网的普及,对应用的高可用与弹性伸缩能力提出了更高的要求。用户每时每刻都在访问应用,加上业务负载的不可预测性,就要求应用必须保持
33、7*24 小时可用,并随时做好应对十倍、百倍突发流量的准备。在互联网中,可用性是重要的生产力。2021 年 7 月 13 日,某视频网站服务器机房发生故障,导致全网 2.23 亿客户持续3 小时无法观看视频。某云厂商,2008 年 6 月故障,每分钟损失 3.1 万美元;2013 年 8 月 19 日故障,每分钟损失 6.7 万美元;2016 年 3 月 10 日故障,每分钟损失 25 万美元。故障不仅造成严重经济损失,也让用户对服务失去信心。互联网云平台设计理念是:硬件故障常态化,软件构建高可用性。主要采用程序数据分离的无状态设计、分布式集群架构,互联网客户业务往往存在以下痛点:Server
34、less 应用托管基于现有微服务架构基础上,要解决上述痛点问题,需要提供以下关键能力:开发团队能力参差不齐:须熟知、对接各云产品,交付效率慢;数据库、缓存、消息等中间件的使用缺少标准封装,如连接池、双活等;日志、调用链配置不统一,监控分析效率低等。能够无缝集成现有工具链如 IDE、持续集成、命令行工具等,实现应用一站式快速上云;底层基础设施不可见,运行时自动适配,虚机容器网络全托管,用户只需关注应用本身,实现极简运维;频繁发布、敏捷迭代:游戏/移动应用需根据市场需求快速迭代,需大幅提升发布效率、运维效率。高并发、高弹性:游戏/移动应用都会经历新上线、运营拉新等阶段,业务本身有日常峰谷,加上不定
35、期活动运营也会产生峰值,因此高并发、高弹性是一个通用需求。成本与 SLA 的控制难以平衡:大促时容量预估不准,波峰波谷特征明显,突发流量时系统SLA 有风险。具备自动化弹性伸缩的底座,支持“从 0 到多”和“从多到 0”,实现按用户用量计费,无资源浪费;提供高可靠的生产环境,支持自愈与快速恢复以及可观测的故障管理。1.1.3.3.4.2.2.4.3.43.5应用托管:实现 Serverless 化极简应用托管高可用与弹性:让应用运行在灵活可靠的环境下13企业应用现代化:让企业应用实现全面敏捷,重塑商业价值架构与设计现代化,让应用高内聚、低耦合、高可用与弹性通过 LB、Availability
36、Zone/容灾等软件架构和技术实现业务高可用性。为提升可用性,企业客户需要从架构、部署、开发、测试、运维,全面进行考虑和设计,通过多云高可靠的设计理念,逐级防护、逐步达到端到端 R49R59 的可用性能力。高可靠架构演进需要在不同维度、不同层级的共同协作下完成,每个层级所关注的内容都存在差异,这里把整个多云多活内容分为几个层级,分别是:服务层、管理层、应用层、数据层、基础设施层。图 3:多云多活内容层级服务层:企业高可靠能力除了架构本身,还依赖一定的流程和服务,通过不断的容灾演练,迁移演练等方式加强自身对故障和灾难的容错能力。管理层:指多云多活的管理控制层,实现仲裁中心、探活、业务切换、流量治
37、理等关键动作。应用层:支持业务应用改造,支持多云多活的容灾改造,包括应用开发、部署等。数据层:多活的关键在于数据处理,即如何保障数据实时同步和备份,如何保障事务问题。基础设施层:包含了计算,存储,网络等基础设施的多云多活。虽然一开始多云多活是为了解决容量和容灾的问题,但是到了后面其价值远不止如此。不仅在高可用,在商业流程等方面都有巨大的帮助。?14架构与设计现代化,让应用高内聚、低耦合、高可用与弹性企业应用现代化:让企业应用实现全面敏捷,重塑商业价值解决系统灾难故障带来的影响,提升业务连续性降低独家厂商绑定风险系统故障灾难带来的影响是不可预估的,数据丢失或业务中断都可能导致一家企业的衰落。多云
38、多活场景就是为了解决不同维度突发状况带来的影响,如业务故障、数据故障、机房故障、数据中心故障,城市灾难等,并通过灾备能力提高业务的连续性。当前的云厂商特别多,每个厂商所提供的能力、特性、资源都不尽相同,企业在上云过程中一定会面临各种选择困难,每个选择都跟企业战略息息相关。多云的方式不仅能让企业尽量复用不同云厂商能力的同时也能享受不同厂商带来的服务,并做出最佳选择。多云多活的方案可以解决在不同地域、不同云之间容量水平扩容的问题,即互相作为备用资源容量进行扩容。多云多活本质上提供了一种流量跟架构的隔离能力。基于这种方案,可以做到不同单元的多层级隔离,对于大部分企业来说,每年都会有新的架构和技术创新
39、项目,通过多云的方式实现架构演进的演练跟隔离验证,保障业务稳定的同时也能持续创新。在很多特殊的地域,比如欧洲、拉美等地方,很多云厂商不一定能满足当地的法律法规进入,所以业务需要具备这种多云的能力管理,去实现业务的布局选择。解决异地容量水平扩展问题提供重大技术演进的练兵场解决部分特殊地域,部分云厂商无法选择的问题15企业应用现代化:让企业应用实现全面敏捷,重塑商业价值开发与运维现代化,革新研发模式,提升软件交付效率伴随着数字化进程的不断深入,各行各业基本完成了基于数字化的作业和企业治理,以华为为例,采购、供应、制造、研发、营销、服务、人力资源和财经等领域已经完全实现全流程的数字化。数字化解放了双
40、手,让人有了更多时间去思考创新,传统的业务边界不断被外延或突破,业界头部的互联网企业更是在体验、效率上做到了进一步的领先。04开发与运维现代化,革新研发模式,提升软件交付效率16开发与运维现代化,革新研发模式,提升软件交付效率企业应用现代化:让企业应用实现全面敏捷,重塑商业价值但是对于更多的企业,数字化才刚开始进入了深水区,林林总总的应用系统如何更高效、更灵活、更弹性、更自适应地响应用户和业务,成为极具挑战性的命题,具体表现在以下四个方面:1.应用设计和生产周期依然太长2.应用的部署数量级增加1.以瀑布/CMM/CCMI 为代表3.应用的运维门槛提升4.应用的安全范围延伸一个好的市场机会,很可
41、能因为应用的延期交付而失去,或者在激烈的竞争中被对手抢占。价值的实现和商业闭环时间还是太长。应用系统的分布式化虽然降低了耦合,但是微服务的配置和部署呈现数量级增长,同时新旧应用异构的基础设施和环境,让开发运维人员苦不堪言,开发阶段赢得的时间在部署阶段再次被浪费。该阶段持续到 2000 年左右,彼时软件作为一个新的行业刚刚诞生,软件开发有很多挑战,当时的软件工程方法主要是为了尝试解决软件开发的质量、可控、有序的问题,因此主要借鉴了硬件制造管理偏差的理念。磕磕绊绊的开发和火急火燎的部署之后,新的灾难往往接踵而至,遇到高并发就瘫痪的应用只会让前期巨大的研发投入和心血付诸东流。已有功能的迭代,往往涉及
42、到配置修改,应用与配置的耦合,背后反映的也是开发和运维的“混乱之墙”。应用安全所覆盖的范围从代码到运行、从硬件到软件,应用安全导致的破坏性后果也屡见不鲜,把握安全和效率的最优平衡点是关键。一方面安全存在着严重的滞后,一旦发生安全事件,影响业务的发展甚至生存;另一方面过重的安全要求,层层加码的审计、人工审批门禁,会降低应用的价值变现速度。开发运维现代化旨在通过多路径、系统性的、有机的解决以上问题,帮助企业实现从传统应用到现代化应用的转型,其目标是实现周/天级的 TTM(Time to Market)和应用的安全可信。结合华为自身研发数字化和变革的实践,建议企业可重点从下小节介绍的三个方面展开转型
43、和实践,以加速实现开发运维现代化。如果从1968年的软件危机开始算起,软件工程已经走过了50多年,大致可以划分为3个阶段:4.14.2开发运维的挑战:TTM 长、安全风险增加DevSecOps:软件工程发展的新趋势17企业应用现代化:让企业应用实现全面敏捷,重塑商业价值开发与运维现代化,革新研发模式,提升软件交付效率2.以敏捷、精益、DevOps 为代表3.以 DevSecOps,软件可信为代表这个阶段从 2000 年开始,持续到 2019 年左右,伴随着互联网的兴起。早期以瀑布为代表的研发模式无法及时响应快速变化的市场,同时互联网也孕育了新的技术、架构。敏捷、精益、DevOps 基本是一脉相
44、承的延展,其主要目标是尝试解决软件开发的效率、速度及价值问题,以帮助企业应对爆炸式创新。从 2019 年开始,随着互联网的渗透率越来越高(据 2021 年统计,中国的互联网普及率达到 70.4%),软件和互联网已经深入到人类生活,自动驾驶、无处不在的摄像头人脸识别,全球正在迈向万物互联、万物智能的时代,如何保证全在线全数字化时代的安全可信,成为了政府、企业所不得不面临的巨大挑战。安全事故频发,不仅带来了巨大的财务损失,甚至严重影响到人生命安全,数字化是软件构筑,软件的可信安全成为了焦点。DevSecOps的提出即是为了应对这个挑战,尝试在质量、效率的基础上内嵌安全,努力做到软件开发的多维度平衡
45、,软件的安全不再只是运行时的安全,而且全生命周期的安全。华为在软件工程领域持续 30 多年的投资和变革,从 CMM、敏捷、DevOps 直到今天的 DevSecOps 全部都在华为内部得到了落地,积累了丰富的经验和实践,同时华为也是业界最早关注应用全生命周期安全的企业。华为云已经提供了丰富的应用安全类云服务产品,如:漏洞扫描服务VSS;同时在软件开发平台DevCloud中内嵌了融合华为实践的代码安全检查规则;也即将推出保障安全设计、安全合规的研发安全服务 SecDev,为客户提供支持 DevSecOps 的产品组合。应用最终是通过代码构筑的,代码框架本身并不算新鲜事物,从软件诞生那天,各种代码
46、框架随着技术的发展不断涌现。其本质是为了抽取出与业务逻辑无关的部分(也称为脚手架或胶水代码),形成可复用、可继承的公共代码。为了更好的从代码层面构筑面向云原生的公共脚手架,云原生代码框架开始逐步成熟并在众多企业得到应用和落地。以华为云 PaaS 团队自身使用 DevSpore 企业级云原生代码框架为例,通过内嵌的元数据驱动脚手架代码自动生成,节省 50%+的开发工作量;通过内嵌的全生命周期的 IaC 能力,实现端到端应用配置的自动生成,实现秒级的应用初始化,减少 90%的应用配置;通过内嵌的云资源依赖自动识别和自动开通,实现分钟级的云原生应用的发放;同时在代码框架层面预置企业多年沉淀的研发规范
47、和标准,实现代码级“立法统一”,减少 80%的重复适配工作。代码框架并不是孤立的存在,还需要和 CICD、应用托管、应用运维等服务深入结合,让每一个开发者都能享受更高效的应用开发全过程,让企业能把有限的人力和财力投入到业务的开发中,更快的实现商业价值的闭环。传统的开发模式存在着环境配置复杂、开发部署各阶段相互分离等弱点,拖慢了应用敏捷的步伐,而随着云原生开发的出现,利用云提供的微服务化、Serverless、容器等技术产品的优势来构建、运行和运维云原生应用,实现了从开发到部署到运维的无缝自动化衔接,如:GitOps 和 CloudIDE。4.34.4企业级开发框架:应用现代化的代码基座开发现代
48、化:充分发挥云原生自动化优势18开发与运维现代化,革新研发模式,提升软件交付效率企业应用现代化:让企业应用实现全面敏捷,重塑商业价值1.知识协同2.作业协同3.管理协同以 GitOps 为代表的高度自动化,用户提交“代码”即可完成应用部署上线,这背后主要依托于应用模型,IaC 等抽象化的声明式定义,与云原生基础设施无缝集成的 CICD 等能力。华为云提供的 DevCloud 和容器 CCE 就已经支持如上的实践。以华为的 CloudIDE 为例,在进行开发时,可按需获取云端集成开发环境,开箱即用编码、调试、运行、发布、部署等能力,业务开发过程全部在云上进行;利用开放API接口、开源插件框架、插
49、件市场和代码工程模板,快速扩展和适配多样场景;通过内置的智能化代码补全工具(SmartAssist)和云调试器(CloudDebugger),可使得开发效率大幅提升;通过内置的编码标准,规范开发者的代码,使得代码更健壮;通过代码安全检测等能力,能够在开发阶段就发现许多安全风险,使得代码更安全。应用开发、部署、运维是个系统性工程,业界的复杂应用或高活应用,往往都是“大团队”+“海量基础设施”的复杂协同,而软件的易变性、不可见性、复杂性,更是加剧了协同的难度,华为的产品研发团队通常都是千人起,参考华为的实践,以下三个方面值得企业重视。应用的开发部署运维本质是个智力活动,一个应用开发项目的成功,往往不能确保后续依然成功。传统观念认为项目成功的不可复制是因为缺乏流程和 IT 工具,但是当这些完成初步建设后,根据华为自身的经验,企业需要开始重视研发知识协同,企业应该重视研发知识的管理闭环:知识创建-知识积累分类-知识传播分享-知识应用提炼。知识协同可以加速创新和员工成长、提升工作效率、降低成本,知识提炼后落入流程和 IT 工具,也会对后续项目或应用的开发带来普适性的价值。研发作业是跨多个阶段(编码,构建,部署,测试,灰度发布),跨多个角色(如架构、设计、开发、测试、运维),跨多个环境(如常见的 Alpha,Beta,Gamma,类生产)的作业过程。早期的 DevOps 工具服务往往是单点孤
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100