Windows Azure云计算学习笔记1--Windows Azure简介
微软虚拟学院开班了,在此记录一下自己的学习笔记,如不对的地方,请各位前辈批评指正。
Windows Azure概览
------------------------------------------------------------------
计算(Compute)
存储(Storage)
控制(fabric controller)
内容分发网络(Content Delivery Network)
连接(Connect)
计算(Compute)
-------------------------------------------------------------------
Windows Azure计算服务可以执行各种各样的任务, 每种任务都是通过一个或者几个Role来完成。Windows Azure通常会同时运行一个Role的几个实例并通过负载均衡机制保障他们的高可用性。
如图所示,有下面这么几种Role:
1. Web Roles: 主要用来创建基于Web的应用程序。每一个Web Role都有一个已经配置好的IIS7。用户可以在上面部署通过ASP.net/ WCF等微软技术实现的Web应用。同时不限于微软技术web应用,PHP或者Java的也可以。
2. Worker Role: 工作角色是用来执行基于Windows的工作任务的。和Web Role不同就是他没有预配置好的IIS。工作角色可能会做些计算密集型的工作,比如渲染啊、仿真什么的。一般可以用Web Role和用户交互,然后把这些计算密集型的任务交给Worker Role去处理。 同样,除了使用微软.net技术外,程序员还可以使用其他非微软的技术来开发worker ro的应用。
3.VM Role: 这个比较好理解,就是一个Windows Server 2008 R2的虚拟机,用户可以通过类似远程桌面之类的工具登录上去,就像本地计算机一样使用。
用户可以通过HTTP、HTTPS、TCP等协议连接到各个Role,不过需要注意的是,由于Azure会有内置的负载均衡,每次连接的示例可能都不一样,所以要保证运行在云上的应用是无状态的。
用户可以根据负载的情况来决定是需要增加还是缩减使用的实例数。比如访问量或者计算量增加时需要增加实例获得更多计算能力,反则反之。虽然可以通过程序来实现,不过需要用户主动调整。就是不会说因为你的应用承受的压力大了就自动多开几个示例。其实也有道理,多开要多收钱的,肯定得你自己去弄表示同意才好。
存储Storage
-------------------------------------------------------------------
光计算不行,肯定还需要信息存储。Windows Azure提供了下面几种存储方式:
1. Blobs: 这些二进制大对象可以是视频、音频啥的,有一个简单的树形结构,每个容器可以包含一个或者几个Blob。Blob可以大到1T(1024G)。另外还可以包含一些简单的元数据信息,比如电影名字,歌手公司名等等。可以理解为就是一个在云上的NTFS文件系统。
2. 表(Table): 不要把这个和数据库中的表弄混了,不是一码事。每个表中存的是包含属性的实体Entity。这中结构比传统RDBMS好的地方就是伸缩性好,而且可以是跨机器的伸缩。
3. 对列(Queue):这个侧重于数据交换,比如Web Role和worker Role间的数据交换可以通过队列来实现。
Windows Azure的存储,可以由Azure应用来存取,也可以由本地计算机或者其他云平台上的应用通过HTTP协议以REST的方式来存取。
控制fabric controller
-------------------------------------------------------------------
Windows Azure计算和存储都驻留在微软数据中心中。数据中心有成千上万的计算机构成。要管理前面提到的计算Compute和存储Storage就得有个管事的,就是fabric Controler。
这个Fabric Controler本身也是一个分布式的应用。他来管理云环境下的所有资源,包括计算机、负载均衡器等等。他通过和每台计算机上fabric代理联系,从而知道每台机器的工作情况,实现统一管理。他的主要工作包括根据配置情况来启动适当的虚拟机VM并把他们纳入管理;状态监控、性能检测,补丁更新等等。
Windows Azuer提供了下面几种虚拟机可供选择
Extra-small, with a single-core 1.0 GHz CPU, 768MB of memory, and 20GB of instance storage.
Small, with a single-core 1.6 GHz CPU, 1.75 GB of memory, and 225 GB of instance storage.
Medium, with a dual-core 1.6 GHz CPU, 3.5 GB of memory, and 490 GB of instance storage.
Large, with a four-core 1.6 GHz CPU, 7 GB of memory, and 1,000 GB of instance storage.
Extra-large, with an eight-core 1.6 GHz CPU, 14 GB of memory, and 2,040 GB of instance storage.
内容分发网络(Content Delivery Network)
--------------------------------------------------------------------------
使用Blob存储方式常见的场景之一就是视频服务,而用户来自世界各地。CDN就是来把这些数据缓存到靠近客户的数据中心从而提高性能。
其实通俗的理解,就是一个全球缓存就好了。windows Azure现在只有对Blob类型数据的CDN。
连接(Connect)
-------------------------------------------------------------------------
前面提到了云端存储,可是现实情况是不可能让大家在一夜之间把数据全都搬到云上去。何况还有不少人对云的安全性心存疑虑,更是不愿让核心数据离开自己的视线。当如果有云端计算需要访问本地数据的情况下怎么办呢?这就是connect要解决的问题。
如上图所示,要使用windows Azure Connect,本地需要一个endpoint Agent代理,这个代理使用IPv6,所以只有支持IPv6的操作系统才行,比如windows server 2008,server 2008 R2, Vista和Windows 7.
Windows Azure应用也需要配置一下一遍和Azure Connect工作。配置完成后,就可以通过IPSec的方式来进行本地和云端的通信了。配置完成之后,云端程序可以无缝的访问本地的数据资源,用同样的连接字符就可以了。
先到此为止,下节课继续学。