免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

“软件开发”的世界变了

  • 2022-12-18
    北京
  • 本文字数:4142 字

    阅读完需:约 14 分钟

“软件开发”的世界变了

在软件发展的几十年历程中,人们一直在追求更高效地交付更高质量的软件。无论是革新软件工程思想,还是创造高效好用的开发工具、测试框架等等,都是为了提高整个软件开发的效率。


然而,如今云计算、人工智能等技术高速发展,软件服务市场竞争已经变得异常激烈,人们对于软件交付的周期已经从原来的季度、年度单位缩短到了以“天”为单位,企业需要快速上线软件快速试错、明确用户需求,以适应市场节奏。


另外,随着软件系统复杂度逐年上升,可靠性要求也变得越来越高,这些都给传统的软件开发、测试体系提出了巨大的挑战。

一、“云上开发”已是大势所趋


纵观软件开发的发展史,我们可以发现,企业业务需求变化直接带动了软件开发需求的变化。


二十多年前,“作坊式”软件开发盛行,软件开发基本的运作方式就是“骨干工程师”带着“几个助理工程师”一起打天下,整个开发流程中,大部分开发思路都装在骨干工程师的脑子里。企业为了统一各团队的工作,会从制度和项目管理上做出一些约束。然而当时开发者们面临的问题也很大,企业多用本地搭建单机、集群开发,形成信息孤岛,不利于多人协同开发,软件编写极不规范、开发成本和进度估计不准确,开发环境搭建成本高,产品质量低。而且一旦骨干员工离职,很容易造成项目停滞,这些尖锐的矛盾,多次引发企业软件危机。


为了改变企业受困于作坊式开发的困境,“集成开发环境、可视化开发环境”登上历史舞台。集成开发降低了开发门槛,企业以小组式开发为主,C/JAVA 等语言应用日益广泛,此时微软推出 MFC(微软基础类库)、VC++ 等,并整合为 Visual Studio。


紧接着在 21 世纪初,企业开发模式、开发环境陆续实现全面工业化;软件构件化出现,SOA、敏捷开发出现并流行;J2EE/EJB/ 软件产品线等体系诞生并流行;SVN 持续交付、GitLab 版本控制等广泛使用。

直至最近几年,软件开发基本形成标准化,在整个软件开发流程中,一般需要经过“设计 - 开发 - 测试 - 运维”四个阶段的瀑布式开发变为了“设计 - 开发 - 测试 - 开发 - 测试 - 运维”六个阶段的敏捷开发。

然而无论是瀑布式开发,还是敏捷开发,都还是存在着许多问题。比如开发各环节进度偏差逐步增大,需求和设计变更频繁,风险管理能力弱。又或者是在项目后期,因为缺少某些运行场景的具体需求分析,导致项目开发风险增加,问题集中爆发。


而且,随着 5G、人工智能等新兴技术的发展,软件系统的复杂度越来越高,传统开发方式已经无法满足这些技术的开发需求,软件开发过程中的协作、可观测性、标准化问题都亟待找到一条有效的革新通路。


那既然发现了问题,肯定是要解决问题。在用户日益海量增长的今天,企业和开发者都已经明白,想要为产品开发提速增质,产品就需要持续开发、持续集成、持续测试、持续部署、持续监控,最好是随时都可以进行新版本的上线。开发及运维团队之间的矛盾必须要真正地解决一下了。


此外,随着云原生的出现,开源软件流行,容器、微服务等技术被广为应用。微服务可以对应用程序进行解耦,避免重复开发;容器技术则是基于虚拟化,解决了应用程序对操作系统依赖的问题,部署速度明显更快。没有人从“上云”这个事情上再多犹豫,实现降本增效,快速推进数字化转型就必须要上云,云上开发已是大势,智能开发时代已经到来。


在这样的背景下,“设计 - 开发 - 测试 - 运维 - 开发 - 测试 - 运维”齐步走的可持续开发、交付的 DevOps 受到了大家的关注。就维基百科的解释,“DevOps 是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。”但事实上,DevOps 的定义没有标准答案,企业不同,DevOps 就不同,DevOps 是一家企业生产文化的集中表现,从基础设施、生产流程、工具到自动化,是企业走向标准化、走向成熟的必然产物。


二、“软件开发”在变,“业务挑战”也在变


软件开发的变化永远是业务驱动的。DevOps 的火热无论是迫于企业间的竞争快速上线产品,还是跟随主流,不想在技术层面太过落后,总体而言,它都是一个好的实践,可以给企业带来研发流程和效率上的提升,像华为云等厂商研发的 DevOps 相关的解决方案,也大大促进了 DevOps 的落地,这是已经从多个行业的实践中都得到验证的。


