在 Azure 上构建微服务

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Microsoft Azure网络

小提示:您能找到这篇{在 Azure 上构建微服务}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的在 Azure 上构建微服务内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

微服务是一种流行的体系结构类型,用于构建可复原、高度可缩放、可独立部署且能快速演变的应用程序。但是,成功的微服务体系结构需要利用不同的方法来设计和生成应用程序。

微服务体系结构由一系列小型的自治服务组成。每个服务都是自包含服务,并且应实现单个业务功能。

什么是微服务?

微服务具有规模小、独立和松散耦合的特点。一个小规模的开发人员团队就能编写和维护一个服务。

每个服务都是一个单独的基本代码,可由小型开发团队管理。

服务可独立部署。团队可以更新现有服务,而无需重新生成和重新部署整个应用程序。

服务负责暂留自己的数据或外部状态。这一点与传统模型不同,后者由单独的数据层处理数据暂留。

服务通过定义完善的API相互通信。每个服务的内部实现细节均对其他服务隐藏。

服务无需共享相同的技术堆栈、库或框架。

除了服务本身,典型微服务体系结构中还会出现其他组件:



管理/业务流程.该组件负责将服务放置在节点上、确定故障,以及跨节点重新均衡服务等等。该组件通常是一种现成的技术(例如Kubern新疆推广etes),而不是自定义构建的内容。

API网关。API网关是客户端的入口点。客户端会调用API网关,网关再将调用转发到后端上的相应服务,而不是由客户端直接调用服务。

使用API网关的优点如下:

它分离了客户端与服务。无需更新所有客户端,便可对服务进行版本控制或重构。

服务可以使用对Web不友好的消息传递协议,比如AMQP。

API网关可执行身份验证、日志记录、SSL终止和负载均衡等其他跨领域功能。

优点

敏捷性。由于微服务是独立部署的,因此我们可以更轻松地管理bug修复和功能发布。无需重新部署整个应用程序即可更新服务,出现问题时可回滚更新。在很多传统应用程序中,如果在应用程序的一个部件中发现bug,它会阻止整个发布流程。新功能可能会被搁置,要等到bug修补程序后才能进行集成、测试和发布。

小型专属团队。微服务应该足够小,单个功能团队就能构建、测试和部署。即使团队规模不大,也能大幅提升敏捷性。而由于沟通效率更慢、管理开销更高且敏捷性更低,大型团队的工作效率往往更低。

小型代码库。在整体式应用程序,代码依赖项往往会随着时间的推移而变得混杂。因此,要在多个位置更改代码才能添加新功能。如果不共享代码或数据存储,则微服务体系结构可将依赖项减到最少,使新功能的添加变得更容易。

混合技术。团队可以选择最适合其服务的技术,并适当地使用混合技术栈。

错误隔离。单个微服务在不可用的情况下不会中断整个应用程序,但前提是所有上游微服务能够正确处理故障(例如,通过实施熔断机制)。

可伸缩性。服务可独立扩展,这样你就能横向扩展需要更多资源的子系统,而不横向扩展整个应用程序。借助Kubernetes或Service Fabric等业务流程协调程序,你可将更高密度的服务打包到一台主机中,从而提高资源的利用效率。

数据隔离。执行架快手广告审核构更新要容易得多,因为只会影响单个微服务。在整体应用程序中,更新架构可能极具挑战性,因为应用程序的不同部分可能都要获取相同的数据,对架构进行任何更改都会带来风险。

挑战

微服务的优势并非没有代价。下面是在开始使用微服务体系结构之前需要考虑的一些挑战。

复杂性。与同等的单一式应用程序相比,微服务应用程序具有更多移动部件。每个服务更简单,但整个系统作为整体来说更复杂。

开发和测试。编写依赖于其他独立服务的小型服务时需要的方法与编写传统的整体式或分层式应用程序时的方法不同。现有工具并非总是能够处理服务依赖关系。跨服务边界进行重构可能很困难。测试服务依赖关系也有一定难度,尤其是在应用程序快速发展之时。

缺乏监管。用于生成微服务的分散式方法具有一定优势,但也可能导致许多问题。用户在生成过程中可能采用了许多不同的语言和框架,从而使应用程序变得难以维护。这种情况下可以实施一些项目范围内的标准,不过分限制团队的灵活性。这尤电视广告多少钱其适用于日志记录等跨领域功能。

网络拥塞和延迟。使用大量小型的精细服务可能会增加服务间的通信量。此外,如果服务依赖关系链变得太长(服务A调用B,B调用C...),额外延迟可能会成为一个问题。用户需要精心设计API。应避免过于繁琐的API,考虑使用序列化格式,并找到可以使用异步通信模式的地方。

数据完整性。每个微服务负责自己的数据暂留。因此,数据一致性可能是个挑战。如果可能,请采用最终一致性。

管理。成功使用微服务需要有成熟的DevOps区域性。跨服务的关联日志记录可能很难。通常情况下,日志记录必须为单个用户操作关联多个服务调用。



版本控制。对某个服务的更新不应中断依赖于它的其他服务。多个服务可在任意给定时间更新,因此,若不精心设计,可能会遇到向后或向前兼容性问题。

技能集。微服务是一种高度分布式系统。请仔细评估团队是否具有成功使用微服务所需的技能和经验。

微服务体系结构的构建流程

此处所列文章介绍了用于设计、构建和操作微服务体系结构的结构化方法。

域分析。为了避免设计微服务时会出现的某些常见错误,请使用域分析来定义微服务边界。执行以下步骤:

使用域分析为微服务建模。

使用战术性DDD来设计微服务。

确定微服务边界。

设计服务。微服务需要利用不同的方法来设计和生成应用程序。有关详细信息,请参阅设计微服务体系结构。

在生产环境中操作。由于微服务体系结构是分布式的,因此你必须对部署和监视提供可靠的操作。

适用于微服务体系结构的CI/CD

在Kubernetes上为微服务构建CI/CD管道

监视在Azure Kubernetes服务(AKS)上运行的微服务

Azure的微服务参考体系结构

Azure Kubernetes服务(AKS)上的微服务体系结构

Azure Service Fabric上的微服务体系结构

在 Azure 上构建微服务

上一篇:海外社媒营销如何做?效果怎么样?
下一篇:实操领英广告|领英不同的广告类型实操


版权声明:以上主题为“在 Azure 上构建微服务"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    在 Azure 上构建微服务
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“在 Azure 上构建微服务”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通在 Azure 上构建微服务的相关事宜。

关键词:在 Azure 上构建微服务,Az

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号