这5种场景不建议你采用微服务架构

来源: 云巴巴 2020-04-13 17:35:36

  在这个世界上没有什么事情是绝对正确的,微服务也不例外,在里,我们着重讨论在设计或重构技术应用程序时,哪些场景可以使用微服务,哪些场景要避免使用微服务。
  首先,我们要了解什么是微服务能力以及微服务有哪些发展优势。
微服务是什么?
  顾名思义,微服务工作就是这样一个具体的软件服务,通常是基于应用程序上下文定义的一个发展规模合理的最小化服务,例如,“将文档发送给系统打印机驱动程序”可以算是一个微服务,但“打印字母 n”或许就算不上是,一个应用程序可以由多个微服务组成,这些服务的部署和管理是独立的,它们组合在一起实现了应用程序的功能。

这5种场景不建议你采用微服务架构

  这意味着我们可以在不重新设计或更新整个应用程序的情况下更新单个微服务,也意味着单个微服务(或多个微服务)发生故障并不会导致整个应用程序瘫痪,一个受到攻击的微服务也不会导致整个应用程序变脆弱。 对于复杂的大型应用程序,微服务体系结构比单体体系结构(传统的非微服务体系结构)更易于管理。
1. 应对复杂
  既然微服务这么好,为什么不都使用微服务架构呢?事实证明,适用于大型企业系统的架构不一定适用于规模相对较小的系统。在设计新系统时所使用的设计方式并不一定适合用来维护或更新自己已有的系统。
  复杂性可能是微服务体系结构的关键考虑因素。Martin Fowler 曾经说过:“……除非你的系统复杂到难以管理,否则不要考虑采用微服务……”。换句话说,相比其他因素,复杂性是采用微服务架构最关键的考虑因素,如果复杂性不是你首要需要解决的问题,那么微服务可能不适合你。
  微服务架构需要额外的开销,如使用该服务的设计,通信服务,服务管理和系统资源。 采用微服务体系结构是有成本的,如果一个应用程序不能充分利用微服务,那么采用微服务体系结构的成本就有点太高了。
2. 小团队,大工作
  想象一下,一个中等规模的,中等复杂的应用程序,该应用程序负责开发和维护是一个相对较小的团队。如果它是一个单一的系统,服务之间的通信可以是非常直接的,可以针对特定任务进行优化,对于学生熟悉代码的小团队来说,维护工作任务就相对比较容易。 开发有时可能有点麻烦,但大多数时候它是可控的。
  如果这个小团队开发和维护相同的应用程序,但将其更改为微服务架构,他们的工作量将显著增加。 微服务之间的通信已经变得普遍,即使是一个小的变化也需要更多的时间,甚至可能需要对微服务编排和管理系统进行更改,这可能会给运维和开发人员造成压力。
3. 小到无法拆分
  并不是我们所有的应用系统程序都大到足以被拆分成微服务。 一组由中型服务组成的应用程序可能已按要求被拆分,即使它们仍然包含子服务。
  有些管理模块(比如库存模块和应付账款模块)真的有必要拆分成微服务吗?或者它们其实运行得还不错?他们可能已经大小正好,他们分裂成微服务不仅会降低复杂性,反而会使系统更复杂。
4. 与遗留系统共舞
  大部分企业软件开发人员几乎每天都要面对遗留代码,如果你正在维护一个遗留系统,那么不管他有原有的设计多随意,无论是现在已经多糟糕,重构成微服务之前,我们必须认真思考,它正处在生命周期的什么阶段? 是否为任务关键系统(如包含不可替代的遗留数据库)?你需要多长时间来替换整个系统? 更新或替换过程是否需要长期的详细计划?
  微服务架构在更新或替换旧系统起着重要作用,但整个过程可能会很长,没有策略的指导将有可能导致灾难性的后果。
5. 紧密集成
  有些应用需要的各种组件和服务紧密集成,如应用程序需要快速处理的实时数据的应用程序。在服务之间添加新的层会导致处理速度减慢,如果系统需要快速处理的数据(例如来自自动驾驶汽车的传感器数据),则延迟可能是灾难性的。
  嵌入式应用程序通常在响应时间和可用资源方面发展具有很严格的限制,所以它们的后端通常不太适合采用微服务架构。在设计嵌入式应用程序时,从一开始就要考虑企业如何维护变得更简单以及如何让资源使用最优化, 微服务通常在资源丰富的系统中容易发挥作用,并有助于降低系统的复杂性。