以华为云开发及测试环境上云解决方案为例,方案分为自助式开发测试环境上云与一站式开发测试环境上云两种解决方案,云后的软件开发就可以同时拥有“轻松管理、安全可靠、自动运维、易扩展”的能力。



面向互联网行业,华为云开发及测试环境上云解决方案能够全程记录用户在其系统的操作行为,审计操作,识别运维风险,让管理更轻松;集中管控访问其系统和资源权限。容器集群控制面支持 3 Master HA,集群内节点和应用支持跨 AZ 部署,提供虚拟机级别的安全性,业务数据零丢失。方案还能实现通过 HTML5 远程登录运维,无需安装客户端,定期、批量、自动执行预置的运维任务,减轻用户运维压力的同时,让其可以聚焦在业务创新上。此外,方案本身的扩展型很强,RDS 数据库支持增删只读实例,可及时应对业务暴涨/回落情况,能够满足不同阶段的业务需求。



再如其他传统行业,包括制造、医疗、物流以及教培行业等,以往更重实体开发,技术开发能力弱,项目管理无法可视化、保障进度;多项目并行,职责权限分工混乱,易导致失误。而且开发人员能力参差不齐,代码检视效率低。想要跟上时代的步伐,必须要技术革新,实现数字化转型。然而传统行业想要改变并不是一件容易的事,成本支出、安全合规、个性化需求都是需要同时考虑的事情。


这种情况下,传统企业想要完成软件产品的快速交付,华为云开发及测试环境上云解决方案服务开箱即用,简化应用云上开发,云上简化部署;从测试层面,云测覆盖测试管理、接口测试,融入 DevOps 敏捷测试理念,高效管理测试活动,保障产品快速且高质量交付。同时,该方案可以实现系统的流水线灵活编排调度,分层分级、串并行、质量门禁、人工卡点,大幅提升软件生产的自动化。不仅如此,该方案支持 20+主流编程语言、开发框架和构建环境,可以帮助应用无缝上云,能够很好的解决企业行业软件开发的痛点。



所以,简单来说,不论是互联网行业还是传统企业,华为云开发及测试环境上云解决方案都能够为他们带来这些明显的收益:


  • 降本增效:云资源按需付费,随用随扩,数据库只需支付实例费用,无需购买和安装任何软硬件,简化操作,降低成本;

  • 安全合规:单点登录,集中管理账户和资源,部门权限隔离,敏感操作二次复核授权,为高风险行业提供严要求审计功能,保障核心资产数据的绝对安全;

  • 灵活适配:华为云云容器引擎 CCE 提供丰富的接口,便于与企业已有 CI/CD 系统进行集成,灵活适配企业的个性化诉求;

  • 管理可视化:项目管理可视化,开发过程可度量,随时随地掌握开发进度;

  • 一站式管理:DevCloud 平台一站式、全流程、安全可信,开箱即用,预置最佳实践,助力质量提升和效率倍增。


简而言之,企业需要上云,需要更为敏捷的 IT 能力支撑自身业务需求的快速发展与变化,就需要 DevOps,但在做 DevOps 相关方案选型时,需要重点考虑是厂商的整体实力。像是华为云开发及测试环境上云解决方案,便是集华为多年研发实践、前沿研发理念,领先研发工程能力于一体,可以提供专业化的服务。


说到这里,就必须要提及一下华为云开发及测试环境上云解决方案中的重要成员——华为云软件开发生产线 DevCloud。根据 2022 年 9 月,国际权威分析师机构 IDC 发布《IDC MarketScape: 中国 DevOps 平台市场厂商评估,2022》报告,华为云软件开发生产线 DevCloud 在市场份额和发展战略两大维度均排名第一。



华为对研发能力的持续投入为华为云 DevOps 提供了强大的技术优势,同时华为云 DevCloud 在研发团队、云原生架构、人工智能、开源社区等方面的投入,也为保持技术优势提供了保障。


据了解,华为云 DevCloud 已携手百万级开发者,在政府、物流、金融、教育、制造等 10 多个行业落地,助力企业构建了敏捷、高效、安全的数字化生产模式。使用华为云 DevCloud,江苏财政构建了一体化财政业务系统,实现核心业务 100% 上云,业务上线从 2 个月缩短至 1 周,支撑 10 万用户、4 万单位同时在线办理业务。德邦快递半年内,实现业务从线下到云上的转型,完成 750 多条业务流水线交付,上百个核心业务系统上云,同时代码问题下降 71.74%。九牧卫浴售后系统 100% 实现自动化流水线作业,业务上线由数月缩短至 1 周,有效管控 ISV 开发过程及质量,大幅提升了售后服务效率。


