全面云计算时代来临,微服务已成软件架构主流
发表时间:2023-10-01 11:01:42
文章来源:炫佑科技
浏览次数:169
菏泽炫佑科技
全面云计算时代来临,微服务已成软件架构主流
1.基础设施:条条大路通云
对于云厂商来说,2019年是硕果累累的一年。 不仅初创公司在使用云计算,具有安全意识的“保守”公司(例如政府机构、医疗机构、银行、保险公司,甚至美国五角大楼)也在迁移到云。 这一趋势将在 2020 年继续下去,大大小小的公司都会迁移(或至少计划迁移)到云。 该公司*近发布了一些数据:
如果您是仍在考虑是否迁移到云的决策者,您可能需要重新审视您的策略。 如果你是一名独立开发者,还没有使用过云基础设施,那么2020年你绝对可以尝试一下。很多大型云厂商(比如亚马逊、微软、谷歌)都提供免费试用的机会。 在这方面尤其慷慨,提供价值 300 美元的免费一年。
注:阿里、腾讯、华为等国内云厂商也有免费的云服务试用产品。
2. 云平台:亚马逊领先,其他跟随
作为*大的云厂商,亚马逊在2019年可谓是风生水起。凭借丰富的产品组合,亚马逊将延续霸主地位到2020年。发布的2019年第三季度报告指出,大型云厂商(AWS、Azure、GCP)占据了56%的市场份额。 %的市场份额,其中AWS独占32.6%。
其他云厂商也在努力缩小与AWS的差距。 微软已将主要目标转向大型企业。 近日,微软击败亚马逊,获得美国五角大楼100亿美元的大订单。 这项命令将提升 Azure 的声誉,同时削弱 AWS 的士气。
谷歌一直在推动CNCF标准化云计算运维。 谷歌的长期目标是让企业更轻松地从AWS迁移到GCP。 IBM此前斥资360亿美元收购其,也想在云计算市场占据一席之地。
在亚太地区,阿里云的市场规模超过AWS和Azure的总和,位居全球第三。 中国腾讯云等国内企业也正在经历快速增长。
2020年将出现更多并购。 当然,许多初创公司会带来新的想法和创新,比如多云服务。 由于竞争激烈,这些公司只能通过降价和推出更多创新产品来盈利。
3. 容器化:它会变得更酷
在容器编排领域,虽然一度出现“三大支柱”(Swarm、Swarm、Mesos),但*终却脱颖而出,成为绝对的赢家。 云不是一个分布式系统,而是它的操作系统(分布式Linux)。 2019年北美+会议参会人数达到12,000人,较2018年增长50%。以下是过去4年的参会人数增长情况。
2020年,它不但不会退缩,只会越来越强。 你完全可以下注。 另外值得一提的是,其*近被收购,但收购金额未知。
几年前,这是人们谈论的话题,但现在已经改变了。 它在鼎盛时期未能实现盈利,直到其优势开始消退几年后才尝试将其货币化。 这再次表明,在现代科技世界中,时机就是一切。
4、软件架构:微服务将成为主流
趋势显示,微服务架构范式在 2019 年持续增长。
随着整个软件行业逐渐向云端迁移,微服务将成为主导的架构范式。 微服务架构兴起的主要原因之一是它与云原生完美契合,能够实现快速的软件开发。 我在之前的博文中解释了微服务架构的基本原理及其优缺点。
我认为还有一种回归单体架构的趋势,因为在很多情况下,微服务架构有点过头了,而且实际上很难设计好微服务架构。 微服务架构有哪些好的实践? 在之前的另一篇博文中,我也给出了一些粗略的想法,希望对读者有用。
5. 编程语言(整体):将吞噬世界
机器学习、数据分析、数据处理、网络开发、企业软件开发,甚至黑洞照片拼接在一起,无处不在。
在著名编程语言排名网站TIOBE上,它在*流行的编程语言中排名第三,仅次于Java和C语言。
更有趣的是,2019 年,其受欢迎程度翻了一番(从 5% 增至 10%)。
Java的崛起将在2020年继续,并缩短与Java和C语言的差距。 另一种无处不在的编程语言正面临下行风险。 为何势头如此强劲? 因为它的进入门槛较低,有优秀的社区支持,深受数据科学家和新一代开发者的喜爱。
6.编程语言(企业):Java将占据主导地位
TIOBE 网站此前的截图显示,Java 仍然是占主导地位的编程语言,并将在 2020 年继续保持这一地位。 JVM 是 Java 的基石,其他编程语言(如 Scala、Scala 等)也将继续保持这一地位。使用 JVM 作为运行时。 *近,JVM许可协议发生了修改。
新的许可协议意味着使用Java、Scala或其他JVM编程语言的公司将需要支付大量费用。 幸运的是,JVM 仍然是免费的。 此外,还有其他公司为 JVM 提供企业支持。
由于大小和速度问题,基于 JVM 的编程语言不适合在当今的无服务器环境中使用。 我们正在计划让 Java 变得更加敏捷和更快,使其更适合在无服务器环境中使用。 由于没有其他编程语言可以提供企业级的稳定性和可靠性,因此 Java 将在 2020 年继续占据主导地位。
7. Java:继续努力
曾几何时,在企业发展领域,中美之间存在着激烈的竞争。 但由于在这方面不作为,在竞争中惨遭失败,从而导致了“”计划的形成,并*终得以推广。
对于所有的政策和活动来说,企业 JVM 之战实际上已经取得了胜利。 2020年,它将成为JVM生态系统中的**玩家。
有两个正在进行的项目旨在减少 Java 的大小并使其更适合在无服务器环境中使用。
其中之一是。
另一个是。
这两个项目都使用它们,它们将在 2020 年受到 Java 社区的更多关注。
8. 编程语言:Rust、Swift 和
2000 年代,编程语言的发展陷入停滞。 大多数人认为没有必要开发新的编程语言。 Java、C、C++、Java已经可以满足所有需求。 然而,谷歌的Go语言为新的编程语言打开了大门。 过去十年里出现了许多有趣的编程语言,例如 Rust、Swift、. 造成这种情况的主要原因之一是现有的编程语言无法充分利用硬件优势(例如多核、更快的网络、云)。 另一个原因是现代编程语言更加关注开发者经济,即实现更快、更容易的开发。 在提供的开发者报告中,排名靠前的现代编程语言如下(Rust 连续 4 年排名**)。
在之前的博客文章中,我深入研究了现代编程语言,比较了 Rust 和 Go,并解释了为什么现在是采用这些语言的好时机。
*近,微软宣布他们正在探索使用 Rust 来开发更安全的软件。
亚马逊*近还宣布将赞助 Rust。
宣布将成为官方开发语言,因此成为Java在JVM领域的主要竞争对手。
React 和 Vue 等其他框架不再将其用作主要编程语言,而是开始为其提供更多支持。
这种趋势将在2020年持续下去,许多巨头公司将对新一代编程语言(如Rust、Swift、)有深入的了解,并且他们会站出来公开表示支持。
9. 网络:继续占据主导地位
曾经有一段时间, 并不被认为是一种强大的编程语言。 当时,前端内容主要通过后端框架在服务器端呈现。 2014年,的出现改变了这一状况。 从那时起,更多的框架开始出现(2+、React、Vue),并成为主流的 Web 开发语言。 随着框架的不断创新和微服务架构的兴起,2020年框架将继续主导前端开发。
10.框架:React大放异彩
React虽然来得较晚,但近十年来对Web开发产生了巨大的影响,给了它对抗+的机会。 React给前端开发带来了一些新的思路,比如事件源、虚拟DOM、单向数据绑定、基于组件的开发等。它对开发者社区产生了很大的影响,以至于放弃了,推出了一个完全使用 React 的想法重写了 2+。 React 是迄今为止*受欢迎的框架,下图显示了相关的 NPM 下载统计数据。
为了获得更好的并发和用户体验,宣布完全重写React核心算法,并启动React-Fiber项目。
2020 年,React 仍然是您开发新项目的首选 Web 框架。 其他框架如 /2+ 或 Vue 怎么样? 它仍然是一个不错的Web开发框架软件开发,特别适合企业开发。 我确信谷歌在未来几年会在这方面投入更多。 Vue 是另一个非常流行的 Web 框架,由中国巨头阿里巴巴提供支持。 如果您已经在使用 Vue 或 Vue,则无需迁移到 React。
11.应用程序开发:本机应用程序
当谈到移动应用程序开发时,围绕混合应用程序开发的炒作已经有所减弱。 混合开发提供更快的开发速度,因为只需要一个开发团队而不是多个。 但本机应用程序提供了更好的用户体验和性能。 此外,混合应用程序需要进行调整才能使用一些高级功能。 对于企业来说,原生应用程序仍然是首选的解决方案全面云计算时代来临,微服务已成软件架构主流,这种趋势将在 2020 年继续下去。在一篇博客文章中,他们详细解释了为什么放弃混合应用程序开发平台 React。
尽管尝试改进 React 并且 非常努力地推广混合应用程序开发平台,但它们仍然只适合原型、POC、MVP 或轻量级应用程序开发。 因此,2020年原生应用将继续占据主导地位。
在原生应用开发方面,谷歌和苹果分别使用Swift作为各自平台的主要编程语言。 谷歌*近重申了对 Phone的支持,这对于用户来说无疑是个好消息。
12. 混合应用程序开发:React
在许多情况下,混合应用程序是一个不错的选择。 这方面也有很多选择:、Inoic、React 和 . React是基于成熟的React框架推出的。 就像React主宰Web框架世界一样,React也主宰混合应用程序世界,如下图所示。
React 和 React 有一个共同的基因,都提供了高度的代码可重用性和“一次开发,随处运行”的能力。 React 的另一个优点是它也可用于开发移动应用程序。 谷歌在这一领域起步较晚,但在过去的一年里,谷歌的混合应用开发框架获得了很多关注。 提供更好的性能,但需要使用另一种不太流行的编程语言Dart。 React 将在 2020 年继续占据主导地位。
13. API:REST 将占主导地位
REST是API领域事实上的标准,广泛用于基于API的服务间通信。 当然,除了REST,我们还有其他选择,比如来自的gRPC、来自的gRPC。
它们提供不同的功能。 gRPC 由 开发,作为远程过程调用(如 SOAP)的化身,使用 JSON 作为消息格式。 作为集成层开发以避免频繁的 REST 调用。 gRPC 两者都在各自的领域取得了成功。 2020年,REST仍将是主导的API技术,gRPC将作为补充技术。
14、人工智能:2.0将占据主导地位
谷歌和谷歌也是深度学习/神经网络领域的主要参与者。 基于深度学习框架推出了它,并迅速成为深度学习/神经网络的主要开发库。 谷歌还推出了专门设计的GPU(TPU)来加速计算。
他们在深度学习领域也不甘示弱,拥有世界上*大的图像和视频数据集。 基于另一个深度学习库Torch推出了深度学习库。 和 之间有一些区别,前者使用静态图进行计算,而后者使用动态图。 使用动态图的好处是您可以在运行时自行纠正。 此外,它具有更好的支持,是数据科学领域的主要编程语言。
随着它越来越受欢迎,谷歌很快在2019年10月推出了2.0,同样采用了动态图形,并且有更好的支持。
2020年,2.0将齐头并进。 鉴于社区规模更大,我估计 2.0 将成为主导的深度学习库。
15.数据库:SQL为王,分布式SQL为王
在 NoSQL 炒作的时代,人们嘲笑 SQL 并指出它的缺点。 有很多文章都在说 NoSQL 有多么伟大以及它将如何取代 SQL。 但当炒作平息后,人们很快意识到我们的世界不能没有 SQL。 以下是*流行数据库的排名。
正如您所看到的,SQL 数据库占据了前四名。 SQL占据主导地位是因为它提供了ACID事务保证,而ACID是业务系统*底层的要求。 NoSQL 数据库提供水平可扩展性,但代价是不提供 ACID 保证。
互联网公司一直在寻找“主数据库”,即能够提供ACID保证并且像NoSQL一样可水平扩展的数据库。 目前有两种解决方案部分满足“大师级数据库”的要求,一种来自亚马逊,一种来自谷歌。 它提供了几乎所有的SQL功能,但不支持水平写入扩展。 它提供了水平写入扩展能力,但不能很好地支持SQL。
2020年,希望这两个数据库能够更加接近,或者有人会带来一个“分布式SQL”数据库。 如果有人做到了,他一定会被授予图灵奖。
16.数据湖:MinIO即将崛起
现代数据平台非常复杂。 企业一般都有支持ACID事务的OLTP数据库(SQL),以及用于数据分析的OLAP数据库(NoSQL)。 此外,他们还有各种其他数据存储系统,例如用于搜索的Solr和用于计算的Spark。 企业基于数据库构建自己的数据平台,并将数据从OLTP数据库复制到数据湖。 各种类型的数据应用程序(例如 OLAP、搜索)使用数据湖作为其事实来源。
HDFS *初是事实上的数据湖,直到 推出其对象存储 S3。 S3 具有可扩展性、价格低廉,并已迅速成为许多公司事实上的数据湖。 使用S3的唯一问题是数据平台与亚马逊的AWS云平台紧密相连。 虽然微软Azure推出了Blob,谷歌也有类似的对象存储,但它们并不是S3的竞争对手。
对于很多公司来说,MinIO 可能是他们的救星。 MinIO 是一种开源对象存储,与 S3 兼容,提供企业级支持,专为云原生环境而构建,提供与云无关的数据湖。
是这样描述 Azure 中的 MinIO 的:“为 Azure 博客服务提供与 S3 API 兼容的数据访问。” 如果 GCP和其他云供应商也提供MinIO,我们将向多云迈出一大步。
17、大数据批处理:Spark将继续大放异彩
如今,企业经常需要基于大规模数据进行计算,因此需要分布式批处理作业。 Map-是**个分布式批处理平台,后来Spark接替了它的位置,成为真正的批处理之王。 Spark 如何提供更好的性能? 我之前写过另一篇文章,对现代数据平台进行了深入分析。
Spark 通过将所有内容保留在内存中而不是在每次昂贵的操作后将数据保存在存储系统中来解决 Map 痛点。 虽然Spark大量使用CPU和JVM来执行批处理作业,但这并不妨碍它成为2020年批处理框架之王。我希望有人可以使用Rust开发出更高效的批处理框架来替代Spark,为企业节省一些时间。大量的云资源成本。
18. 大数据流式处理:Flink 是未来
几年前,实现实时流媒体几乎是不可能的。 一些微批处理框架(例如Spark)可以提供“近乎”实时的流处理能力。 然而,Flink 改变了这种情况,提供了实时流的能力。
2019 年之前,Flink 未能获得足够的重视,因为它无法撼动 Spark。 直到 2019 年 1 月,中国巨头阿里巴巴收购了 Data(Flink 背后的公司)。
2020年,企业如果想要进行实时流处理,Flink应该是*好的选择。 但与 Spark 一样,Flink 也严重依赖 CPU 和 JVM,需要使用大量的云资源。
19. 字节码:将被大规模采用
我是从对作者艾希的采访中了解到这一点的。 现代(ES5 之后)是一种很棒的编程语言,但与其他编程语言一样,它也有其局限性。 *大的限制是引擎在执行过程中需要读取、解析和处理“抽象语法树”。 另一个问题是单线程模型无法充分利用现代硬件(例如多核CPU或GPU)。 由于这些原因,许多计算密集型应用程序(例如游戏、3D 图形)无法在浏览器中运行。
一组公司(由其领导)开发了一种低级字节码格式,允许任何编程语言在浏览器中运行。 目前发布的版本可以支持C++、Rust等。
允许计算密集型应用程序(例如游戏和应用程序)在浏览器中运行。 然而,目标不仅限于此,它还使应用程序能够在浏览器之外运行。 可用于以下“浏览器外”场景。
我预计2020年将是许多巨头公司(包括云厂商)和社区都会拥抱的突破性一年。
20. 代码:低代码/无代码将进一步发展 快速的数字化和工业4.0革命意味着软件开发人员的供需之间存在巨大差距。 由于缺乏开发人员,许多企业无法实施他们的想法。 为了降低进入软件开发的门槛,可以尝试No Code或Low Code软件开发,也称为LCNC(Low-Code No-Code)。 2019年它已经取得了一些成功。
LCNC的目标是让没有编程经验的人如果想实现自己的想法也能开发软件。
虽然我对在正式环境中使用 LCNC 框架仍然心存疑虑,但它为其他公司的构建奠定了良好的基础,像亚马逊和谷歌这样的公司可以在它的基础上构建有用的产品,就像 AWS 蓬勃发展一样。 基于谷歌应用程序。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等