智能体刷屏的背后,是 AI 应用拐点的来临?AICon 北京站议程重磅公布,50+ 硬核分享不容错过 了解详情
写点什么

我们为什么选择云原生应用?

  • 2022-02-24
  • 本文字数:2317 字

    阅读完需:约 8 分钟

我们为什么选择云原生应用?

我想,世上没有人会不知道“云”这个词。我指的并不是天空中的那些白色物体。问题在于,在技术领域,很少有人能真正理解这个词的真正含义。在本文中,我不会对这个领域进行更深入的探讨,而是将重点放在对云原生应用和传统企业应用的对比上。


所以,在我们开始之前,我们要先了解一下这两种观念,以便我们能够更好地了解我们到底在比较什么。

传统企业应用


这种类型的应用是老式的单体应用。它们通常采用瀑布方法(或者是一些缓慢的 Scrum 尝试),并且与首次部署时所用到的软硬件密切联系在一起。它们对操作系统有着很大的依赖性,并且要求物理资源不易扩充,而且即使工程师在某些部分使用了微服务,它们也仍然是以单体应用的方式进行部署。这些应用的进一步开发往往会花费更多的时间和更多的成本。也会花费更多的时间在可扩展性上,并且无法根据“按需”来更改。在 10~20 年前,云服务几乎不存在的时候,它们的普及率是相当高的,但我们也要记得,那时候 IT 产业还很小,资金只集中在相当少的关键参与者。这个事实的重要性将在本文稍后加以论述。

云原生应用


这个术语描述了一种应用,它依赖于云计算的很多优势,并且建立在微服务架构之上。重要的是要记住,云原生开发的应用是一个描述它们如何创建、维护和优化的想法。这并不意味着这些数据会被存储到云端中,而是可以在本地存储,但是依然可以从云原生方式中获益。这对于监管非常严格的市场尤为重要。


这些类型的应用程序也受益于 CI(持续集成)和 CD(持续部署)解决方案。


更让我们感到困惑的是,还有一种基于云的应用的概念。它们通常是描述迁移到云端的传统企业应用。它仍然代表了其前辈的许多不足之处。在本文中,我们不会对此进行太多的讨论,但是我只想提及一下,以便你对此有一个全面的认识。


传统企业应用的缺点


在本文中,我(可能你已经看出来了)正在推广云原生应用的想法,因此我将重点放在老式方法的缺点上。这并不代表没有优点,只是我觉得没有必要去描述这些优点。


传统企业应用最大的缺点就是单体环境,这就要求采用瀑布方法来解决任何新的特性或者已存在的特性的改变。它们的测试环境往往与生产环境相差甚远,这就增加了在部署之后发生重大问题的可能性。

因为传统企业应用对硬件和操作系统的依赖性很强,因此很难对其进行移植或扩充。这将导致大量的开发成本和宝贵的时间。此外,在扩充方面,我们要注意的是,传统的企业应用都是建立在预期流量基础上的。所以,如果超出了这些假定的极限,那么就无法处理所有的峰值(我们也要记住,这些应用是在互联网规模相当小的时候被创造出来的)。


它们的备份和恢复过程通常是很有限的,而且很难实施。


正如你所看到的,这种方法有相当严重的后果,对业务造成了很严重的影响。就像我之前提到过的,在 20 年前,由于那时候的行业和现在完全不同,所以这些因素都没有太大的影响。现在,推出市场的时机非常关键,还有可维护性和团队士气。如果我们采用这样的方法,那么我们就很难在市场上保持竞争力,并且无法满足客户所要求的质量和标准。

为什么云原生应用(很可能)是最佳选择


受益于云原生方法的一个最有趣的特点是,即使是旧的单体应用都可以通过 Docker 的方式迁移到云端。这样,Docker(或者其他工具)在让我们利用云计算的网络解决方案的时候,给我们一个传统的环境。这也让我们有机会把传统的架构逐渐转变成像微服务这样的云原生架构,再逐步淘汰掉传统的解决方案。


我决定从它的好处开始说起,因为这会让那些停仍留在 IT 远古时代的人们看到希望。


但是,回归到它的好处——它可以把一个应用从一个操作系统或者一个硬件中完全抽象出来,这就为我们提供了无限的可能。这让工程师可以集中精力在自己的实际工作上,而不用去考虑那些由不得他们决定的软硬件的依赖性。新的抽象层让所有事情都变得简单了,而且,你猜怎么着,更快。


