Skip to main content

选择合适的应用托管服务(Azure 计算服务)

分类:  Azure指南 标签:  #Azure #基础 #Azure入门 #Azure Cloud Architecting 发布于: 2023-05-28 9:40:22

我们第一篇给大家概括地介绍了Azure开发者开始使用Azure的第一步就是要为自己的应用挑选一个合适的服务来托管。Azure提供了很多种类的计算服务,开发者们需要根据自己的需要选择合适的计算服务,另外开发者也需要了解自己的应用架构,也需要从架构出发选择合适的计算服务,如果需要了解架构方面的知识,可以参考我们之前的文章《Azure架构入门》。可以使用下图来选择自己所需要的服务:


图示说明:

  • “Lift-and-shift" 中文译为直接迁移,所谓直接迁移时指应用无需重新设计架构和代码改动,就可以迁移到云计算平台上, 关于如何将应用迁移到云平台上,我们后期也会写一些文章帮助大家进行迁移。
  • "Cloud Optimized" - 云平台优化是指重新架构应用,以使得应用可以最大限度的利用云平台工具和能力。

这张图是所有Azure开发者的一个很好的起点,可以帮助大家选择合适的服务,以这个为起点,后面我们给出指导方便你详细的评估你所选择的服务是否适合你的应用。

理解计算服务的基本特性

如果不是很了解从前一个步骤选择的服务,可以通过下述的文档对所选择的服务有一个大致的了解:

理解服务托管模式

Azure提供三种分类的托管模式:IaaS, PaaS, FaaS(还有SaaS, 但这个模式不在我们这个范围之内,更多的是指office 365, Power Automate等等平台)

  • IaaS: Infrastructure-as-a-Service , 基础设施服务,包括虚拟机,虚拟机网络,负载均衡,防火墙等等基础的IT设施。
  • PaaS: Platform-as-a-Service, 平台服务,其实就是将之前需要管理IT基础设置的这部分工作全部交由Azure来管理,用户只需管理自己的应用。
  • FaaS: Functions-as-a-Service , 相比PaaS更进一步,甚至连托管环境都无需过多干涉,只需要部署代码,运行就好了。

从IaaS到FaaS, 用户需要关注的点呈下降趋势的,IaaS, 用户需要管理所有自己创建的资源,包括虚拟机,网络组件,软件更新等等,但是到了FaaS, 用户唯一需要关心的是如何发布自己的代码。

为了更好的理解服务托管模式,我们使用下表来做进一步的说明:

 虚拟机App ServiceAzure Spring CloudService FabricAzure FunctionsAKSContainer InstancesAzure Batch
托管应用类型多种类型基于Web的应用,容器(Docker)基于Java/Spring应用,微服务基于SDK开发的应用,可执行应用,容器等Functions容器打包的微服务Docker ImageSchedule Jobs
可部署数量多种,根据需要通过应用计划一个实例可以部署多个应用一个实例可以部署多个应用一个节点可以部署多个应用Serverless一个节点可以部署多个dockerN/A一个节点可以部署多个jobs
最小节点数量1125Serverless3N/A1
支持有状态应用/无状态应用Stateless or StatefulStatelessstatelessstateless or statefulstatelessStateless or statefullStatelessstateless
能否托管Web应用根据需要内置内置根据需要不支持根据需要根据需要不支持
是否支持虚拟网络(VNet)支持支持支持支持支持支持支持支持

其他还需要考虑的点有:

  • DevOps: 每个服务是否支持本地调试,支持什么样的编程模型,应用需要如何更新和发布。
  • 可扩展性: 需要考虑每个服务的可扩展性,包括:是否支持自动缩放,是否有负载均衡,是否有规模扩展的限制
  • 高可用性:考虑每个服务是否可以跨区域failover, 是否支持跨区域故障转移等等。
  • 安全性:需要考虑每个服务的安全性如何保障。
  • 成本:要考虑成本核算,价格等等。