热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Azure应用部署方式对比

如图azure环境应用托管方式对比1.appserviceserverlessazure的appservice支持几乎所有语言开发的webapp,既可以手动使用pu

如图





azure环境应用托管方式对比



1. app service + serverless

azure的app service支持几乎所有语言开发的web app,既可以手动使用publish profile部署,也可以使用vsts创建一个(CDCI)持续集成。都非常方便。

而azure的function app可以用于创建定时执行的脚本,比如web hook,也可以把windows service逻辑搬到云环境,无需IDE。





优势:

pay as you go。使用才付钱,做POC(演示)的首选。比如是开发环境或测试环境,或者只是演示给客户看。这种方式比较高效。

不要求容器化部署,数据可以放在云端的应用(如果数据落地,可考虑混合云),都可以考虑使用。





缺陷:

容器化部署的话需要使用azure container service。





2. vm scale sets

azure 的IAAS(infrastructure as a service)基础架构即服务。就是创建一组虚拟机,自己管理维护。

优点:可以通过配置达到自动伸缩,可以自己管理虚拟机上的一切,比如子网。

缺点:

网络安全隐患,比如没有及时装安全漏洞的补丁。

成本很高。





3. azure 容器服务 (Azure container service)

适用场景:

azure container service更像是IAAS(infrastructure as a service)基础架构即服务的层面。如果希望在云环境自己管理维护docker容器可以考虑这种方案。





优点:

可以在云环境托管自己的docker镜像。

兼得docker镜像和云托管的好处。



缺点:

需要自己管理一切配置。如端口号需要映射从host到container,并要在最外部防火墙那里管理inbound outbound的规则。

docker中的容器通信,资源共享,可能需要借助storage account来解决,但有额外开销



4. 将docker部署在本地

优势:

可使用swarm或kubernate动态伸缩

节约托管成本,最大化利用硬件资源,单机就能托管多容器从而达到高可用

一次创建image可重复使用





弊端:

容器的创建完全动态并由swarm管理,应用的状态数据需要在存在容器外部

容器最好完全隔离。如果真需要通信,container之间通信需要创建bridge,跨节点通信需要创建overlay

容器的引入需要为持续集成环境配置额外的步骤,增加了devops的成本

container之间的共享资源需要额外处理



适用场景:

一定要本地部署并且要求docker。客户坚持需要把应用部署在本地,完全不用云。除了使用传统的多VM+负载均衡以外,可以使用docker。





结论。首选PAAS,就是azure app service + function app;如果需要容器化考虑azure container service(ACS);如果在本地部署,建议容器化;如果要传统的多vm+负载均衡也没问题,与docker比,只是硬件不能充分利用而已;不建议在azure上跑虚拟机 sets,开销太大还要自己维护。

推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有