当前位置: 首页 > 科技观察

222022年软件发展趋势预测与解读

时间:2023-03-12 12:58:12 科技观察

MdKamaruzzaman是Medium上的科技博主。更新频率并不比我好多少,但他对软件开发行业的了解却比我好很多。毕竟是专业出身的差距就在这里。Kamaruzzaman个人介绍是解决方案架构师,同时也是技术作者,全栈开发,专注于云和大数据,基地德国。有趣的是,R&D的学生往往不直接与客户打交道,大部分市场趋势和认知观察往往来自市场部门或开发者关系,但技术发展趋势往往与商业化直接挂钩。这就导致了一个很有意思的现象,就是运营/市场拿了研发一半的薪水,但是他们还是要紧跟市场趋势和行业脉搏,用一种语言反馈给研发工程师能够看懂,从而保证最终的技术发展和产品迭代。路线不会有大的失误。这是开发者社区学生的先天劣势和必然要求,也是开发者和学生实现个人品牌能力和增值的一个很好的出路。所以,其实所有的行业都是大同小异的。愿意不断思考和学习的人,总能胜过很多人。研发也是如此。话不多说,进入今天的主题。1.集中式基础设施:云优先是新常态。与往年一样,第一个预测仍然与云有关。今年在关键词infrastructure前面加了一个集中式(Centralized)的前缀,这与当前云计算行业的下沉还是有关系的。如果你更关注互联网行业,你可能会认为分布式云是当前的发展趋势,但实际上,对于正在进行数字化转型的非互联网行业,集中式基础设施仍然是首选。2022年仍将是公有云快速发展的一年。Gartner预测,2022年公有云的收入将增长16%。在互联网以外的各个行业,如金融、政务、旅游、工业、民生等,都将有效利用公有云。所以如果你是非互联网公司的决策者或从业者,现在开始关注云计算还为时过晚。2、去中心化基础设施:边缘云和边缘计算开始引起广泛关注,大概是近两年的事情。看了2019年做的趋势预测,其实并没有写边缘计算,2021年的版本已经有了。与公有云希望将存储、计算能力和AI/ML集中在一个中心位置(可用区域)不同,边缘计算本身是一种去中心化的方式,希望将存储、计算能力和AI/ML部署紧密结合给用户。低延迟场景(游戏)、低网络带宽(离岸站点)、无网络、法规要求、实时用例(联网车辆)、智能设备(物联网)都是需要边缘计算的场景。再加上5G、Web3等关键技术的兴起,可以合理预测边缘计算将在2022年及以后得到广泛应用。事实上,近两年,各大云厂商都开始有意识地推广边缘计算能力和产品。印象中国内几大云厂商都有相关案例,比如之前采访过的华为云的KubeEdge。Kamaruzzaman提到了一项关键举措——“StateoftheEdge”,旨在标准化边缘计算技术。“标准化”这个词是我特别敏感的一点,因为从商业化的角度来看,在没有实现事实上的标准之前,商业化的扩张往往是混乱的或者没有核心优势,形成事实上的或者人为的确定的标准确立后,商业化的趋势将更加明朗。毕竟三流企业做产品,一流企业做标准。3.公有云:多云将获得更多动力。阻碍企业上云的一大绊脚石是供应商锁定问题。毕竟云厂商在商业信誉方面总有一些黑历史,不是硬盘坏了,就是抄袭了合作伙伴计划,又或者抄袭了开源项目的代码。你把企业的核心资产和数据放在某个云上,不说安全问题,以后迁移起来也很麻烦。所以,多云、混合云的发展趋势,真是肉眼可见。Kamaruzzaman提到了很多致力于提供云服务中立性的API服务,比如MinIO(兼容S3)、Aviatrix(云原生网络)、Volterra(分布式云服务)、LightOS(云原生存储)等。另一个有趣的是,谷歌正在努力将他们流行的服务,如BigQuery,引入其公共云竞争对手AWS和Azure,但国内云计算行业是否有类似的现象或有未来?会不会有类似的案例,我个人怀疑……4、容器:K8s成为基础,Docker反弹如果要对现代IT行业的关键技术进行排名,容器无疑占据一席之地。K8s对容器化技术的普及起到了巨大的推动作用。背靠大厂(Google),足够努力,精心设计,快速迭代,K8s成为了今天的事实标准。但另一方面,随着K8s技术的成熟,未来K8s本身的吸引力也会不断降低,这有点类似于跨越鸿沟理论中的技术采用生命周期。我觉得K8s已经到了大众后期的阶段了。所以Kamaruzzaman表示,K8s已经成为现代软件开发的引擎,但由于自身的成熟,进展缓慢。从这一点来看,它与Java有些相似。Docker是另一项在容器化历史上发挥关键作用的技术。遗憾的是,即使在全盛时期,Docker也没有找到商业化的捷径。再加上公司的一系列操作,在与K8s的正面交锋中败下阵来。2022年开始,Docker宣布推出全新的订阅模式,继续艰难的商业化探索。坦白说,这个小标题预测的结论并不是定论,更多的是Kamaruzzaman基于Docker历史功绩的美好祝愿,我其实也是一样的。Docker是我对开源行业产生浓厚兴趣的开始,希望它有一个美好的未来。5.网络安全:每个人都非常重视安全对于初创公司或中型公司来说,网络安全就像“房间里的大象”,他们看到网络安全的需求,但没有足够的资源来实施.这其实也是公有云能够快速落地沉没的原因之一。初创企业无需自己搭建底层基础设施,也省去网络安全保护。他们只需要部署在公有云上,其他的事情都交给云端。制造商。但是,当云提供商受到网络攻击或出现故障时,受影响的不仅仅是一家公司。事实上,2021年云厂商暴露的高危漏洞不在少数。2022年,无论是公有云厂商还是Linux,都会在安全上更加努力。除了云安全,网络安全的另一个常见来源来自开源软件。根据此前奇安信的相关数据报道,90%的开源软件都存在安全漏洞,这对于建立在开源软件基础上的互联网本身来说是一个令人不寒而栗的问题。幸运的是,高危漏洞并不那么容易被利用。不幸的是,世界上许多流行的开源软件背后只有两三个维护者。比如2021年最受关注的log4j漏洞,已经影响了全球近一半的IT企业。我们需要思考一个问题,为什么全球流行的开源项目得不到应有的收益?给大家拿着薪水的人,不应该让他们在风雪中冻死。6.区块链:加密货币之外的生活终于开始了。区块链通常与加密货币相关联。每当有人受到加密货币的伤害,就会有人开始骂区块链技术。但从技术上讲,加密货币只是区块链技术的一种实现,而不是区块链的全部或唯一用例。2021年区块链一个非常流行的新用例是NFT(Non-FungibleTokens)。此前勇士球星库里花18万美元购买了一个NFT头像,就火了一把。虽然,我不明白这个东西为什么那么贵……NFT目前在数字艺术上用的比较多,但是未来显然可以期待用到它。从这一点延伸,可以看出区块链技术越来越受到人们的重视,关注它。IDC预测,2022年区块链技术解决方案的增长率将达到75%。考虑到目前该技术的普及程度,我认为这个数字并不盲目乐观。对区块链的批评之一是能源消耗。在国内双碳政策的前提下,区块链要想获得长久的发展,必然需要做出一些改变。像以太坊一样,在2022年由能源消耗密集的“工作量证明”模型转向绿色的“权益证明”模型。7.机器学习:AutoML和无代码人工智能将使机器学习民主化之前策划“稀土开发者大会”时,我用了一篇文案,叫做“机器在学习,你为什么例外”。这一点是关于机器学习的,但是从实际的行业发展来看,机器学习的应用规模还受到相当大的制约。最大的原因是从事机器学习的专家太少了。第二个原因是——大多数公司不需要完整的机器学习,有限的使用就足够了。AutoML是一种在有限情况下启用机器学习的方法。从某种意义上说,它相当于低代码/无代码。不同的是,low-code/no-code降低了开发门槛,而AutoML降低了使用机器学习的门槛。8、人工智能:狭义的人工智能将得到广泛应用。我最近在看阿西莫夫的科幻小说系列。其中提到的“机器人三原则”,借助机器人建立的行星文明等等,都是关于人工智能的终极目标之一——让AI和人类一样聪明,甚至更聪明。但在AI发展的60年里,我们离这个目标还很远。与机器学习一样,深度学习在过去十年中得到了广泛采用和快速增长,预计未来将继续如此。人工智能发展的最终目标目前在肉眼可见的情况下是遥不可及的,但人工智能代理在特定领域辅助/增强人类并不是什么大问题。9、深度学习库:TensorFlow将继续统治深度学习轮子很多,但基本上只能看这两个:谷歌的TensorFlow,Meta的PyTorch。TensorFlow在其2.0版本中进行了自我更新,并引入了动态图形、Python友好性和许多其他更改。它还提供Tensorflow.js在浏览器中使用AI库。它的另一项创新是TensorflowLite,它提供了在移动和Web上部署Tensorflow的能力。Tensorflow还发布了TensorflowExtended(TFX),这是一个用于部署生产ML管道的端到端平台。PyTorch是另一个主要的AI库,它引入了动态图形和Python,并且对开发人员更友好。它还发布了PyTorchMobile,支持在Android/iOS设备上使用PyTorch。它为开发人员提供了更多的友好性,可以通过PyTorchProfiler调试大型AI模型。从StackOverflow的调查数据来看,TensorFlow继续保持霸主地位似乎已经没有悬念。10、数据库:多模型、多用途的数据库正在兴起。过去几年,数据库领域的一个趋势是使用特定的数据库来匹配特定的用例,例如:RDBMS:ThingsforstructureddataWide-ColumnDatabase:Forlowlatency,distributeddatabasesKey-ValueStore:用于分布式缓存GraphDatabase:用于极端关系数据DocumentDatabase:用于具有半结构化数据的事务DistributedSQL:用于具有事务保证的低延迟DistributeddatabaseOLAPDatabase:用于数据仓库和数据分析这种方法的一个缺点是我们经常需要为一个应用程序使用多个数据库。现在有一种新趋势,即每个数据库都会提供不止一种模型,服务于不止一种用例。PostgreSQL(多模型)、AzureCosmosDB(多模型、多用途)、SingleStore(OLAP和OLTP)是这些数据库的先驱。11、数据密集型计算:SparkVS公有云Kamaruzzaman表示,ApacheSpark几乎已经取代Hadoop生态成为默认的数据密集型计算框架。Spark还使用相同的API提供近乎实时的流处理。另一个获得广泛关注的开源框架是ApacheBeam,它提供了一个统一的编程模型来定义和执行数据处理管道:批处理和流处理。这背后的人物是GCP、Azure和AWS。所以如果你不想使用云,也许Spark是唯一的选择。12.实时流计算:FlinkVS公有云。即使要在公有云上使用,也推荐使用Flink。感觉自己没脑子。话说回来,确实在这个领域,我还没有看到能用Flink掰腕子的轮子。13.DevOps:现代DevOps的智能可观察性几年前,可观察性仅对大型企业至关重要。然而,随着云原生开发和微服务架构的迅速兴起,可观察性对于整个现代软件开发至关重要。除了传统的日志记录、监控和追踪,还需要K8s集群遥测、拓扑数据等。事实上,DevOps的概念一直在不断发展。当它与AI结合时,它就变成了AIOps。当它强调安全性时,就会有DevSecOps。轮子的实现有多种形式。说到底还是要看需求是什么。14.快速应用程序开发:低代码/无代码(LCNC)将继续蓬勃发展低代码/无代码(LCNC)旨在降低开发Web/移动应用程序的障碍,而无需开发人员(或少数开发人员)。未来几年,我们还是需要开发者来开发应用。但也有许多用例,其中低代码/无代码框架/工具确实可以显着加快应用程序开发。将2021年称为低代码元年并不为过。这一年,我看到不少于三五家低代码创业公司。一场关于低代码是否是行业毒瘤的争论,点燃了行业的沸点。.预计2022年这些场景中会出现更多低代码/无代码:Web/移动应用程序开发网站和登录页面使用对话流的智能聊天机器人电子商务机器学习人工智能(视频、音频、图像)工作流使用RPA15的管理流程自动化.软件架构:面向企业的微服务和微前端目前主流的后端架构方案有单体、微服务和Serverless三种,各有优缺点和适用场景。对于微服务来说,是云原生场景下优秀的架构选择。从企业发展的角度来看,无论是上云后的转型,还是云原生架构设计,微服务都是首选。前端领域的程序复杂度往往被低估,而微前端的思想核心和微服务是一样的,都是为解决复杂度而生,都是拆散的。因此可以想象,微前端也将是未来前端开发的首选架构模型。另一个好消息是,主流的JS框架都支持微前端。16、软件开发:人工智能将协助开发人员和QA软件开发本身的一个有趣的事情就是开发人员不喜欢做那些乏味的、可预测的、重复的脏活累活,于是各种轮子应运而生。开发人员喜欢为问题创造解决方案,而不是享受问题。在人工智能实现最终目标之前,更多的价值往往体现在这些地方,比如利用GPT-3和NLP库自动完成这些任务。此外,一些自动生成代码的工具去年刚刚上线,比如GitHub的Copilot。很多人喜欢耍花样,说AI已经可以自己写代码调试了。还有人想要程序员吗?但实际上,目前AI的能力还只是狭义的,但如果你只能做脏活累活,那你确实更危险,不是吗?17、编程语言(主流):Python将引领潮流。刚入行的时候,Python还没有今天这么火。那时候大家都在讨论Java和C语言,就连Go语言在国内的火爆程度也不亚于Python。但转眼之间,Python就登上了TIOBE编程语言排行榜的第一名:Python具有简洁、解释性、动态、门槛低的特点(不过我还没学会,从入门到放弃)。Zen中有非常直观的表述,更重要的是,Python不仅仅局限于软件开发行业,很多做数据、图表的行业也可以用Python来实现很多工作。再加上数据科学的流行,Python的流行也就不难理解了。2021年的Python峰会不会是昙花一现。悬念或许在于,未来谁来拿下它?我个人很期待Rust。18、编程语言(企业):Java反主流的企业级编程语言,很长一段时间都是Java的代名词。Java的语言设计和JVM的强大功能共同构建了Java生态系统。然而自从云原生兴起后,Java其实受到了很大的挑战。几年前发朋友圈聊这个话题:目前有两个技术趋势会对Java产生比较大的影响,一个是云原生,一个是serverless。影响的原因与Java语言的特性有关。这种语言是为大规模应用和复杂场景设计的,而云,尤其是Serverless,更适合业务逻辑简单的轻量级应用。话说回来,其实制约云原生和Serverless发展的恰恰是大规模应用复杂场景下的管理和安全问题。好消息是,Java社区一直在不断地迭代创新,以确保Java的生命力。比如GraalVM等现代特性,当Java在近几年保持周期性发布的时候,随着现代特性的更新和严格无可比拟的向后兼容,你不用再问Java是不是老了还能吃饭。相反,继续播放音乐并继续跳舞!19、Web客户端框架:React和Angular这三个企业前端框架早就耳熟能详了:Meta的React,Google的Angular,游鱼溪的Vue。Kamaruzzaman给出了React和Angular在企业中会比Vue更多重用的原因:前两者背靠两大企业,而Vue过于依赖游鱼溪,并提到了Vue的安全考虑。不知道这个安全考虑是指软件安全还是地域安全,这里不做评论。但是我想说的是,如果Vue在过于依赖游于熙的情况下依然如此火爆,岂不是更能说明Vue的厉害?你怎么认为?20、服务器端框架(Java):SpringMVC/SpringBoot,微服务和无服务器应用程序的本地框架,是Java中主要的服务器端框架。它遇到的问题与在Java中遇到的问题有关,因为Java正在受到云原生趋势的挑战,导致它的问题。Redhat推出Quarkus后,云原生开发的首选框架易主,因为后者使用GraalVM而不是传统的OpenJDK。最后,Spring还宣布将发布SpringNative,同样使用GraalVM进行云原生开发。2022年,如果开发云原生Java应用,可以考虑使用Java原生框架。如果场景还是单体Java应用开发,继续使用传统框架也无可厚非。21、应用开发:更灵活的原生应用移动应用开发一直是一个巨大的市场,而且还会不断扩大。目前主流的移动应用开发模式有四种:原生开发、跨平台开发、混合开发和云开发。原生开发和跨平台开发是应用最为广泛的开发模式。前者提供了最大的灵活性,而后者则提供了“一次编写,到处运行”的诱人可能性。去年,我在苹果发布会上写了一篇文章Apple:没想到自己做了一个“小程序”,通过苹果的生态来分析原生开发的发展,重点是它的软硬件协同。Kamaruzzaman预测原生开发将在2022年接管,重点是跨平台开发不如原生开发灵活。让我们去看看未来会怎样。22、API技术:REST、gRPC和GraphQL将共存现代软件开发通常是API驱动开发:grin:,API轮子可以说是数不胜数,但这三个是最广为人知的:REST、gRPC和GraphQL。在这三种主流的API技术中,一种是最古老的,也是最成熟、应用最广泛的(REST);一种是由谷歌创建的,它在服务和服务通信(gRPC)方面更快、更高效;一种是由Meta开发的,它为特定的一个用例定义了数据结构的形状,并在一次访问中获取所有数据。这是一个完美的例子,说明在软件开发中没有银弹这样的东西。每个都有自己的优点和缺点。企业根据需要使用它们,每个轮子都有未来。我们都有美好的未来!