怀旧一把,还记得这个界面吗?

没错,这是第一版Windows Azure Management Portal,用Silverlight开发的,很炫!

奇怪,为什么没有Virtual Machine?

是的,最初的Windows Azure中是没有虚拟机的!

看到Hosted Service了吧?这就是Cloud Service的前身。Windows Azure原本是从PaaS开始起步的,这不难理解——微软的操作系统、开发工具是业界领先的,将传统的操作系统和开发工具“云化”,借力原有的客户群和市场影响力,无疑将成为Windows Azure的一大先天优势。

Hosted Service包括两种角色:

  • Web Role:Web Application (ASP.NET,PHP,Java...)
  • Worker Role:WCF Service (Web Service,RESTful Service)

无论是Web Role还是Worker Role,都是host在虚拟机上,而且是运行Windows Server的虚拟机。只是这些虚拟机由Windows Azure统一管理,用户并不需要去关注它们,或者说虚拟机被Windows Azure给包装起来了。用户通过Visual Studio创建和发布Hosted Service。一个Hosted Service可以有多个instance,每个instance对应一个虚拟机。总之,对用户而言,完全感觉不到虚拟机的存在。非常完整、优雅的PaaS体验!

后来,Hosted Service中出现了一个新的Role:VM Role——这个可以算是Virtual Machine的前身了。用户通过VM Role,可以在虚拟机上自由的部署应用或者对Web Role和Worker Role进行更加灵活的定制和调整。

据说,Windows Azure在Hosted Service中增加VM Role,是因为跟风AWS EC2。显然后退四五年,大多数用户对虚拟机(IaaS)的理解和接受程度远远高于托管服务(PaaS)。理念太超前了,难免高处不胜寒。

再后来,VM Role变成了独立的Virtual Machine,并且加入了对Linux操作系统的支持,用户终于可以在Windows Azure上部署并使用Linux操作系统啦。其实Hyper-v本来就支持Linux操作系统作为Guest OS,只不过在当时,Linux还被微软视为“癌症”。

虽然VM Role最终修成正果——成为独立的Virtual Machine,但其依然无法摆脱Hosted Service。毕竟这是一个关键而且核心的底层的架构设计,没那么容易轻易的被改变或者淘汰。Hosted Service也随之演变成现在的Cloud Service。虽然Cloud Service变得越来越强大,但其毕竟是源于Hosted Service的。而Web Role,Worker Role的概念也在逐渐的被淡化。

既然已经知道了“前因后果”,那么我们来总结一下对Cloud Service的认知吧:

  • Cloud Service是一个容器,它可以包括托管服务或者虚拟机。
  • 部署在Cloud Service中的托管服务虽然支持Java,PHP,Python、Ruby、Node.js等开源技术,但用来host托管服务的虚拟机运行的是Windows Server操作系统,一个托管服务的instance就是一个运行Windows Server操作系统的虚拟机,一个托管服务可以包含多个instance。
  • 一个虚拟机必须放置在一个Cloud Service中。一个Cloud Service可以包含多个虚拟机,但一个虚拟机只能隶属于一个Cloud Service。
  • 一个Cloud Service默认分配一个VIP,即:动态分配的公网IP地址。
  • 一个Cloud Service默认分配一个唯一的二级域名。中国版是:xxx.chinacloudapp.cn;国际版是:xxx.cloudapp.net。
  • 同一个Cloud Service中的虚拟机通过NAT连接到公网,即:在默认配置中,多个虚拟机共享同一个VIP。
  • 虚拟机通过终结点(endpoint)实现端口映射,例如:将内网的22端口映射至公网的2222。
  • 同一个Cloud Service中的多个虚拟机不能向公网开放相同的端口(终结点/endpoint),例如:Server A向公网开放了80端口,那么与Server A在同一个Cloud Service中的虚拟机就不能再向公网开放80端口。
  • 每个Cloud Service可以配置一个或者多个负载均衡终结点(endpoint),Cloud Service中的虚拟机可以通过负载均衡终结点对外(对公网)提供服务。

