微服务不是软件工程银弹的10个原因

这篇具有很好参考价值的文章主要介绍了微服务不是软件工程银弹的10个原因。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hi,我是熵减,见字如面。

微服务是一种软件架构风格,其旨在通过将应用程序拆分为小型、独立的服务,来增强应用程序的可伸缩性、可维护性和可测试性。

虽然微服务可以为软件开发提供许多好处,但它们并不总是适用于所有情况的最佳选择。

换句话说,微服务架构,也不是软件工程的银弹。

所以,技术团队再考虑是否使用微服务架构时,有以下10个点,是需要慎重考虑的。

增加了复杂性

世界上没有免费的东西。实现微服务架构,需要有大量的基础设施来配套的,譬如服务发现、负载均衡和服务间通信等。这些机制和体系,会增加系统的复杂性,让维护成本更高。

微服务可以解决许多问题,例如应用程序可伸缩性和可维护性,但它并不是一个单一的解决方案。它需要与其他技术和最佳实践结合使用,例如DevOps、CI/CD和容器化。

测试更困难的

使用微服务架构时,系统的测试工作会变的更为的复杂。除了每一个服务需要必须的单独测试外,还需要与其所依赖的其他服务一起来测试,才能最终保障系统的质量。

部署成本更高

微服务需要更多的开发、部署和测试工作,并且需要更多的服务器资源。

对于中小型的应用程序和简单系统,微服务架构可能过于复杂和昂贵,是不值得采用。

运维成本更高

即是每一个服务都很简单,管理和支持一个服务,总是比管理100个服务要容易的多。

当使用微服务架构时,你就必须管理和监控多个服务,这可能会增加不少的运维资源的开销。

在微服务架构下,开发人员仍然需要投入大量的工作,例如设计和实施服务,以及监控和故障排除。

调试更困难了

微服务架构最大一个挑战就是:在分布式系统中,定位和调试系统问题时,会异常的困难。

在一个巨大的分布式的微服务系统中,要定位和识别出问题的根本原因,其困难程度是不言而喻的。譬如,需要在多个系统中去获取信息,再加上复杂的调用关系,要理清楚后,才能做信息的整合和串联等。

系统时延会更高

微服务是通过网络相互通信的,这可能会给你的系统带来额外的时延。

所以,对于时延要求较高的场景,就需要慎重考虑微服务的调用层级关系和具体的代码实现方式,以满足场景所需。

难以理解的系统

当系统内多个服务独立开发和运行时,我们就很难以掌握系统整体的运行状况了。

系统之间是如何组合的,调用请求是如何流转的,数据是如何传递的等。

都会让理解成本增加不少,系统变得难以掌控,可观测性降低,分险也就增加了。

需要专职团队

微服务并不是无代价的。

微服务架构的有效落地,需要一个具备分布式系统、网络和DevOps专业技能的团队。

采用微服务架构需要大量的投资,例如培训、开发、测试、部署和维护。

企业需要考虑这些成本,并权衡微服务架构的优点和缺点。

安全的问题

微服务并不是无风险的,保护微服务架构比保护单体应用更具挑战性。

采用微服务架构可能会引入新的风险,例如服务之间的通信问题、服务部署和版本控制问题、以及依赖关系的复杂性。这些风险需要被认真评估,并且需要采取适当的措施来减轻这些风险。

并不总是必要的

微服务并不是适用于所有团队的。

采用微服务架构需要更高的技术能力和开发经验。

对于一些中小型团队或初创公司来说,可能没有足够的资源和技能来开发和维护微服务架构。

因此,需要根据团队的技能和经验,以及项目的规模和复杂度来评估,是否适合采用微服务架构。

微服务不是一个必选项,只是一个可选项而已。

最后

尽管微服务架构在很多情况下可以提供一些优势,但也需要根据具体情况进行评估和决策。

