Windows Azure Cloud Service (37) 浅谈Cloud Service
《Windows Azure Platform 系列文章目录》
最近在和一些客户聊天,常常被遇到这样的问题:
1.问题一:我在创建一个新的Windows Azure Virtual Machine的虚拟机时候,会同时创建同样名称的Cloud Service(云服务)。
我看微软的报价里说虚拟机会收费,云服务也会收费。这样的话,我使用虚拟机,是不是收取我虚拟机+云服务=2倍的费用?
2.问题二:我在使用VS2013,将asp.net的应用程序部署到微软的PaaS平台的时候,只会有Cloud Service,没有Virtual Machine,是为什么呢?
在这里,我就以上的问题简单的回答一下。
首先,什么是Cloud Service?
从我个人的理解,Cloud Service其实有两层的含义:
(1)第一层含义,对于IaaS平台来说,Cloud Service是容纳虚拟机的容器(container)。如下图:

对于上图来说,Cloud Service是一个容器,可以同时容纳两个虚拟机。
当我们新建一个虚拟机的时候,因为不存在容纳这个虚拟机的容器,所以Windows Azure会默认创建一个新的cloud service,然后将虚拟机加入到这个容器当中去。
那微软是否会收取Cloud Service + Virtual Machine两份费用呢?这个我专门求证过,微软只会收取Virtual Machine的费用。对于上图中的例子来说,微软只会收取2个virtual machine的费用。
(2)第二层含义,对于PaaS来说,Cloud Service是一个多层的Web应用程序。
用户可以定义前端的Web Role,用来响应客户端的请求;还可以定义后端的Worker Role,用来处理复杂的业务逻辑。
因为Azure PaaS平台使用的是Web Role和Worker Role,并不存在任何的虚拟机。所以在使用PaaS平台的时候,不会创建虚拟机。
假设一个用户在使用PaaS平台的虚拟机,创建了2台A2的Web Role和2台A2的Worker Role,那该用户需要支持的费用=2 * A2单价 + 2 * A2单价=4 * A2的单价费用。
接下来是DEMO时间,笔者将介绍如何查看一个Cloud Service,背后是否是PaaS服务,还是IaaS虚拟机呢?
1.首先我们登陆Azure Management Portal: https://manage.windowsazure.cn
2.点击Cloud Service(云服务),如下图:

如果发现云服务,实例中,显示生产、过渡,且名称无法点击跳转的,则这个服务器必定是PaaS Cloud Service服务。
3.点击Cloud Service(云服务),如下图:

