• 《.NET 微服务:适用于容器化 .NET 应用的体系结构》关键结论


    作为总结和要点,以下是本指南中最重要的结论。
    1 使用容器的好处:

    基于容器的解决方案有节约成本的好处,因为容器是针对生产环境中缺少依赖而导致的部署问题提出的解决方案。容器能够显著改善devops和生产操作。


    2 容器将无处不在

    基于Docker的容器正在成为容器领域的事实标准,而被windows和Linux生态系统中最重要的供应商的支持,包括微软、亚马逊AWS、谷歌和IBM。在不久的将来,Docker可能会在云和按需数据中心中无处不在。


    3 容器作为部署单元

    一个Docker容器正在成为任何基于服务器的应用程序或服务的标准部署单元。


    4 Microservices

    microservices体系架构正在成为分布式和大型或复杂任务关键型应用程序的首选方法,这些程序基于由自治服务形式构成的多个独立子系统。在基于microservice的体系结构中,应用程序是作为可以开发、测试、版本控制、部署和独立扩展的服务集合而构建的;这可以包括任何相关的自治数据库。


    5 领域驱动的设计和SOA

    microservices体系架构模式源于面向服务的体系结构( SOA )和领域驱动设计( DDD)。当您为具备不断进化的业务规则并逐渐形成特定领域的环境设计和开发microservices时,必须考虑DDD方法和模式。

    6 Microservices挑战

    Microservices提供了许多强大的功能,如独立部署、强子系统边界和技术多样性。然而,它们还引发了与分布式应用程序开发相关的许多新的挑战,如分散和独立的数据模型、microservices之间的弹性通信、最终的一致性,以及从多个microservices聚合日志和监控信息导致的操作复杂性。这些方面比传统的整体应用程序引入更高的复杂性。因此,只有特定的场景适合基于microservice的应用程序。这些包括具有多个演化子系统的大型和复杂的应用程序;在这些情况下,值得投资于更复杂的软件体系结构,因为它将提供更好的长期敏捷性和应用程序维护。

    7 任何应用程序的容器

    容器对microservices很方便,但并不专为它们。容器还可以与整体应用程序一起使用,包括基于传统的net框架遗留应用程序和通过windows容器实现现代化。使用Docker的好处,例如解决许多部署到生产环境的问题,提供完美的开发和测试环境,以及适用于许多不同类型的应用程序。
    8 CLI与IDE

    使用Microsoft工具,您可以使用您的首选方法开发集装箱化.NET应用程序。您可以使用Docker CLI和Visual Studio Code开发基于CLI和基于编辑器的环境。或者您可以使用visual studio及其独特的功能来使用基于IDE的方法,例如能够调试多容器应用程序。

    9 实现具有恢复能力的云应用程序

    在基于云的系统和分布式系统中,总是存在部分故障的风险。由于客户端和服务是单独的流程(容器),服务可能无法及时响应客户的请求。例如,由于部分故障或维护,服务可能会关闭;该服务可能会超载,并对请求作出极其缓慢的反应;或者,由于网络问题,短时间内可能无法访问。因此,基于云的应用程序必须包含这些故障,并制定应对这些故障的策略。这些策略可以包括重试策略(重新发送消息或重试请求)和实现断路器模式,以避免重复请求的指数负载。基本上,基于云的应用程序必须具有健壮机制——定制的机制,或者基于云基础架构的机制,如来自调度器或服务总线的高级框架。
    10 安全

    我们的容器和microservices的现代世界可能会暴露新的漏洞。基本的应用程序安全性是基于身份验证和授权的;有多种方法来实现这些。然而,容器安全包括额外的关键组件,从而导致本质上更安全的应用程序。构建更安全的应用程序的一个关键要素是有一种安全的方式与其他应用程序和系统进行通信,这通常需要凭据、令牌、密码和其他类型的机密信息—通常称为应用程序机密。任何安全解决方案都必须遵循安全最佳做法,例如在传输过程中加密密钥;其他时候解密密钥;并防止在最终应用程序使用时无意泄漏的密码。这些密钥需要存储,并在某个地方保持安全。为了帮助安全性,您可以利用您选择的调度器的基础架构,或者像Azure Key Vault这样的云基础架构,以及它为应用程序代码提供的方式。
    11 调度器

    基于容器的调度器,如在Azure Container服务( kubernetes、Mesos DC /OS、Docker Swarm)和Azure服务结构中提供的那样,对于任何基于microservice的应用程序和具有显著复杂性、可扩展性需求和不断演化的任何多容器应用程序来说都是不可或缺的。本指南介绍了调度器及其在基于microservice和基于容器的解决方案中的作用。如果您的应用程序需求正在迁移到复杂的集装箱化应用程序中,您需要进一步了解协调器的用法。

  • 相关阅读:
    在实践中培养学生学习软件工程的兴趣
    软件工程课程设计指导随笔
    软件工程——个人总结
    软件工程第二次作业——结对编程
    个人博客作业三:微软小娜APP的案例分析
    嵌入式软件设计第12次实验报告
    嵌入式软件设计第11次实验报告
    嵌入式软件设计第09实验报告
    嵌入式软件设计第10次实验报告
    嵌入式软件设计第7次实验报告8
  • 原文地址:https://www.cnblogs.com/dadream/p/7832131.html
Copyright © 2020-2023  润新知