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

没错,这是第一版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. 轻量级富文本编辑器wangEditor源码结构介绍

    1. 引言 wangEditor——一款轻量级html富文本编辑器(开源软件) 网站:http://www.wangeditor.com/ demo演示:http://www.wangeditor.c ...

  2. 自己动手打造WEB服务器 Windows + Apache + PHP + MySQL

    XWAMP并不打算打造一个多功能,零配置,方便调试的工具.XWAMP只是把原程序简单的组合在一起,利用CMD命令控制,真正的绿色版,只为了多学习点Windows + Apache + PHP + My ...

  3. Gradle基础

    什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. Gr ...

  4. Android启动模式launchMode

    在Android里,有4种Activity的启动模式并分别介绍下: standard singleTop singleTask singleInstance AndroidManifest.xml配置 ...

  5. 【代码笔记】iOS-给UIImageView加上圆角效果

    一,效果图. 二,代码. RootViewController.m #import "RootViewController.h" @interface RootViewContro ...

  6. 网络热恋之SDWebImage

    SDWebImage-master 是一个非常强大的三方. 当需要应用SDWeb时把文件夹里的SDWebImage文件夹放入工程里. 在需要使用网络获取图片的文件里进入头文件#import " ...

  7. git技巧记录--子模块删除方法

    把子模块推进去了,删掉吧(将子模块删除,然后提交推送),删除子模块步骤: 1.在Platform.Web库下,右键->Git Bash,进入git命令行窗口,输入:git rm –-cached ...

  8. nutz如何体现mvc思想的

    如何理解web mvc框架?? 一.没有使用mvc框架之前我们都是自己根据mvc分层思想的理解去把它物理化,比如:根据包的命名,根据类的后缀名,根据文件夹的命名去定义分层. 因为每个人对mvc的理解不 ...

  9. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  10. WebApi深入学习--特性路由

    特性路由 WebApi2默认的路由规则我们称作基于约定路由,很多时候我们使用RESTful风格的URI.简单的路由是没问题的,如 api/Products/{id},但有些事很难处理的,如资源之间存在 ...