要不要采用微服务?
  您的应用程序适合用微服务架构?如果它非常大,非常复杂,为了更好地管理它,可以考虑采用微服务架构,但如果它运行得很好,那就不要盲目追赶这个潮流。

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

评论列表

为你推荐

这5个错误在设计微服务架构的时候你一定要避开

这5个错误在设计微服务架构的时候你一定要避开

到目前为止,大多数企业开发工作人员已听说了微服务的种种好处,不过,真正通过将现有技术应用程序转换成微服务体系架构以“迁移整体式系统”时,你可能会发现设计一个有效的微服务架构困难重重。开发社区没有花大量的时间来讨论如何设计,而是讨论为什么采用微服务架构。

2020-04-13 17:27:40

应用DevOps改变IT部门运作方式的好处

应用DevOps改变IT部门运作方式的好处

DevOps的趋势在企业IT中越来越流行,并从选择实现它的公司中获益良多,企业IT部门试图经过实行DevOps来完成技术创新,跟着DevOps趋势的持续流行,敏捷开发以及诸多容器编排平台工具已经屡见不鲜。 但是,使用DevOps对企业有什么好处?

2020-04-15 17:51:00

关于DevOps的五大重点与三种便捷的内容

关于DevOps的五大重点与三种便捷的内容

古人有云:“射人先射马,擒贼先擒王”。哲学矛盾原理也告诉我们,应该用“抓关键,看主流”的方法处理问题。简而言之,在处理一个问题的时候要抓主要矛盾、抓矛盾的主要方面。在对DevOps的学习上也是如此,只有抓住重点,找到便捷的道路,才有可持续发展的可能。

2020-04-15 16:19:47

划重点!关于DevOps大型机上使用的问题

划重点!关于DevOps大型机上使用的问题

我们来重点讲述关于DevOps大型机上使用的问题,将通过“DevOps加快交付速度”、“DevOps运行时软件优化”和“DevOps提高大型机管理员工作效率”这三部分进行具体分析。

2020-04-15 16:28:13

快来八卦DevOps与程序员的“爱恨情仇”

快来八卦DevOps与程序员的“爱恨情仇”

  八卦时间到!今天我们扒一扒DevOps与程序员的“爱恨情仇”,搬好小板凳,准备吃瓜!

2020-04-15 16:49:49

微服务核心架构对于企业的利和弊

微服务核心架构对于企业的利和弊

最近几年,微服务大行其道, 在商业模式不完善,大规模流量的影响下,许多企业放弃了传统的单一结构,拥抱微服务。这种模式已经具备独立开发、独立部署、可扩展性、可重用性的优点的同时,也带来一个重要问题:开发、运维的复杂性不断提高以至于给人感觉微服务越来越不便管理

2020-04-13 18:06:10

严选云产品

数说雷达品牌资产管理解决方案 数说雷达品牌资产管理解决方案,按行业构建数据,满足各个品类场景的数据快速查询,行业品牌动态追踪、概念趋势先知,更全面洞察市场新动向。一站式KPI看板,管理层的驾驶舱,品牌监测辅助企业进行快速、完整、准确地品牌分析、策略优化。
阿里云数据库RDS版 MySQL 是全球最受欢迎的开源数据库之一,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python) 中的重要一环,广泛应用于各类应用场景。
小鱼易连双师课堂解决方案 小鱼易连双师课堂解决方案,全球云平台,专业硬件教学终端。全自动化授课模式,全流媒体解决方案,课堂大数据采集分析,智能技术打造快乐学习。
京东云统一安全运营中心 京东云统一安全运营中心,RASP应用安全自防御技术,无需应用代码改造,将保护代码疫苗注入到应用程序中,结合应用的逻辑及上下文,对访问应用请求的每一段代码进行检测,弥补了传统边界安全防护产品的先天性防护不足,应对无处不在的应用漏洞与网络威胁,为应用程序提供全生命周期的动态安全保护。
腾讯乐享智慧扶贫解决方案 腾讯乐享智慧扶贫解决方案,统一信息主页,重要信息通告,关键字检索。多终端访问的扶贫政策门户,文件专区分类存放,云端文件库随时访问。扶贫文件和资讯,图文消息实时下达,政策在线咨询,统一思想,了解基层动态。
反欺诈服务 反欺诈服务通过数据挖掘,结合 IP 画像、手机号画像、设备指纹、多种复杂网络技术,构建反欺诈产品生态体系,有效处理各种欺诈问题。

推荐视频

甄选10000+数字化产品 为您免费使用

申请试用