IT系统应用开发的发展趋势分析

简介: IT系统应用开发的发展趋势分析

毫无疑问,云原生技术已经在事实上成为了大多数IT系统需要迈向的目标,区别只在于,到底是从一开始就遵循云原生架构原则对系统进行设计,还是演进式地从传统架构迁移到云原生架构。了解云原生技术体系,一些耳熟能详的技术术语扑面而来,容器,微服务,服务网格(Service Mesh),包含了FaaS(函数即服务)和BaaS(后端即服务)的无服务器(Serverless)模式,都是技术架构常常采用的模式。
分析这些技术术语,剖析它们的架构思想与落地实践,我希望从中窥得几分端倪,做一次关于IT系统应用开发的发展趋势分析。


1



趋势一:业务与技术的正交性越来越明显

云原生架构本身就是从技术角度出发,遵循云原生架构原则和模式,将云应用中的非业务代码进行最大化剥离,然后将其下沉到云服务(设施)平台,并以无侵略的方式和业务“粘合”在一起,共同支撑整个应用的运行。

设计上,为了避免业务复杂度和技术复杂度之间的互相干扰,设计上本来就需要力求业务与技术的正交性。随着云原生技术的逐渐成熟,剥离技术功能,保留业务代码的纯粹性成为可能。在云原生平台之上,业务系统的开发人员可以将精力放到业务领域的设计与开发,忽略运行过程中需要赋予系统的技术能力。

理想状态下,新的IT架构形态会形成:

  • 设计态与研发态:关注点在于业务
  • 运行态和运营态:关注点在于技术

如此就可能影响整个IT行业。由专业的云原生平台或微服务平台软件供应商打造和实施基于云原生架构的技术平台,提供基础设施服务,由垂直领域的传统企业IT部门与项目型软件供应商负责业务功能的实现,共同合作完成企业IT系统的构建,这可能是未来长期存在的IT生态现象。

开发人员的角色随之发生变化,业务型开发人员与技术型开发人员的分工变得越来越明显,需要的技能存在非常大的差异,前者更看重领域知识、抽象建模能力与设计能力,后者更看重底层的关键开发技术,掌握如网络通信、并行开发、数据一致等通用技术功能的实现。

2


趋势二:业务单元的粒度变得无关紧要

如果保证了业务与技术的正交性,意味着随着IT技术的发展,最终会打通制约软件开发的技术瓶颈。当我们可以不用考虑性能和安全,不用担心分布式通信的不可靠性,不用考虑分布式事务该如何保证一致性……业务单元的划分就不再干扰或影响整个应用的质量属性(非功能性需求),反过来,系统的质量属性也不会影响对业务单元的划分。我们完全可以从纯业务角度出发定义业务单元的粒度。

如果业务场景复杂,又具有独立性和特殊性,将其设计为一个粗粒度的宏服务(macro service)也未尝不可;如果一个业务场景只需要系统提供单一的功能,自然可以设计为微服务(micro service)或者迷你服务(mini service);如果只是对单一数据进行运算或操作,不妨定义为一个云函数。

显然,当分布式通信等基础设施不再成为干扰因素时,各种粒度单元的组合会变得更加自由,一切只为具体的业务场景。

3


趋势三:传统调试技术受到挑战在未来的应用系统,函数和事件会成为最主要的业务逻辑封装单元,事件驱动架构风格会变得越来越普遍。同时,技术关注点主要代理(Sidecar)形式透明地“粘合”业务代码,使得代码的执行顺序不再是顺序式的,而是跳跃式的;执行的指令也不一定在同一个进程(或线程)。
这就使得本地环境的开发调试变得越来越困难,越来越复杂,由于模拟技术无法达到真实生产环境的效果,而业务逻辑和技术逻辑之间的“粘合剂”又非显式的胶水代码,使得现有IDE支持的传统调试和断点能无法满足云原生时代的要求,至少增加了调试的成本,进而影响开发效率和开发质量。
为了迎合这一变化,除非能改进IDE的调试功能,在开发实践上应更加重视自动化测试,充分利用单元测试验证业务功能的正确性,由集成测试负责验证业务与技术结合后形成的完整功能。换言之,开发团队应尽可能通过自动化测试而非断点调试来发现问题


4


趋势四:由业务人员开发核心业务代码

在分离了业务和技术之后,为了提升业务开发人员的效率,IT公司或部门需要对业务代码开展共性和可变性分析,识别并抽象出约80%业务逻辑的共性,将其沉淀为业务组件、微服务或云函数、甚至低代码平台,如此,开发人员就能将主要精力放在20%的差异化实现上。

因此,未来的业务系统开发会形成不同复用粒度和不同复用目标的多层次松耦合架构:技术关注点作为基础设施层,交由云原生平台形成技术支撑;组件、服务或函数组成的业务平台实现通用子领域与支撑子领域的所有功能,以及实现核心子领域的部分功能,并由低代码平台搭建(创建)脚手架、服务模板,完成不同粒度业务单元的组装;最后,在平台上编写定制的业务代码以满足业务逻辑的差异性。

由于只需编写核心的业务代码,DSL(领域特定语言)可能会成为各个垂直领域IT应用开发的首选,并以脚本方式在完成编写后注入到服务模板中。DSL风格的脚本对于业务人员更友好,它会慢慢侵蚀开发人员的空间。前面所述的业务开发人员要么转变为业务人员,要么参与测试和调试工作,成为质量保障团队的一员。以上趋势有宏观层面,也有微观层次,不过是我偶然的想到,并非专业严谨的论断。定有疏漏之处,写来贻笑大方,只是随意记录我的想法罢了,但求读者不要苛责太甚。