为什么是 Cloud Service?的更多相关文章

  1. Azure PowerShell (10) 使用PowerShell导出订阅下所有的Azure VM和Cloud Service的高可用情况

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China服务. 该脚本下载地址在http://files.cnblogs.co ...

  2. 跟我学Windows Azure 四 Cloud Service中的WebRole与WorkRole,及他们之间的通信

    Cloud Service 中WebRole就相当与我们的WebSite,而WorkRole相当与我们在服务器上写了个Windows Service,站在高可用的角度上来讲,Cloud Service ...

  3. Azure China (3) 使用Visual Studio 2013证书发布Cloud Service至Azure China

    <Windows Azure Platform 系列文章目录> 之前有很多网友询问我如何通过VS发布Cloud Service至Azure China,这里我专门写篇文章,给大家详细介绍下 ...

  4. Windows Azure Cloud Service (1) 用户手册

    <Windows Azure Platform 系列文章目录> 下载地址 Cloud Service用户手册

  5. Windows Azure Cloud Service (11) PaaS之Web Role, Worker Role(上)

    <Windows Azure Platform 系列文章目录> 本文是对Windows Azure Platform (六) Windows Azure应用程序运行环境内容的补充. 我们知 ...

  6. [SDK2.2]Windows Azure Cloud Service (35) 使用VS2013发布Azure Cloud Service

    <Windows Azure Platform 系列文章目录> 好久没有更新BLOG了,今天我们继续Windows Azure相关的内容. 笔者最近把Visual Studio升级到了20 ...

  7. Windows Azure Cloud Service (36) 在Azure Cloud Service配置SSL证书

    <Windows Azure Platform 系列文章目录> 在某些时候,我们需要在Azure PaaS Cloud Service配置HTTPS连接.本章将介绍如何在本地创建证书,然后 ...

  8. Windows Azure Cloud Service (37) 浅谈Cloud Service

    <Windows Azure Platform 系列文章目录> 最近在和一些客户聊天,常常被遇到这样的问题: 1.问题一:我在创建一个新的Windows Azure Virtual Mac ...

  9. Windows Azure Cloud Service (38) 微软IaaS与PaaS比较

    <Windows Azure Platform 系列文章目录> 最近一直想总结Azure IaaS和PaaS的区别与比较,写个博文详细说明一下.建议读者在阅读之前,先熟悉微软PaaS和Ia ...

  10. Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台

    <Windows Azure Platform 系列文章目录> 本文将简单介绍,如何将企业内现有的ASP.NET应用程序迁移到Azure PaaS平台. 因为在迁移过程中,可能需要对现有的 ...

随机推荐

  1. Tsql查询执行顺序(二)

    来源:http://www.cnblogs.com/gaiyang/archive/2011/04/13/2014356.html T-SQL查询处理这种逻辑处理顺序,是理论上的处理过程,实际情况还会 ...

  2. 探秘Java中的String、StringBuilder以及StringBuffer

    探秘Java中String.StringBuilder以及StringBuffer 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问 到的地方,今天就来和大家一起学习 ...

  3. 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...

  4. mysql整数字段 int bigint smallint tinyint

    mysql中int.bigint.smallint和tinyint的区别与长度 未完待续...

  5. javascript 函数初探 (六)--- 闭包初探#1

    首先我们来看一个函数: var a = 'global variable'; var F = function(){ var b = 'local variable'; var N = functio ...

  6. ae保存图层

    public static void OperateMapDoc(AxMapControl axMapC,string path, string strOperateType) { try { /// ...

  7. ArcGIS Desktop 遇到严重的应用程序错误

    由于项目初验,忙了几个月(感觉忙得并不值),好久都没更新博客了. 一.问题 在关闭ArcMap时,ArcGIS Desktop 遇到严重的应用程序错误.环境是Windows 10,新装的系统.以前出现 ...

  8. SharePoint2007:解决第二回收站大数据无法删除问题

    Emptying the Second Stage Recycle Bin in SharePoint 2007   Look in your second stage recycle bin in ...

  9. OC笔记

    self的概念:指向了当前对象(方法的调用者) self的用途 可以利用  self -> 成员变量名  访问当前对象内部的成员变量 [self 方法名];  调用其他对象方法或者类方法 所有继 ...

  10. Android 视频播放器 VideoView 的使用,播放本地视频 和 网络 视频

    1.布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:and ...