当涉及硬件能力时,云原生方法赋予了工程师完全的控制权,并且可以根据需要进行扩大和缩小规模。它既简单又有效,使你的客户无论在什么样的流量都能从你的软件中获益。而另一方面,你的企业可以更好地控制价格昂贵的资源的成本,确保你只支付你实际需要的费用。这也让我们能够更好地控制部署流程,降低风险和重要问题的数量。


在这种类型的组织中,团队合作本身也是非常容易的。团队可以很容易地被分成较小的组织,分别负责特定的服务或领域(如安全)。利用合适的工作,使他们可以彼此协作,即使他们不在同一个部分工作。除了这些,他们还可以通过持续集成中获益,因为持续集成能够保持对代码质量的关注,确保任何被部署的东西都能保持一定的质量和安全水平。


最后,但并非不重要的是,人们还必须看一下可用的备份和恢复选项。这使得整个环境对他们的客户来说更加安全和有效,从而能够最大限度降低停机时间。而且我们都知道,每次事故都要花掉一大笔钱(对于大型科技公司来说,你可以很容易地看出股价和事故之间的相关性)。

结论


嗯,我猜你也许会说,这太显而易见了。老实说,我实在不愿意说某种解决方案是最好的方法。但是,在这个例子中,我实在难以为传统企业应用方法提供任何理由。每次我要做出技术决策的时候,我都会优先考虑业务方面的问题。在云原生应用中,业务方面的好处非常多,很难争论。速度,开放的协作环境,安全,可维护性,可扩展性和安全性。所有这些因素似乎都在高呼“选我!”。


最后一个想法是——我极力建议你在做出技术决策的时候,把业务因素考虑进去。


作者介绍:


Sunscrapers Team,使有远见的领导者能够通过产生实际业务成果的解决方案来驾驭数字化转型的浪潮。由于采用了敏捷和精益的创业方法,Sunscrapers 以最高的速度和效率提供高质量的软件。


原文链接:


https://sunscrapers.com/blog/cloud-native-apps-vs-traditional-apps/

2022-02-24 14:242704

评论

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

微信小程序开发:使用字体图标的方法

三掌柜

11月日更

如何使用 Prometheus Kafka Adapter 向 Kafka 推送 Prometheus 数据

耳东@Erdong

kafka Prometheus Adapter 11月日更

测试右移与自动化测试

刘冉

自动化测试 测试右测

题目三、简述HDFS的读写流程

arctec

openLooKeng v1.4.1 上线,OmniData Connector 来了

LooK

大数据 openLooKeng

极客时间架构实战营作业八

jjn0703

架构实战营

题目二:架构设计题

arctec

懒人畅听网,有声小说类目数据采集,多线程速采案例,Python爬虫120例之23例

梦想橡皮擦

11月日更

模块三课后作业 - 详细架构设计文档 - 外包学生管理系统

渐行渐远

架构实战营

AI辅助测试与自动化测试

刘冉

AI 自动化测试

架构实战模块作业八

Yina🌝很浪🌊

架构实战课

【Flutter 专题】08 图解页面小跳转 (一)

阿策小和尚

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

架构营模块三作业

GTiger

架构实战营

低碳企业和个人如何参与碳交易市场?

石云升

碳中和 11月日更 碳交易

模块三作业 外包学生管理系统详细架构设计

小朱

架构实战营

大数据训练营学习总结

arctec

2021 年 Node.js 的发展趋势

CRMEB

模块三作业:学生管理系统架构设计文档

赵先生

架构实战营

基于Serverless的测试服务化-理论篇

刘冉

软件测试 自动化测试 测试服务化

架构实战营 - 模块八作业

Alex.Wu

架构训练营 - 模块三作业

VegetableBird

架构训练营 架构实战营

[ CloudWeGo 微服务实践 - 08 ] Nacos 服务发现扩展 (1)

baiyutang

golang 微服务 11月日更

用vscode创建第一个flutter项目

坚果

flutter 11月日更

设计消息队列存储消息数据的 MySQL 表格

缘分呐

【Promise 源码学习】第七篇 - 实现 Promise 返回值 x 的处理

Brave

源码 Promise 11月日更

Go语言,测试功能详解-上

微客鸟窝

Go 语言 11月日更

创业自研技术团队筹建需要注意什么?

boshi

创业 团队管理

进击的Java(六)

ES_her0

11月日更

自动化前端页面性能测试介绍

刘冉

大前端 软件测试 性能测试 软件自动化测试

Golang Gin 框架入门介绍(一)

liuzhen007

11月日更

模块三作业-外包学生管理系统

二手攻城师

「架构实战营」

我们为什么选择云原生应用?_云原生_Sunscrapers Team_InfoQ精选文章