如果发现云服务,实例中,没有显示生产、过渡,且名称可以点击跳转的,则这个服务器必定是IaaS虚拟机。
本博-三石Blog(下文简称本博),在本博客文章结尾处右下脚未注明转载、来源、出处的作品(内容)均为本博原创,本站对于原创作品内容对其保留版权, 请勿随意转载,如若真有需要的朋友可以发Mail联系我;转载本博原创作品(内容)也必须遵循“署名-非商业用途-保持一致”的创作共用协议,请务必以文 字链接的形式标明或保留文章原始出处和博客作者(Lei Zhang)的信息,关于本博摄影作品请务必注意保留(www.cnblog.com/threestone)等相关水印版权信息,否则视为侵犯原创版权 行为;本博谢绝商业网站转载。版权所有,禁止一切有违中华人民共和国著作权保护法及相关法律和本博(法律)声明的非法及恶意抄袭。
Windows Azure Cloud Service (37) 浅谈Cloud Service的更多相关文章
- 浅谈 kubernetes service 那些事(上篇)
一.问题 首先,我们思考这样一个问题: 访问k8s集群中的pod, 客户端需要知道pod地址,需要感知pod的状态.那如何获取各个pod的地址?若某一node上的pod故障,客户端如何感知? 二.k8 ...
- 浅谈 kubernetes service 那些事 (下篇)
欢迎访问网易云社区,了解更多网易技术产品运营经验. 五.K8s 1.8 新特性--ipvs ipvs与iptables的性能差异 随着服务的数量增长,IPTables 规则则会成倍增长,这样带来的问题 ...
- [Windows Azure] How to use the Queue Storage Service
How to use the Queue Storage Service version 1.7 version 2.0 This guide will show you how to perform ...
- [Windows Azure] How to use the Table Storage Service
How to use the Table Storage Service version 1.7 version 2.0 This guide will show you how to perform ...
- 浅谈android Service和BroadCastReceiver
1.题记 Android中的服务和windows中的服务是类似的东西,服务一般没有用户操作界面,它运行于系统中不容易被用户发觉,可以使用它开发如监控之类的程序. 广播接收者(BroadcastRece ...
- Java Service Wrapper 浅谈
在实际开发过程中很多模块需要独立运行,他们并不会以web形式发布,传统的做法是将其压缩为jar包独立运行,这种形式简单易行也比较利于维护,但是 一旦服务器重启或出现异常时,程序往往无法自行修复或重启. ...
- Windows进程间各种通信方式浅谈
1 Windows进程间通信的各种方法 进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码.数据以及它可利用的系统资源(如文件.管道等)组成. 多进程/多线程是Windows操作系 ...
- Windows进程间各种通信方式浅谈(转)
转自 https://blog.csdn.net/microzone/article/details/7044266 权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原 ...
- Python在Windows下安装第三方库浅谈
在用python编写代码时,往往需要用到第三方库,那么python如何去用第三方库呢,首先我们先来看看是如何安装的,方法可能会很多,但这边只介绍一种,其它请百度或google 比如asyncio,这里 ...
随机推荐
- 使用call来实现继承
function Class1(arg1,arg2) { this.name = arg1; this.pass = arg2; this.showSub = function() { return ...
- 软件工程课设day3
下载昨日新版本程序,完成修复项目的测试. 与组内成员讨论,确认项目新模块功能“吐槽墙”的设计方向与实现形式——因为项目为便捷工具类,社区形式的实现方式与项目本质背道而驰.因此决定以“点击目标课程条目, ...
- Android下集成Paypal支付
近期项目需要研究paypal支付,官网上的指导写的过于复杂,可能是老外的思维和中国人不一样吧.难得是发现下面这篇文章: http://www.androidhive.info/2015/02/andr ...
- 犀利的background-clip:text,实现K歌字幕效果
今天学到了一个新的CSS3属性,更准确的说是属性值,那就是background-clip:text.利用此属性值可以制作出很神奇的效果.可惜只有chrome支持,不过今天可以先来玩玩这个属性. 先来介 ...
- java算法(二)
四.最小公倍数最大公约数问题: 分析:两个数的最小公倍数等于两个数相乘再除以他们的最大公约数,因此只要求出最大公约数就可以啦. package JingDian; public class yuebe ...
- DISCUZ 自定义模板
DISCUZ 自定义模板 模板安装和维护 安装新模板 将模板template打包放在对应目录:template/ 后台 -> 界面 -> 风格管理 , 安装模板 后台 -> 界面 - ...
- ECMAScript5 Array新增方法
数组在各个编程语言中的重要性不言而喻,但是在之前的JavaScript中数组(JavaScript 数组详解)虽然功能已经很强大,但操作方法并不完善,在ECMAScript5中做了适当的补充. Arr ...
- 连接池技术 Connection Pooling
原创地址:http://www.cnblogs.com/jfzhu/p/3705703.html 转载请注明出处 和数据库建立一个物理连接是一个很耗时的任务,所以无论是ADO.NET还是J2EE都提供 ...
- 在Mongoose中使用嵌套的populate处理数据
假设有如下mongodb的schema定义: drawApply = new Schema({ salesId: { type: Schema.ObjectId, ref: 'sales' }, mo ...
- 纯js 判断手势滑动方向
$('body').on('touchstart', '#gallerySlider img', function(e) { var touch = e.originalEvent, startX = ...