技术团队,需要考虑技术和业务需求,以及组织的能力和资源等多个方面,并综合权衡微服务架构的优缺点,才能做出正确的决策。


阅读,思考,练习,分享,日日不断之功。

嗯,写完了。

新的一天,加油哦 (ง •̀_•́)ง文章来源地址https://www.toymoban.com/news/detail-438061.html

到了这里,关于微服务不是软件工程银弹的10个原因的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 工程行业管理系统-专业的工程管理软件-提供一站式服务

    工程行业管理系统-专业的工程管理软件-提供一站式服务

       Java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1、项目进度图表  2、项目信息 施工地图:1、展示当前角色权限

    2023年04月14日
    浏览(13)
  • Java版本工程行业管理系统源码-专业的工程管理软件-提供一站式服务

    Java版本工程行业管理系统源码-专业的工程管理软件-提供一站式服务

          Java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1、项目进度图表  2、项目信息 施工地图:1、展示当前角色

    2024年02月05日
    浏览(14)
  • Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服务 em

    Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服务 em

    ​      鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管理的提升提

    2024年02月11日
    浏览(19)
  • 工程师使用IT服务台软件可以解决哪些问题?

    工程师使用IT服务台软件可以解决哪些问题?

    现如今企业数字化建设已初具规模,业务系统基本已告一段落,而下一步关注的重点则从技术转向管理,如何能让这些系统更好运行起来,如何提高管理效率已是重中之重。在此向您推荐一款高效的IT服务管理工具——ServiceDesk Plus,它是全栈式的ITSM解决方案,可以360°全方位

    2024年02月11日
    浏览(5)
  • Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务 em

    Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务 em

    ​  Java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1、项目进度图表  2、项目信息 施工地图:1、展示当前角色权限

    2024年02月13日
    浏览(10)
  • 【软件工程】软件工程期末考试试卷

    【软件工程】软件工程期末考试试卷

    瀑布模型把软件生命周期划分为八个阶段 :问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段: 计划阶段、开发阶段和( C) 。   A、详细计划 B、可行性分析  C 、 运行阶段  D、 测试与排错

    2024年02月09日
    浏览(11)
  • 【软件工程】软件工程习题及答案

    软件工程是一种系统化、规范化的方法论,用于开发、维护和管理软件项目。它涵盖了软件开发的各个方面,包括需求分析、设计、编码、测试、部署、维护和项目管理等。 软件工程通过应用科学原理、工程技术和管理方法,以及适应性的实践,旨在提高软件开发的效率、质

    2024年02月09日
    浏览(9)
  • 【软件工程】《软件工程》期末复习提纲

    【软件工程】《软件工程》期末复习提纲

    《软件工程》期末复习提纲 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 第九章 第十章 第十一章 第十二章 第十三章 第十四章 小题参考 大题参考 1.在下列选项中,( )不是软件的特征。 A.系统性与复制性         B.可靠性与一致性 C.抽象性与智能性  

    2024年01月17日
    浏览(8)
  • 【软件工程】软件工程期末考试复习题

    【软件工程】软件工程期末考试复习题

    软件工程期末考试试题及参考答案 一、单向选择题 1、软件的发展经历了(D)个发展阶段。 一 二 三 四 2、需求分析的任务不包括(B)。 问题分析 系统设计 需求描述 需求评审。 3、一个软件的宽度是指其控制的(C)。 模块数 层数 跨度 厚度 4、当模块中包含复杂的条件组

    2024年02月10日
    浏览(12)
  • 【软件工程】山东大学软件工程复习提纲

    【软件工程】山东大学软件工程复习提纲

    涵盖所有考点,复习绝对高效,点赞+留邮箱获取pdf版本 本提纲可以完全摘抄,考试命中率100%,先上考试带的A4纸: 1. 软件工程三要素 方法:为软件开发提供了“如何做 ”的技术,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计等; 工具:为软件工

    2024年02月13日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包