• 微服务架构的优势


    微服务可通过分布式部署,大幅提升您的团队和日常工作效率。您还可以并行开发多个微服务。这意味着更多开发人员可以同时开发同一个应用,进而缩短开发所需的时间。

     

    加速做好面市准备

    由于开发周期缩短,微服务架构有助于实现更加敏捷的部署和更新。

     

    高度可扩展

    随着某些服务的不断扩展,您可以跨多个服务器和基础架构进行部署,充分满足自身需求。

     

    出色的弹性

    只要确保正确构建,这些独立的服务就不会彼此影响。这意味着,一个服务出现故障不会导致整个应用下线,这一点与单体式应用模型不同。

     

    易于部署

    相对于传统的单体式应用,基于微服务的应用更加模块化且小巧,所以您无需为它们的部署操心。虽然对部署时的协作要求更高,但之后能获得巨大回报。

     

    易于访问

    由于大型应用被拆分成了多个小型服务,所以开发人员能够更加轻松地理解、更新和增强这些服务,从而缩短开发周期(尤其是在搭配使用敏捷的开发方法时)。

     

    更加开放

    由于使用了多语言 API,所以开发人员可以根据需要实现的功能,自由选用最适合的语言和技术。

     

    所面临的挑战

    如果您的企业正在考虑迁移到微服务架构,那么不仅是应用要变,相关人员的工作方式也会随之而变。在某种意义上,改变企业和文化并不容易,因为每个团队都有自己的部署节奏和所负责的服务,而且这些服务都拥有自己的客户群。这些可能并不是开发人员通常要担心的问题,但是这些问题却决定了微服务架构能否取得成功。

    除了文化和流程之外,复杂性和效率问题是基于微服务的架构所面临的另外两大挑战。以下八类挑战:

    1. 构建:您必须花时间明确各个服务间的依赖关系。要知道,由于存在这些依赖关系,当您完成一个构建时,可能会触发多个其他构建。您还需要考虑微服务对于数据的影响。
    2. 测试:集成测试和端到端测试可能会前所未有的难以实施,但却更加重要。根据您在架构相互支撑的服务时所采用的不同方式,架构中的一个部分出现故障,很可能会导致其他部分也随之出现故障。
    3. 版本管理:在更新到新版本时,请记住:向后兼容性可能会因更新操作而失效。要解决这一问题,您可以利用条件逻辑来进行构建,但是构建会变得繁复、难以控制且快速。或者,您也可以为不同的客户端维护多个活跃版本,但是相关的维护和管理工作会变得更加庞杂。
    4. 部署:没错,这也是一大挑战,至少是首次设置时所要面临的一大挑战。为了简化部署,您必须先大量投资自动化,因为人工部署无法应对微服务的复杂性。请好好思考您要以何种方式以及怎样的顺序来部署各项服务。
    5. 日志记录:使用分布式系统时,您需要利用集中式日志将所有相关信息集中到一处。否则,积累的日志数量将让您难以招架。
    6. 监控:您必须通过一个集中式视图来了解整个系统的情况,以便找出问题的根源。
    7. 调试:无法进行远程调试,因为这种方式无法涵盖数十个或数百个服务。不幸的是,关于应该如何进行调试,目前还没有标准答案。
    8. 连接:请考虑使用服务探索功能,无论是集中式的还是集成式。
  • 相关阅读:
    一文解读AI芯片之间的战争 (转)
    一文解读ARM架构 (转)
    一文解读云计算 (转)
    一文解读裸金属云 (转)
    一文解读发布策略 (转)
    C#使用OracleDataReader返回DataTable
    centos8平台上php7.4的生产环境配置
    centos8安装php7.4
    centos8安装java jdk 13
    docker的常用操作之二:docker内无法解析dns之firewalld设置等
  • 原文地址:https://www.cnblogs.com/PerfectBeauty/p/12939421.html
Copyright © 2020-2023  润新知