【转】Azure应用部署方式对比

如图



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,开销太大还要自己维护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言哪个方法称为程序大门,学会这8个经典小程序,就相当于跨入了C语言大门...

描述【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。2.程序源代码&#x…

【转】无服务计算(Serverless Computing)核心知识

Serverless Computing概念 云原生计算基金会CNCF(Cloud Native Computing Foundation, CNCF)Serverless Whitepaper v1.0对无服务器计算作了如下定义: Serverless computing refers to the concept of building and running applications tha…

c语言中指数优化,西藏东财中证医药卫生指数C净值下跌1.96% 请保持关注

来源:金融界基金作者:机器君金融界基金08月07日讯 西藏东财中证医药卫生指数型发起式证券投资基金(简称:西藏东财中证医药卫生指数C,代码008552)公布最新净值,下跌1.96%。本基金单位净值为1.397元,累计净值…

PE文件结构详解(一)基本概念

(一)基本概念 PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,P…

【转】.NET平台开发Mongo基础知识

NoSQL简介 NoSQL相关的技术最近越来越受欢迎,Mongo本身就是基于NoSQL实现的。关于NoSQL你需要了解 什么是NoSQLNoSQL和传统的关系型数据库有什么区别NoSQL的优缺点 这几个问题下面的文章有所介绍: http://www.runoob.com/mongodb/nosql.html http://…

android studio如何编译测试,Android Studio 进行单元测试完整教程

前言为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作。我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿。我的AndroidStudio我的AndroidStudio是1.5.1版本,但是进行单元测试应该很早的版…

android 对话框白色样式,Android 对话框(Dialog)样式大全以及简单实现

下面是几种对话框的效果图一:图二:图三:图四:图五:图六:图七:图1效果:该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。代码&…

【转】ABP源码分析二十一:Feature

Feature是什么?Feature就是对function分类的方法,其与function的关系就比如Role和User的关系一样。 ABP中Feature具有以下属性: 其中最重要的属性是name,用以表示feature的Identity,一个feature拥有一个name. 一个Feature可以有一…

android虚拟电话号码,为何安卓手机坚持虚拟按键?这才是原因

关于屏内虚拟按键设计的好坏,一直都存在很大的争议。围绕着屏内虚拟按键,支持者与反对者之间进行了长期的争论,至今仍未分出胜负。然而,当多功能前置指纹按键开始普及的时候,屏内虚拟按键似乎正在逐步走向边缘化。不过…

【转】ABP源码分析二十二:Navigation

MenuDefinition:封装了导航栏上的主菜单的属性。 MenuItemDefinition:封装了主菜单的子菜单的属性。子菜单可以引用其他子菜单构成一个菜单树 UserMenu/UserMenuItem:封装了用于显示给用户的菜单/以及子菜单集合。 ABP通过MenuDefinition/Me…

【转】ABP源码分析二十三:Authorization

Permission&#xff1a;用于定义一个Permission&#xff0c;一个permission可以包含多个子Permission. PermissionDictionary&#xff1a;继承自Dictionary<string, Permission>类&#xff0c;很明显是一个用于存储permission对象的字典。 IPermissionDefinitionContext…

VI/VIM键盘图

转载于:https://www.cnblogs.com/sdjc/archive/2006/09/14/1949532.html

android确认密码代码,Android手机卫士之确认密码对话框

本文接着实现“确认密码”功能&#xff0c;也即是用户以前设置过密码&#xff0c;现在只需要输入确认密码布局文件和《Android 手机卫士--设置密码对话框》中的布局基本类似&#xff0c;所有copy一下&#xff0c;修改一点细节就搞定&#xff1a;android:layout_width"matc…

修改MD5加密 提高网站安全

发表文章 修改MD5加密 提高网站安全2006-08-28 16:23:55大 中 小特别说明&#xff1a;此种改变只能用于在刚开始建站时才可&#xff0c;如果你中途改变的话就会出现问题。   也许提到MD5时大家都很熟&#xff0c;但你真的是这样吗&#xff1f;了解其是如何进行散列的实际过…

【转】ABP源码分析二十四:Notification

NotificationDefinition: 用于封装Notification Definnition 的信息。注意和Notification 的区别&#xff0c;如果把Notification看成是具体的消息内容&#xff0c;NotificationDefinition则是对这个消息自身的定义&#xff08;可理解为消息的类型&#xff09;。 INotification…

【转】ABP源码分析二十五:EventBus

IEventData/EventData: 封装了EventData信息&#xff0c;触发event的源对象和时间 IEventBus/EventBus: 定义和实现了了一系列注册&#xff0c;注销和触发事件处理函数的方法。EventBus定义了一个Dictionary容器来存放事件和处理该事件的对象(其实不是对象而是Factory&#xf…

深入Atlas系列:Web Sevices Access in Atlas示例(4) - 使用HTTP GET调用Web Services方法...

在之前的例子里&#xff0c;由于Atlas客户端在调用Web Services方法时总是使用了Sys.Net.ServiceMethod类&#xff0c;因此始终使用了HTTP POST方法与服务器端进行交互。POST方法有其好处&#xff0c;不过GET方法也自有其价值。我们在使用Atlas进行Web Services调用时&#xff…

【转】ABP源码分析二十六:核心框架中的一些其他功能

本文是ABP核心项目源码分析的最后一篇&#xff0c;介绍一些前面遗漏的功能 AbpSession AbpSession: 目前这个和CLR的Session没有什么直接的联系。当然可以自定义的去实现IAbpSession使之与CLR的Session关联 IAbpSession&#xff1a;定义如下图中的四个属性。 NullAbpSessio…

【转】ABP源码分析二十七:ABP.Entity Framework

IRepository&#xff1a;接口定义了Repository常见的方法 AbpRepositoryBase&#xff1a;实现了IRepository接口的常见方法 EfRepositoryBase:实现了AbpRepositoryBase中定义的抽象方法&#xff1a;GetAll&#xff0c;Insert&#xff0c;Delete&#xff0c;Update。在实际项目…

泛型实现List(ListT)排序

代码 publicclassPost : IComparable<Post>{ privatestringid string.Empty; privatestringtitle string.Empty; privateintorderby; publicstringID { get{ returnid; } set{ id value; } } pu…