单体架构、微服务和无服务器架构

这篇具有很好参考价值的文章主要介绍了单体架构、微服务和无服务器架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*P4wnfpWbQ0GdnS6mvdzeRA.png

前言

在这篇文章中,我将演示在决定使用单体架构、微服务架构和无服务器架构时的权衡的简化心智模型。目标是突显每种风格的固有优势和缺陷,并提供关于何时选择哪种架构风格的指导。

单体架构

对于小团队或项目来说是理想的入门架构。它简单易上手,通常在需要超过一个团队的规模之前能够提供很多收益。

在构建单体架构时,务必从模块化开始,即使可能会增加样板代码。这意味着构建组件并在层之间保持严格的逻辑分离(更多详见Clean Architecture)。

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*-69EkhFmsJHfUXrtmyYHJw.png

•通信层 — 服务的外部接口•封装 — 业务逻辑或用例的清晰接口•领域实体 — 业务对象的数据表示,仅供内部使用•架构隔离 — 避免实体之间的跨领域连接

优势

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*2X_qpCsFI530XEJv3zpFYw.png

•开发便利性 — 所有代码都在一起。•部署便利性 — 所有代码一起部署。•网络效率 — 所有计算发生在进程内。•成本共享效率 — 每台服务器上有大型共享的 CPU 和内存池。

权衡

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*dhHyKAPmTWxjzrOd9O0-GQ.png

•组织规模的限制 — 由于开发、部署和代码的紧密耦合,需要协调的开销增加。•技术债务的风险 — 容易采取捷径,构建紧密耦合的代码。

当您的团队看起来像上面的插图时,这表明您应该考虑演进您的架构到微服务。开发中的复杂性增加会高风险地降低质量,从而导致生产力减缓。这产生了一个矛盾的效果,即您雇佣的人越多,交付就变得越慢和不可预测。

微服务

对于业务需求开始增长并且团队分成多个团队时,这是理想的架构。这个里程碑自然地与将单体架构拆分成自然的、上下文边界的微服务相配合,以便团队可以更独立地扩展。

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*V2T4ICnI9jlVfPIdnPpNIQ.png

设计你想要的组织,架构会追随着,踌躇着走来

我强烈建议采用Inverse Conway Maneuver策略,打破您的通信模式,否则促使单体的熟悉模式将继续像胶水一样将团队粘在一起。

优势

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*WGrjxCgdn7U7uZGG3uGbTg.png

•独立交付 — 减少依赖关系。•明确所有权 — 实现强大的所有权模型。•组织规模 — 促进团队间相对独立的并行努力。•独立扩展 — 计算隔离允许平台的各部分独立扩展。

权衡

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*V7uK37eEnMWQbPjZvAEPoQ.png

•协调标准 — 标准的变化可能泄漏到架构中,降低一致性和整体可维护性。•网络延迟惩罚 — 曾经在单个服务中共同存在的进程现在正在进行引入端到端计算的网络调用,引入了延迟。•资源共享减少 — 曾经共享相同 CPU、内存和磁盘需求的进程现在部署有自己的专用资源。•成本增加 — 与单体相比,每个服务的额外网络 I/O 和资源会导致额外的成本。

无服务器

对于不需要实时保证的某些工作负载来说,这是理想

的架构风格。异步、分布式处理,不要求代码始终保持热和立即可用。

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*uoAfiMeKJ_3pWlDjPWWatA.png

截至撰写本文时,该行业正在朝着编写更经济的系统的“绿色”方向发展,以减少我们计算的碳足迹。我认为这种架构风格是生态系统的一个强大补充,但并不能完全取代它的前辈的必要性

优势

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*GkGwgO3EmaHEDRC9C-GokA.png