相关文章
|
1月前
|
开发框架 Android开发 开发者
移动应用与系统:技术融合下的未来展望
【9月更文挑战第35天】本文将深入探讨移动应用开发和移动操作系统的当前趋势,以及它们如何塑造我们的未来。我们将从移动应用开发的基础知识开始,然后深入到移动操作系统的世界,最后探讨这两者如何相互影响并推动技术进步。无论你是开发者还是普通用户,这篇文章都将为你提供一个全新的视角来看待移动应用和系统。
|
4天前
|
边缘计算 人工智能 搜索推荐
移动应用与系统:技术演进与未来展望
【10月更文挑战第39天】在数字时代的浪潮中,移动应用和操作系统作为连接用户与数字世界的桥梁,其技术的演进不仅改变了我们的生活方式,还不断推动着社会的数字化转型。本文将探讨移动应用开发的最新趋势、移动操作系统的技术革新,以及这些变化如何塑造我们的未来。通过深入浅出的分析,我们将一窥移动技术的未来蓝图,并思考如何在不断变化的技术环境中保持竞争力。
13 0
|
6月前
|
人工智能 区块链 vr&ar
未来移动应用与系统发展趋势分析
本文探讨了未来移动应用与系统的发展趋势,着重分析了人工智能、增强现实和区块链等新技术对移动应用开发和移动操作系统的影响。未来,随着人工智能技术的不断发展,移动应用将更加智能化,个性化和智能推荐将成为主流趋势。增强现实技术将为移动应用带来全新的用户体验,而区块链技术则将加强移动应用的安全性和可信度。文章最后提出了未来移动应用与系统开发者需要关注的几个重要方向,以及应对未来挑战的策略。
|
3月前
|
人工智能 前端开发 Android开发
移动应用与系统:技术、开发与未来趋势
【8月更文挑战第28天】本文深入探讨了移动应用和系统的技术细节,包括开发流程、操作系统特性以及未来的发展趋势。通过分析当前市场上流行的移动操作系统,如Android和iOS,我们揭示了它们各自的优势和局限。同时,文章还讨论了跨平台开发工具,如Flutter和React Native,它们如何改变了应用开发的面貌。最后,我们展望了移动应用和系统的未来,包括人工智能的集成、物联网的影响以及5G网络带来的变革。
|
3月前
|
人工智能 物联网 Android开发
移动应用与系统:技术演变与未来展望
【8月更文挑战第9天】在数字化浪潮的推动下,移动应用和操作系统经历了快速的技术变革。从早期的功能手机到智能手机,再到如今的多功能移动设备,每一次技术的飞跃都深刻影响了人们的生活和工作方式。本文将探讨移动应用开发和移动操作系统的关键技术演进,分析当前面临的挑战,并展望未来的发展趋势。我们将看到,随着人工智能、物联网和5G通信技术的发展,移动应用和操作系统正迎来新的发展机遇。
|
3月前
|
人工智能 安全 物联网
移动应用与系统的未来展望
在数字化浪潮的推动下,移动应用和操作系统正经历着前所未有的变革。本文将探讨移动应用开发的新趋势,移动操作系统的演进,以及这些变化如何影响我们的生活和工作方式。从增强现实到人工智能,从物联网到5G网络,技术的进步正在塑造一个更加智能、互联的世界。我们将深入分析这些技术的融合如何推动移动应用的创新,并预测未来可能出现的新应用场景。
|
3月前
|
安全 Android开发 开发者
移动应用与系统:技术演变和未来展望
【8月更文挑战第6天】在数字化时代的浪潮中,移动应用和操作系统作为科技进步的重要推手,已经深刻地改变了我们的生活方式。本文将探讨移动应用开发的历史演变、当前趋势以及面临的挑战,同时分析移动操作系统的竞争格局和未来发展。通过深入分析,旨在为读者提供对移动应用与系统领域的全面理解,并引发对未来技术发展的思考。
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
移动应用与系统:技术演进与未来趋势
【8月更文挑战第23天】本文深入探讨移动应用开发和移动操作系统的发展历程,分析当前技术现状,并预测未来的发展趋势。我们将从移动应用的设计理念、开发工具、到移动操作系统的功能扩展、性能优化等方面进行详细阐述。同时,我们也将探讨人工智能、物联网等新技术对移动应用和系统的影响,以及它们如何推动移动技术的发展。
|
4月前
|
vr&ar Android开发 数据安全/隐私保护
移动应用与系统的发展与未来展望
移动应用与系统在当今科技发展中占据了重要位置。本文探讨了移动应用开发的关键技术,分析了不同移动操作系统的特点及其影响。同时,展望了未来移动应用与系统的发展方向,包括人工智能与移动端的融合、新兴技术的应用以及安全与隐私保护的挑战。 【7月更文挑战第15天】
44 1
|
4月前
|
机器学习/深度学习 运维 自然语言处理
智能化运维的崛起:如何利用机器学习优化IT基础设施管理
本文深入探讨了智能化运维在现代IT基础设施管理中的关键作用,特别关注于机器学习技术如何革新传统的运维模式。文章首先定义了智能化运维的概念,并分析了其对提升运维效率、预测性维护和自动化处理故障的重要性。随后,详细讨论了应用机器学习进行日志分析、异常检测、资源优化以及安全威胁预测的具体案例。最后,本文强调了实施智能化运维时需要考虑的挑战,包括数据质量、模型解释性和技术整合问题,并提出了相应的解决策略。通过综合运用机器学习与大数据技术,智能化运维正在成为提高企业IT运维能力的重要手段。 【7月更文挑战第22天】
58 0