总之,提供高速稳定的全球云联接网络的华为云,支撑 Web 访问全球高效互联,应用响应时间短,企业开发者和终端用户可以收获更佳的体验,有如此坚实的数智基座做支撑,在上云之路上值得被选择。


三、“DevOps 的未来”值得期待


随着云原生和云计算的发展,DevOps 会越来越火,但 DevOps 的未来一定是聚焦于业务价值的。正如 Gartner 曾经预测的,“价值流将定义 DevOps 的未来,到 2023 年,70% 的组织将使用价值流管理来改善 DevOps 中的流量,并与业务更紧密得衔接在一起,从而更快交付客户价值。”


在微服务架构层面,微服务将个体应用分解成多个小的独立单元或服务,DevOps 团队便可以在整个软件开发周期内具有更高的敏捷性和可扩展性,DevOps 团队可以根据业务需求逐一扩展到每个程序段中。


在容器和 K8s 集群层面,作为企业上云的基础设施,开发者启动的本地 Kubernetes 集群任务将被简化,而这直接是 DevOps 团队在软件开发的较前阶段就可以使用 K8s 的功能,大大提高了开发效率。


在火热的低代码领域,企业可以通过低代码完成应用部署。而在这个过程中,DevOps 团队据此可以支持整个软件开发周期,程序设计、代码开发、测试、发布管理、文档等等都可以快速被搞定。


显而易见,DevOps 无处不在,在降本增效的当下,DevOps 的未来就是企业的未来。然而从本质上讲,应用 DevOps 其实是为了提高“软件开发人员”和“IT 运维技术人员”之间的沟通合作,以提高整个软件开发生命周期的效率及质量。这与华为云的技术探索初心不谋而合,从华为云提出的解决方案来看,他们一直在做的就是,从网络、计算、数据库到安全,把软件开发门槛和成本帮企业竭尽全力降到最低。


我们有理由相信,在华为云这样的厂商的助力下,业务上云不再是难题,开发上云不再是难题,DevOps 实践都将不再是难题,更快更好的软件开发——DevOps 的未来值得我们期待。

2022-12-18 11:327738
用户头像
鲁冬雪 InfoQ 资深编辑

发布了 156 篇内容, 共 70.1 次阅读, 收获喜欢 153 次。

关注

评论

发布
暂无评论
发现更多内容

redis数据迁移之redis-shake

Java 程序员 后端

Redis的各种用途以及使用场景

Java 程序员 后端

RocketMQ消息丢失场景及解决办法(1)

Java 程序员 后端

Spring @Lookup实现单例bean依赖注入原型bean

Java 程序员 后端

Spring boot —— 创建parent工程

Java 程序员 后端

Redis(二十六):Sentinel—

Java 程序员 后端

RocketMQ msgId与offsetMsgId释疑(实战篇)

Java 程序员 后端

Spring Boot 实战(11)整合MyBatis-Plus

Java 程序员 后端

RocketMQ 主从同步读写分离机制

Java 程序员 后端

RocketMQ 千锤百炼--哈啰在分布式消息治理和微服务治理中的实践

Java 程序员 后端

SAP为Java 16贡献JEP 387 “弹性元空间”

Java 程序员 后端

Serverless 如何在阿里巴巴实现规模化落地?

Java 程序员 后端

Spring Boot 集成 Elasticsearch 实战

Java 程序员 后端

Redis的各种用途以及使用场景(1)

Java 程序员 后端

Redis(十一):键的生存时间与过期时间

Java 程序员 后端

【Flutter 专题】12 图解圆形与权重/比例小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

Servlet 入门

Java 程序员 后端

Spring Boot + EasyExcel 导入导出,好用到爆!

Java 程序员 后端

Spring Boot 快速入门(一)

Java 程序员 后端

RocketMQ消息丢失场景及解决办法

Java 程序员 后端

RocketMQ源码分析之NameServer

Java 程序员 后端

Redis(十八):服务器

Java 程序员 后端

Redis(十六):事件

Java 程序员 后端

spring boot 自定义配置文件&参数绑定

Java 程序员 后端

Spring Boot 操作 Redis 的各种实现

Java 程序员 后端

RocketMQ消息轨迹-设计篇

Java 程序员 后端

Spring Boot 核心的 25 个注解

Java 程序员 后端

Redis持久化方式AOF技术原理?一文带你从底层彻底吃透

Java 程序员 后端

RocketMQ一行代码造成大量消息发送失败

Java 程序员 后端

Spring Boot 中三种跨域场景总结,这篇必看!不看后悔系列

Java 程序员 后端

Spring Boot 接入 GitHub 第三方登录,只要两行配置!

Java 程序员 后端

“软件开发”的世界变了_语言 & 开发_鲁冬雪_InfoQ精选文章