•精益扩展 — 仅扩展所需的无服务器函数。•成本效益 — 仅在需要时使用最少的资源部署资源。(警告:仅当计算是间歇性的时候。在计算需要保持热时,请查看下面的权衡。

权衡

单体架构、微服务和无服务器架构,架构,微服务,serverless,运维,云原生
1*-S4xZKH7skscqOvgu9-vLw.png

•资源效率惩罚 — 曾经共享相同 CPU、内存和磁盘需求的进程现在每个都有自己的最小要求。•成本效益差 — 只有在部署时有恒定需求,使每个函数运行像热服务器时。•网络惩罚 — 与单体和微服务相比,每个函数调用现在都是一个网络跳跃,而不是作为进程内计算共同存在。

随着时间的推移演进

那么,当您的业务或产品的需求不断增长时,您的架构演进可能是什么样子呢?文章来源地址https://www.toymoban.com/news/detail-810941.html

到了这里,关于单体架构、微服务和无服务器架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月06日
    浏览(56)
  • Serverless单体架构的崛起

    在过去的几十年里,我们见证了应用架构以快速的速度演变。当我还是一个年轻的程序员时,开始编写一个简单的代码库,我们可以称之为单体应用。 我记得为前端编写了一些HTML/CSS,后端用了一些Java。但后来,随着时代发展和需求改变,分布式架构(我们现在称之为“微服

    2024年02月04日
    浏览(41)
  • github 新手教程 (含代理服务器和无代理服务器两种模式)

    目录 1.安装Git 1.1下载Git 1.2安装Git 2.Git Bash生成公钥 3.github生成版本库、绑定公钥 3.1github注册账号 3.2github生成版本库 3.3github绑定公钥 3.4检查公钥是否绑定成功 4.git clone新版本 4.1检查是否有代理 4.2不含代理的clone 4.3含代理的clone         1)Git官方下载         下载地址:

    2024年02月03日
    浏览(68)
  • 越来越火的Serverless(无服务器计算),到底是个啥?

    今天这篇文章,我们来聊一个云计算领域的热门概念——Serverless。 到底什么是Serverless? 英语好的童鞋,可能一眼就看出来了,Serverless是由Server和less两个词根组成的词。从字面上理解,就是“无服务器”。 行业通常所说的Serverless,主要是指 “无服务器计算(Serverless Comp

    2024年02月03日
    浏览(49)
  • 【腾讯云TDSQL-C Serverless产品体验】与云函数一起来一次无服务器体验

    写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二

    2024年02月06日
    浏览(67)
  • 运维:硬件服务器BMC介绍

    BMC(Baseboard Management Controller)是硬件服务器上的一个专用子系统,它允许管理员通过独立于主操作系统、CPU和主内存的远程管理工具来监视和管理服务器的硬件状态。这种接口通常用于远程监控和管理服务器,特别是在数据中心和大规模服务器部署环境中。 BMC接口规格: 接

    2024年04月12日
    浏览(53)
  • 运维——ssh无法登录云服务器

    一般来讲,无法登录ssh的原因挺多,如果无法登录云服务器,则除了要检查ssh端口是否放行,防火墙状态外,还需要检查云服务器web控制台入站规则是否开放了对应端口。如果你前面检查都是正常,那么还需要注意云服务器运营商。某些奇葩的运营商,例如TY云,限定了80,

    2024年02月01日
    浏览(65)
  • 运维 | 查看 Linux 服务器 IP 地址

    大多数在操作 Linux 系统时,我们经常需要知道服务器的 IP 比便于后续的一系列操作,这时候有快速查看主机 IP 的命令行操作,能够有效的帮助我们 本章节主要记录一些常用查看服务器 IP 的命令,希望对大家有所帮助。 查看 Linux 服务器的 IP 地址的命令大体上有以下几种。

    2024年04月27日
    浏览(81)
  • 运维:mysql常用的服务器状态命令

    目录 1、查询当前服务器运行的进程 2、查询最大链接数 3、查询当前链接数 4、展示当前正在执行的sql语句 5、查询当前MySQL当中记录的慢查询条数 6、展示Mysql服务器从启动到现在持续运行的时间 7、查询数据库存储占用情况 8、查询服务器启动以来的执行查询的总次数 9、查询

    2024年02月08日
    浏览(52)
  • 【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统

    在今天快速发展的数字化时代,数据库技术日新月异。本文将带领您追溯数据库的历程,探讨云原生数据库的概念,并重点关注腾讯云的创新力作—— TDSQL-C 数据库 。 我们将揭示传统 MySQL 架构的问题,探究 TDSQL-C 数据库的计算与存储分离架构所带来的优势。 通过实例,您将

    2024年02月11日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包