我应该如何在Azure中部署微服务?

时间:2020-04-25 20:53:06

标签: azure

我对应该如何在天蓝色中部署微服务感到困惑?我确实通过为每个微服务创建几个应用程序服务来进行部署。我使用ARM模板进行了部署。在不同的应用程序服务中部署每个微服务变得非常昂贵,并且很难管理所有这些服务。我在想的另一种方法是创建一个服务,并且可以在一个应用程序服务下进行部署,但这又将是单片式Web API。

最近,我通过一个博客知道要部署微服务,您应该使用Azure Service Fabric。

我想了解应该采用哪种方式退出以下选项-

  • 一项应用服务。
  • 不同应用程序服务中的多个微服务。
  • 使用kubernetes(或其他协调器)进行容器化
  • 蓝色服务面料?
  • 您建议的其他选择。

我真的对这些感到困惑。请帮我。

预先感谢!

2 个答案:

答案 0 :(得分:2)

我强烈建议您从Azure Architecture Guide开始,这将为您提供全面的概况。从那里,您可以看一下microservice-specific guidance

为了提供对您的问题的简短回答,App Services是规模单位。如果您要构建一个专注于one domain的小型服务,并且所有功能都可以一起扩展,那么将一个应用程序托管在一个App Service上可能会更好。首先了解您的域名;不要仅仅为了拥有微服务而将其拆分。

要选择要使用的Azure计算服务,this decision tree非常有用。

答案 1 :(得分:0)

微服务不仅是技术问题的解决方案。它们还是组织可伸缩性问题的解决方案。另一方面,微服务真的很难管理,这就是为什么通常如果没有DevOps技术来帮助解决此问题,通常无法实现它们。 我之所以这么说是因为您写道,它们变得越来越难以管理,这可能不是问题所在,而是您没有正确的组织结构和流程来处理微服务。

如果构建微服务的团队运行该微服务,则其运行良好。其中包括部署,支持等。您不应由一个人/团队“处理”并部署其他团队的微服务,因为您发现,微服务确实很难管理

从纯技术角度看,您需要澄清一些内容:

  1. 多少个微服务
  2. 多少个团队/开发人员
  3. 您的微服务内置了哪些技术
  4. 这些微服务彼此之间的多聊

从这四个问题中,如果您的微服务数量很少并且每个微服务不需要超过10个实例,并且内置于一种受支持的技术中,并且您的微服务对每个微服务都不是超级用户,那么您可能最终会进入App Services其他。 如果您拥有大量微服务和许多团队,我将使用AKS,因此值得一小部分平台团队来获得kubernetes的专家(不负责部署!)

我建议您通过这些链接

  1. 马丁·福勒:https://martinfowler.com/microservices/
  2. Microsoft的DevOps:https://www.youtube.com/watch?v=OwiT59e0kB4&t=349s
  3. 为什么不做微服务:https://segment.com/blog/goodbye-microservices/
  4. YouTube中数以百万计的微服务对话是这样的:https://www.youtube.com/watch?v=MrV0DqTqpFU