当前位置: 首页 > news >正文

云原生:应用敏捷,华为视角下的应用现代化

Gartner 也提出,到 2023 年,新应用新服务的数量将达到 5 亿,也即是说:“每个企业都正在成为软件企业”。据IDC 预测,到 2025 年三分之二的企业将成为多产的“软件企业”,每天都会发布软件版本。越来越多的企业将使用软件来交付服务,企业需要敏捷的业务能力来应对快速变化的市场,同时需要领先的创新能力来形成差异化的市场竞争力。


传统应用陈旧的架构和开发模式存在的问题

  • 架构耦合度大
  • 应用愈发复杂
  • 技术债务持续积累
  • 无法按需弹性
  • 开发模式落后
  • 部署发布周期长
  • 开发运维割裂

华为基于服务数百万企业客户的经验沉淀,以及结合自身 30 年的数字化实践总结,提出“基础设施现代化、应用 架构现代化、开发运维现代化、治理运营现代化”这四个现代化是企业走向应用现代化的关键,让企业走上以业务和应 用为中心的敏捷道路,重塑应用的商业价值。


应用现代化参考架构.png


基础设施现代化

传统基础设施云原生基础设施的升级转变。
基础设施现代化的核心在于将企业应用移植至云端,借助容器、多元算力、Serverless等技术,重塑应用底层架构。这使得基础设施资源具备高弹性和高可用性,充分发挥云平台的技术和优势。


应用架构现代化

应用架构现代化涉及运用微服务Serverless等技术,将应用分解为可独立运行的模块,以满足客户需求。这些模块能够实现高可用性和弹性扩展。现代化应用架构为敏捷开发奠定了基础,使应用能够更快速地适应不断变化的市场需求,从而提升企业的竞争力。

  • 微服务架构:让每个微服务块集中和独立处理一个内聚的业务逻辑,以便使应用的开发、部署、运行和治理得以独立进行。实现应用的松耦合,降低开发运维的复杂度。

  • Serverless:通过业务系统实时感知负载需求,动态调整和分配底层资源,实现资源的最大化利用。资源在业务处理完毕后自动释放和回收,解放开发者的生产力,使其专注于业务和应用开发的核心工作,而无需关心服务器资源管理。

  • 应用高可用:通过跨可用区(AZ)部署和跨地域异地容灾来确保业务的持续性,利用云平台提供的功能进行故障追溯和流量切换,以实现快速响应和恢复。


开发运维现代化

传统的应用开发和交付模式需要转变为以 DevOps 为核心的开发运维一体化模式,来加速软件交付速度,同时抽象化、模板化、自动化、智能化、立体运维是开发运维现代化的主要特征。

  • 抽象化:从代码中抽取出与业务逻辑无关的基础性的公共代码,使用代码框架(也称为脚手架或胶水代码)和与之匹配的研发工具链来封装这部分代码,供其他服务调用。
  • 模板化:采用“基础设施即代码”模式,使得应用的环境、中间件、依赖服务等都能通过代码声明和定义。这种模式下,软件部署变得模板化,为应用的大规模、批量化复制与部署提供了基础。
  • 自动化:通过采用DevOps实践实现开发的自动化,软件的生产交付过程变得可复制、可批量化的生产流水线。持续集成(CI)/持续交付(CD)作为关键的自动化实践,使得交付效率得以提升。
  • 智能化:通过数据分析与智能化技术,针对应用开发全生命周期进行改进将极大地提升开发过程的效率与质量。举例来说,最新的代码检查不再局限于静态扫描,而是采用广度和深度兼顾的扫描方式成为常态。基于最佳实践和优化推荐的智能化代码修复建议将为开发人员提供高效、质量的帮助,进一步提升开发效率与代码质量。
  • 立体运维:这是基于云的多层多维度运维方式,包括基础设施运维(如虚拟机、容器和存储)、平台运维(如中间件和数据库)、以及应用运维(如微服务、进程实例和应用性能)。同时,云平台提供丰富的运维数据,可帮助业务团队进一步提升运维自动化、智能化能力,包括告警关联分析、链路追踪、事务监控和海量日志分析等。

治理运营现代化

据Gartner预测,到2025年,90%的现有企业应用仍将持续使用。随着数字化转型的深入,企业业务应用数量增加,但系统之间相互割裂和缺乏交互会导致信息孤岛的出现。企业常态下存在新老应用并存、业务在不同环境、多云部署等情况。治理运营现代化旨在利用云的敏捷性,实现新生应用和现有应用的有机协同,构建可平滑演进的企业IT架构;通过数字资产的复用性,简化企业应用开发的复杂度,降低试错成本和风险,发挥新老应用和资产的最大价值。

  • 融合集成
  • 双模微服务治理
  • 资产沉淀/运营
  • 多云/混云治理



声明:本文内容参考华为与中国信通院联合出品的《云原生2.0白皮书》



往期精彩内容推荐

云原生:为企业带来的7大价值
云原生:重塑未来应用的基石
「快速部署」第一期清单
【快捷部署】011_PostgreSQL(16)
【快捷部署】010_MySQL(5.7.27)


相关文章:

  • 黑马鸿蒙笔记
  • 力扣热题100_链表_138_随机链表的复制
  • Acwing2024蓝桥杯区间合并
  • 34-3 SSRF漏洞 - ssrf业务场景及挖掘
  • Ubuntu下TexStudio如何兼容中文
  • 简析数据安全保护策略中的十个核心要素
  • 【精品整理】最新数据安全评估标准合集
  • 基于单片机钢琴电子节拍器系统设计
  • PTA字符串约束
  • nginx + keepalived 搭建教程
  • LeetCode 60. 第k个排列
  • 云原生技术精选:探索腾讯云容器与函数计算的最佳实践
  • 使用Python实现逻辑回归模型
  • AI结合机器人的入门级仿真环境有哪些?
  • Linux USB host driver 枚举前的源码分析
  • 【刷算法】求1+2+3+...+n
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • angular2开源库收集
  • export和import的用法总结
  • go语言学习初探(一)
  • Java深入 - 深入理解Java集合
  • laravel 用artisan创建自己的模板
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Vue2.0 实现互斥
  • 创建一种深思熟虑的文化
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 理解在java “”i=i++;”所发生的事情
  • 使用 @font-face
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 小程序button引导用户授权
  • 新书推荐|Windows黑客编程技术详解
  • gunicorn工作原理
  • ​TypeScript都不会用,也敢说会前端?
  • #每天一道面试题# 什么是MySQL的回表查询
  • $.ajax()方法详解
  • ()、[]、{}、(())、[[]]命令替换
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (3)llvm ir转换过程
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (二)丶RabbitMQ的六大核心
  • (简单) HDU 2612 Find a way,BFS。
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)EOS中账户、钱包和密钥的关系
  • .gitignore文件—git忽略文件
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET CORE Aws S3 使用
  • .NET Standard 的管理策略
  • .net wcf memory gates checking failed
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .Net中的集合
  • /3GB和/USERVA开关