精华内容
下载资源
问答
  • 微服务的好处

    2020-09-15 11:48:17
    微服务的好处是什么? 前言 在团队要把单体应用改造成微服务时, 最好先评估下微服务带来的好处是什么? 自治 在采用微服务架构时,开发团队拥有交付特性所需的整个技术栈的控制权,好处是可以减少与其他团队之间...

    微服务的好处是什么?

    前言

    在团队要把单体应用改造成微服务时, 最好先评估下微服务带来的好处是什么?

    自治

    在采用微服务架构时,开发团队拥有交付特性所需的整个技术栈的控制权,好处是可以减少与其他团队之间的协调工作,互不影响。

    开发团队可以专注某些领域

    在采用单体架构时,开发任务的分配是不固定的,任何人都有可能分配到任意的任务。但如果每个团队可以拥有自己的服务,就可以在特定业务领域积累专业知识,理解特定领域的业务规则和需求。他们对自己的技术栈十分了解,在做出变更时更有信心。

    伸缩性

    在采用微服务时,开发者可以根据每个服务的性能需求进行伸缩。而在采用单体架构时,虽然也可通过添加更多服务器进行水平伸缩,但却不能让单体的每个组件进行独立伸缩。此外,细粒度的微服务可以更容易根据需要进行垂直伸缩。例如,有时可能希望多处理一些负载,而在处理性能问题时又需要一些额外的机会。

    更容易回滚

    如果回滚某个功能,只需要修改单个微服务就可以直接回滚,不会影响其他团队的工作。此外,微服务架构有助于降低因单个微服务故障导致整个系统宕机的风险。

    更高的发布频率

    如果是一个大型系统,每次版本发布都很耗时,且伴随着风险。回归测试需要覆盖很多东西,从而限制发布节奏。开发人员可能需要经过很多人准许,并在所有参与版本发布的团队之间进行协调。微服务缩小了变更范围,减少了团队之间的协调工作量。开发团队可以根据自己的时间表发布版本,而不是被一个整体的节奏所束缚。

    使用最合适的技术

    微服务的各个团队可以为要解决的问题选择最合适的技术,可以使用最新的技术,而单体系统则很难升级,只能停留在过时的技术平台上。

    升级更简单

    给大型应用程序升级框架从来都不是件有趣的事情,而且通常都伴有风险。当需要在多个团队间协调相互关联的变更时,一切都变得更加困难。而在采用微服务架构时,可以只升级必要服务,每次只让一个团队升级一个服务。

    缩小变更影响范围

    应用程序的不同部分以不同的速度发生变化,大部分组件可能几个月甚至几年都不需要改动,将很少发生变化的代码与频繁发生变化的代码分开可以降低意外回归带来的风险。

    易于重构

    较小的服务更容易理解。一个服务只由一个团队负责开发,服务的设计风格就能够保持一致。小巧的微服务更容易进行重构。相比之下,单体架构可能会出现不一致,因为随着时间的推移,不同的团队会向单体系统中加入不一样的设计想法。

    展开全文
  • 微服务的六大好处,被调查者发现,他们已经通过微服务获得了很多的好处,位居前六的是:  1、持续集成(CI)/持续部署(CD)  2、敏捷性  3、提高可伸缩性  4、更快的交付时间  5、提高开发人员的生产效率  6...

      微服务的六大好处,被调查者发现,他们已经通过微服务获得了很多的好处,位居前六的是:

        1、持续集成(CI)/持续部署(CD)

        2、敏捷性

        3、提高可伸缩性

        4、更快的交付时间

        5、提高开发人员的生产效率

        6、更容易调试和维护

      微服务效益可以在二至十二个月内实现

      实施落地微服务的挑战

        1、企业文化和组织结构上的挑战

        2、微服务管理

        3、诊断和监控

        4、时间及资源管理

      解决这些挑战的前四项办法是:

        1、开发/实施内部Microservices工具

        2、重组

        3、与供应商专家合作/使用供应商作为受信任的顾问

        4、采购或使用微服务平台/解决方案

     

      知识点:

      应用服务器可以用于微服务,Docker和Kubernetes容器作为一种实现微服务的技术取得了很大的成功

      学习高并发、高性能、分布式、微服务架构的原理,搭建企业应用程序,并具有可靠性、可用性、可伸缩性和性能(RASP)功能。

    展开全文
  • 微服务的好处与挑战

    2017-12-21 17:57:01
    还是那句话如果仅仅是搞个几万条数据...微服务架构的好处 扩展性好可升级性强 易维护性 故障和资源的隔离性 微服务架构的挑战 学习曲线大拆分服务的难度高 局部失效和事务性问题整合测试的难

        还是那句话如果仅仅是搞个几万条数据的一两个人的应用场景还是去EXCEL吧。在这里写挑战是因为缺点和优点,好处和坏处是并生的,当成挑战就看怎么去用了,用微服务去改造现有的系统也算是没有退路了。


    微服务架构的好处

    • 扩展性好
    • 可升级性强
    • 易维护性
    • 故障和资源的隔离性


    微服务架构的挑战

    • 学习曲线大
    • 拆分服务的难度高
    • 局部失效和事务性问题
    • 整合测试的难度增加
    • 运行时的不可预知性会带来巨大的风险


    展开全文
  • 导语:微服务架构最重要的好处是它可以实现大型的复杂应用程序的持续交付和持续部署。持续交付和持续部署是DevOps的一部分,DevOps是一套快速、频繁、可靠的软件交付实践。高效能的DevOps组织通常在将软件部署到生产...

    导语:微服务架构最重要的好处是它可以实现大型的复杂应用程序的持续交付和持续部署。持续交付和持续部署是DevOps的一部分,DevOps是一套快速、频繁、可靠的软件交付实践。高效能的DevOps组织通常在将软件部署到生产环境时面临更少的问题和故障。

    对于大型和复杂的应用程序,微服务架构往往是最佳的选择。然而,除了拥有正确的架构之外,成功的软件开发还需要在组织、开发和交付流程方面做一些工作。

    图1展示了架构、流程和组织之间的关系:

    fdc97c0dd33b3dfd7e7b07ee738e49c9.png110779107dc117f679163d4dd8dd4c06.png

    图1 大型复杂应用程序快速、频繁和可靠地交付软件需要具备几项DevOps关键能力,其中包括持续交付和持续部署,小型自治团队和微服务架构

    1. 进行软件开发和交付的组织

    成功往往意味着研发团队规模的扩大。一方面,这是个好事,因为人多力量大。但是团队大了以后,正如Fred Brooks在《人月神话》这本书中提到的,沟通成本会随着团队的规模呈O(N ^ 2)的速度上升。如果团队太大,由于沟通成本过高,往往会使得团队的效率降低。想想看,如果每天早上的站会规模达到20人会是怎样?

    解决之道是把大团队拆分成一系列小团队。每个团队都足够小,人员规模为8~12人。每个团队都有一个明确的职责:开发并且可能也负责运维一个或者多个服务,这些服务实现了一个或多个业务能力。这些团队都是跨职能的。他们可以独立地完成开发、测试和部署等任务,而不需要频繁地与其他团队沟通或者协调。

    逆向的康威定律

    为了在使用微服务架构时有效地交付软件,你需要考虑康威定律,它规定了如下内容:

    设计系统的组织……往往被组织的架构所限制,最终设计的结果是这些组织的沟通结构的副本。

    (梅尔文·康威)

    换句话说,应用程序的架构往往反映了开发它的组织的结构。因此,反向应用康威定律并设计你的企业组织,使其结构与微服务的架构一一对应。通过这样做,可以确保你的开发团队与服务一样松耦合。

    若干个小团队的效率显然要高于一个单一的大团队。微服务架构使得团队可以实现某种程度的“自治”。每个团队都可以开发、部署和运维扩展他们负责的服务,而不必与其他团队协调。更进一步,当出现了某个服务故障或没有满足SLA等要求时,对应的责任人(团队)也非常清楚。

    而且,开发组织的可扩展性更高。你可以通过添加团队来扩展组织。如果单个团队变得太大,则将其拆分并关联到各自负责的服务。由于团队松散耦合,你可以避免大型团队的沟通开销。因此,你可以在不影响工作效率的情况下添加人员。

    2 进行软件开发和交付的流程

    采用微服务架构以后,如果仍旧沿用瀑布式开发流程,那就跟用一匹马来拉法拉利跑车没什么区别—我们需要充分利用微服务带来的各种便利。如果你希望通过微服务架构来完成一个应用程序的开发,那么采用类似Scrum或Kanban这类敏捷开发和部署实践就是必不可少的。同时也需要积极实践持续交付和持续部署,这是DevOps中的关键环节。

    Jez Humble把持续交付定义为:

    持续交付能够以可持续的方式安全、快速地将所有类型的更改(包括新功能、配置更改、错误修复和实验)交付到生产环境或用户手中。

    持续交付的一个关键特征是软件总是随时可以交付的。它依赖于高水平的自动化,包括自动化测试。在将代码自动部署到生产环境的过程中,持续部署把持续交付提升到了一个新的水准。实施持续部署的高绩效组织每天多次部署到生产环境中,生产中断的次数要少得多,并且可以从发生的任何事情中快速恢复。微服务架构直接支持持续交付和持续部署。

    快速推进同时不把事情搞砸

    持续交付和持续部署(以及更一般地说,DevOps)的目标是快速可靠地交付软件。评估软件开发的四个有用指标如下:

    ·部署频率:软件部署到生产环境中的频率。

    ·交付时间:从开发人员提交变更到变更被部署的时间。

    ·平均恢复时间:从生产环境问题中恢复的时间。

    ·变更失败率:导致生产环境问题的变更提交百分比。

    在传统组织中,部署频率低,交付的时间很长。特别是开发人员和运维人员通常都会在维护窗口期间熬夜到最后一刻。相比之下,DevOps组织经常发布软件,通常每天多次发布,生产环境问题要少得多。例如,亚马逊在2014年每隔11.6秒就将代码更改部署到生产环境中,Netflix的一个软件组件的交付时间为16分钟。

    3 采用微服务架构时的人为因素

    采用微服务架构以后,不仅改变了技术架构,也改变了组织结构和开发的流程。归根到底,这是对工作环境中的人(正如之前提到的,情绪化的生物)进行的一系列改变。如果忽略人们的情绪,那么采纳微服务架构将会是一个非常纠结和折腾的过程。FTGO的首席技术官玛丽和其他的管理层,正面临着如何改变FTGO软件开发方式的挑战。

    畅销书《Managing Transitions》介绍了转型(transition)的概念,其中阐述了人们如何对变化做出情绪化的反应。它包括以下三个阶段。

    1.结束、失落和放弃:当人们被告知某种变化,这类变化会把他们从舒适区中拉出,这类情绪开始滋生和蔓延。人们会念叨失去之前的种种好处。例如,当被重组到一个新的跨职能团队时,人们会想念他们之前的同事。再比如,对于负责全局数据建模的团队来说,每个服务团队负责自己的数据建模,这对他们是一种威胁。

    2.中立区:处理新旧工作方式交替过程中,人们普遍会对新的工作方式无所适从。人们开始纠结并必须要学习处理新工作的方式。

    3.新的开始:最终阶段,人们开始发自内心地热情拥抱新的工作方式,并且开始体验到新工作方式所带来的种种好处。

    总结

    单体架构模式将应用程序构建为单个可部署单元。

    微服务架构模式将系统分解为一组可独立部署的服务,每个服务都有自己的数据库。

    单体架构是简单应用的不错选择,微服务架构通常是大型复杂应用的更好选择。

    微服务架构使小型自治团队能够并行工作,从而加快软件开发的速度。

    微服务架构不是银弹:它存在包括复杂性在内的诸多弊端。

    微服务架构模式语言是一组模式,可帮助你使用微服务架构构建应用程序。它可以帮助你决定是否使用微服务架构,如果你选择微服务架构,模式语言可以帮助你有效地应用它。

    你需要的不仅仅是通过微服务架构来加速软件交付。成功的软件开发还需要DevOps和小而自治的团队。

    不要忘记采纳微服务过程中的人性层面。你需要考虑员工的情绪才能成功转换到微服务架构。

    本文摘自《微服务架构设计模式》,经出版方授权发布。

    微服务架构设计模式

    作者::[] 克里斯·理查森(Chris Richardson) 著

    译者:喻勇 译

    推荐语:

    世界十大软件架构师之一、微服务架构先驱Chris Richardson亲笔撰写,微服务实用落地指南。

    涵盖44个架构设计模式,系统解决服务拆分、事务管理、查询和跨服务通信等难题

    易宝支付CTO陈斌、PolarisTech 联合创始人蔡书、才云科技CEO张鑫等多位专家鼎力推荐。

    展开全文
  • 微服务其实就是服务化思路一种最佳实践方向,遵循 SOA 思路,各个企业在服务化治理道路上走时间长了,踩坑多了,整个软件交付链路上各个环节基础设施逐渐成熟了,微服务自然而然就诞生了。 早些年服务...
  • 显然,随着系统复杂度的提升,以及对系统扩展性的要求越来越...首先,在开发层面,每个微服务基本上都是各自独立的项目(project),而对应各自独立项目的研发团队基本上也是独立对应,这样的结构保证了微服务的并行研
  • 微服务架构现在是谈到企业应用架构时必聊话题,微服务之所以火热也是因为相对之前应用开发方式有很多优点,如更灵活、更能适应现在需求快速变更大环境。但说起微服务,不少人还是有这样困惑:“作为一个开发...
  • 作者:王海龙来源:微信公众号EAWorldhttps://mp.weixin.qq....面对数十个甚至上百个微服务之间调用,如何保证高效安全身份认证?面对外部服务访问,该如何提供细粒度鉴权方案?本...
  • 各个公司与技术人员都在分享微服务架构相关知识与实践经验,但我们发现,目前网上这些相关文章中,要么上来就是很有借鉴意义干货,要么就是以高端专业术语来讲述何为微服务架构。就是没有一个做到成熟地将...
  • 微服务架构设计代表了一种架构设计...什么是微服务,其特性,好处及陷阱,是本文要讨论内容。 一、什么是微服务 微服务是一种软件架构风格,它是以专注于单一责任与功能小型功能区块为基础,利用模组化方...
  • 本文转自博云技术社区公众号(ID:bocloudresearch)微服务架构是当下比较流行一种架构风格,它是一种以业务功能组织服务集合,可以持续交付、快速部署、更好可扩展性和容错能力,而且还使组织更容易去尝试新...
  • 本篇主要总结第七章:在微服务架构中实现查询在微服务架构中查询数据挑战何时以及如何使用API组合模式实现查询 何时以及如何使用CQRS模式实现查询 微服务架构中,查询通常需要检索分散在多个服务所拥有数据库中...
  • 微服务架构可谓是当前软件开发...然而,随着云原生技术的推广,以及大量的微服务落地,反微服务的声音越发响亮。尤其是在今年 3 月初,服务网格的著名开源项目 Istio 发布了 1.5 版本,其控制面由原先的多个微服务组...
  • 什么是微服务模式随着网络基础设施高速发展,以及越来越多个体接入互联网,在考虑构建支持海量请求以及多变业务软件平台时,微服务架构成为多数人首选。微服务架构出现时服务事物发展规律:当问题足够大...
  • 导读:微服务架构已成为了互联网热门话题之一,而这也是互联网技术发展必然阶段。然而,微服务概念提出者 Martin Fowler 却强调:分布式调用第一原则就是不要分布式。纵观微服务实施过程中弊端,可以推断...
  • 今天一个朋友问我,我想做一个项目,两年内做到1000w用户量,并发数1000...什么是微服务微服务应该是从java那边传过来,javaspring boot、dubbo,然后golanggo-micro,就连php也有了微服务,phper肯定不满啦,P...
  • 据腾讯公布业绩报告显示,微信及WeChat和合并月活跃账户数为12.06亿,同比增长6.5%。 无人收银机使用广泛应用于超市与便利店,人们在进行自助收银... 一、好处 1、节省了排队难题,节省了很多时间。 ...
  • 前言大概从五六年前开始,我在工作中越来越多地谈到了微服务,并参与了一些客户应用的微服务改造,其中不乏成功例子,当然也有没达到预期情况。随着网络基础设施高速发展,以及越来越多企业和组织需要通过...
  • 第二,微信公众号里面接入手机购物网站,不是从微信里面申请,而且本身微信也不提供,需要找第三方建站公司制作,所以这项也不是免费。三、个人能申请微商城吗?不能。首先个人是无法认证微信公众号,目前...
  • 微服务网关的好处

    2020-05-08 21:39:57
    不同的微服务一般会有不同网络地址,而外部客户端可能需要调用多个服务接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下问题: 客户端会多次请求不同的微服务,增加了客户端复杂性...
  • 什么是微服务微服务就是一些协同工作小而自制服务。1. 很小,专注于做好一件事随着新功能增加,代码库会越来越大。时间久了代码库会非常庞大,以至于想要知道该在什么地方修改都很困难。尽管我们想在巨大...
  • 微服务的主要好处

    千次阅读 2017-09-06 15:12:05
    一个微服务就是一个独立实体,服务会暴露API,服务之间通过这些API通信。这些服务彼此之间独立,可以独立修改,不会对其他服务产生影响。 主要好处 1.. 技术异构型。 可以在不同服务中使用最适合该服务...
  • 微服务架构的好处与坏处

    千次阅读 2017-03-03 09:04:40
    微服务架构的好处与坏处 转自:http://kb.cnblogs.com/page/521880/ 微服务架构的好处  微服务架构模式有很多好处。首先,通过分解巨大单体式应用为多个服务方法解决了复杂性问题。在功能不变的情况下,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,292
精华内容 516
关键字:

微服务的好处