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风格的脚本对于业务人员更友好,它会慢慢侵蚀开发人员的空间。前面所述的业务开发人员要么转变为业务人员,要么参与测试和调试工作,成为质量保障团队的一员。以上趋势有宏观层面,也有微观层次,不过是我偶然的想到,并非专业严谨的论断。定有疏漏之处,写来贻笑大方,只是随意记录我的想法罢了,但求读者不要苛责太甚。

相关文章
|
2月前
|
人工智能 区块链 vr&ar
未来移动应用与系统发展趋势分析
本文探讨了未来移动应用与系统的发展趋势,着重分析了人工智能、增强现实和区块链等新技术对移动应用开发和移动操作系统的影响。未来,随着人工智能技术的不断发展,移动应用将更加智能化,个性化和智能推荐将成为主流趋势。增强现实技术将为移动应用带来全新的用户体验,而区块链技术则将加强移动应用的安全性和可信度。文章最后提出了未来移动应用与系统开发者需要关注的几个重要方向,以及应对未来挑战的策略。
|
4天前
|
设计模式 前端开发 大数据
移动应用与系统:技术演进与未来展望
本文将深入探讨移动应用开发和移动操作系统的技术演进,并展望未来的发展趋势。我们将从移动应用开发的编程语言选择、设计模式的应用,到移动操作系统的性能优化、安全性提升等方面进行详细分析。同时,我们也将关注新兴技术的引入,如人工智能、大数据等,以及它们如何影响移动应用的开发和操作系统的设计。最后,我们将探讨未来的发展趋势,包括跨平台开发的普及、5G网络的应用等。
7 0
|
10天前
|
人工智能 物联网 Android开发
移动应用与系统:技术演进与未来趋势
随着科技的飞速发展,移动应用和操作系统已经成为我们日常生活中不可或缺的一部分。本文将从移动应用开发、移动操作系统等方面进行深入探讨,分析其技术演进过程和未来发展趋势。同时,我们还将关注这些技术变革如何影响我们的生活和工作方式。
|
1月前
|
机器学习/深度学习 5G Android开发
移动应用与系统的未来展望
【6月更文挑战第10天】本文将探讨移动应用开发和移动操作系统的最新趋势,以及它们如何影响我们的生活和工作。我们将深入研究移动应用开发的各种技术,包括跨平台开发、人工智能和机器学习的应用,以及5G网络的影响。同时,我们也将探讨移动操作系统的发展,包括Android和iOS的最新更新,以及未来可能出现的新操作系统。最后,我们将讨论这些变化对移动应用开发者和用户的影响。
|
24天前
|
人工智能 搜索推荐 5G
移动应用与系统的发展与未来展望
移动应用与系统的发展日新月异,随着技术的进步和用户需求的不断变化,移动应用开发和移动操作系统正经历着前所未有的变革。本文将从移动应用开发的趋势、移动操作系统的发展以及未来展望等方面进行探讨,以期为读者呈现关于移动应用与系统的全新视角。
|
2月前
|
人工智能 搜索推荐 vr&ar
移动应用与系统发展趋势分析
移动应用与系统的发展已经成为当今科技领域的焦点之一。本文将从移动应用开发、移动操作系统等方面进行深入探讨,分析当前的发展状况及未来的趋势,以期为读者提供全面的技术视角和前瞻性的思考。
15 0
|
2月前
|
人工智能 开发工具 Android开发
移动应用与系统:技术演变与未来展望
【5月更文挑战第29天】 随着科技的飞速发展,移动应用和操作系统已成为我们日常生活中不可或缺的一部分。本文将探讨移动应用开发、移动操作系统的技术演变,以及它们在未来可能带来的影响。我们将深入研究移动应用的开发过程,包括编程语言、开发工具和平台选择等关键因素。同时,我们也将探讨移动操作系统的发展历程,包括Android和iOS等主流操作系统的特点和优势。最后,我们将预测未来的技术趋势,包括人工智能、云计算和物联网等新兴技术对移动应用和操作系统的影响。
|
2月前
|
机器学习/深度学习 人工智能 安全
移动应用与系统:未来技术趋势
【5月更文挑战第29天】本文将探讨移动应用开发和移动操作系统的最新技术趋势,包括人工智能、机器学习、区块链等技术的融合,以及移动设备的安全性问题。我们将深入研究这些技术如何改变移动应用的开发和使用,以及它们对移动操作系统的影响。
|
2月前
|
机器学习/深度学习 人工智能 安全
移动应用与系统:未来技术趋势的探索
【5月更文挑战第29天】 在数字化时代的浪潮中,移动应用与系统的发展已经成为了科技进步的重要标志。本文将深入探讨移动应用开发的最新趋势,以及移动操作系统的核心技术。我们将从跨平台开发工具的选择,到人工智能在移动应用中的应用,再到移动操作系统的安全性问题,全面解析移动应用与系统的前沿技术。
|
2月前
|
安全 vr&ar Android开发
移动应用与系统:技术发展与未来展望
移动应用与系统是当今科技领域的热门话题之一,随着移动设备的普及和技术的不断进步,移动应用开发和移动操作系统的发展呈现出日新月异的态势。本文将探讨移动应用与系统的技术发展现状,分析其在未来的发展趋势,并展望其可能带来的影响和挑战。