Windows Azure开发心得(一) 概览

     现在是app为王的时代,app的最重要的特性之一就是互联,无论是IOS,Android还是Windows Phone和最近很火的Windows 8 Metro App,绝大多数都要依赖于在线的资源,而Windows Azure正是提供这类资源的很好的载体。上一篇是应了一些朋友的要求,写了一下Windows Azure的注册与BizSpark会员激活的一些操作,细心的朋友可以看出,无论是3个月免费试用还是BizSpark会员权利,Windows Azure都提供了很多免费的资源,这些资源如果能被充分的利用起来,就能帮助小企业和独立程序员很好的控制运营的成本。从学习成本上来看,Windows Azure的学习非常的简单,目前Windows Azure已经提供了多种服务器端技术的支持:.net,php,java,node.js,python,可以说目前主流的服务器端技术都已经涵盖了进来,为多种程序移植至Windows Azure提供了很多便利。这也是Windows Azure吸引我的重要原因。作为程序员,我准备把在Windows Azure上学习的成果一点点的写出来与朋友们分享,希望能对大家在开发上有所帮助,也希望能与朋友们一起讨论Windows Azure的开发和使用的技巧。

    我们先从Windows Azure的介绍开始,在Windows Azure官网上有了一篇很全面的介绍

   https://www.windowsazure.com/en-us/develop/net/fundamentals/intro-to-windows-azure

    因为其涵盖的内容很多,我希望能以之为参考,分几次写出来,而本文将重点介绍Windows Azure的体系结构,简要说明Windows Azure提供的服务。

    

Windows Azure 的组成结构:

 从图中可以看出,Windows Azure目前包含了11大部分:

1.Excution Models 执行模型

 

  执行模型包含了3种类型:

      a) Virtual Machines  虚拟机

            虚拟机想必大家都不陌生,Widows Azure提供的虚拟机其实就是一种IaaS(基础设施即服务)。虚拟机的性能、容量、系统可以根据用户需求来定制和收费。

      b) Web Sites 网站

            我们虽然可以在虚拟机上实现网站托管,但是虚拟机的系统是要自己来维护的,Windows Azure提供的Web Sites正是为了为用户提供免除系统维护的网站托管,换句话说,提供的是纯的IIS环境,用户通过这个环境可以在不用修改网站代码的情况下将网站部署在Web Sites上。在开发上,Web Sites支持.NET、PHP、Node.js,同时,支持SQL Database和MySql。

      c) Cloud Services 云服务

     包含了2种角色: Web Role  与 Worker Role,Cloud Service提供的服务相当于PaaS, Cloud Service提供了良好的维护性和扩展性,并且支持了 C#、 Java、 PHP、 Python、Node.js等服务器端技术。Cloud Service也是运行在虚拟机上,Windows Server的环境。

              

      以上3种执行模型既可以单独使用,也可以结合起来一起使用。后面文章会详细阐述这3种执行模型,在这里就不多说了

 

2.Data Management 数据管理

包含3个部分:

     a) SQL Database

       提供了与SQL Server相似的功能和访问方式

     b) Tables

        提供了类似NoSql的Key-Value存储和访问方式

     c) Blobs

         提供了非结构化数据(二进制数据)的存储和访问

 

3.Networking 网络

 

包含3个部分:

     a) Virtual Network  虚拟网络

         虚拟网络使用户能够将云服务作为其自身提供的服务的扩展,按需使用。

     b) Connect  连接

         如果说Virtual Network提供了强大可控的网络连接解决方案,那么Connect提供的是简单的连接,这种连接不需要特别设置和维护网络设备,仅仅需要在已有的Windows设备上安装连接软件,就能实现Windows设备与Windows Azure应用程序之间的安全通信。

     c) Traffic Manager 流量管理

         提供了在不同的数据中心之间进行访问流量切换的策略配置。

 

4.Business Analytics 业务分析

包含2个部分:

     a) SQL Reporting

         Windows Azure提供了SQL Reporting用来使用SQL Database中的数据进行数据分析,数据报表提供了多种格式,包括HTML、XML、PDF、Excel等,并且支持app和浏览器的多种访问方式。同时,因为SQL Database使用与SQL Server相似的技术,所以原有的SQL

Server的工具也能使用SQL Database的数据

     b) Hadoop

          在海量数据下,传统的基于关系数据库的数据仓库并不适用,所以,Windows Azure也提供了基与虚拟机的Hadoop和MapReduce的数据挖掘方式

 

5.Messaging 消息

    

   如果做过进程间通信,那么对于消息的概念一定不陌生,Windows Azure也提供了相应的进行程序间通信的机制:队列服务总线

     a) Queues 队列

        队列的概念很简单,一个程序把消息写入队列,另一个程序从队列中读出消息

     b) Service Bus 服务总线

         与队列的一对一通信不同,服务总线提供的是一对多的通信方式,一个程序在一个话题(topic)中发布消息,其他订阅该话题的程序都能收到这个消息

 

6.Caching 缓存

    缓存是提高程序性能的重要手段之一,将频繁使用的数据缓存起来,能够有效的降低服务器负载,在Windows Azure的 pay-as-you-go的策略下,也就意味着降低成本。

    

缓存分为了两种:

     a) Caching 内存缓存

         将频繁访问的数据放入内存缓存能显著提高程序性能

     b) CDN

         CDN是重要的网络加速技术,其原理是将资源复制到距离用户最近的站点,减少用户网络请求和响应的路由损耗,提高用户响应性能.Windows Azure提供了遍布全球的CDN站点,用来满足用户的需求。

 

7.Identity 身份识别

    身份识别在应用程序中占据重要的低位,根据用户提供相应的服务是当前程序中经常使用的策略。微软提供了 Windows Azure Active Directory来满足这种需求。

 

8.High-Performance Computing 高性能计算

    高性能计算是云计算中最吸引人的用途之一。高性能计算的本质是同时在多台机器上执行代码。在Windows Azure上,是通过同时在多台虚拟机(也就是前面讲到的执行模型中的虚拟机)上进行并行计算来实现的。为了实现并行计算,Windows Azure提供了HPC Scheduler进行程序调度。

 

9.Media 多媒体服务

    当前,视频资源已经占据了互联网流量的重要比重,而在未来,还会更高。但是想要在互联网上提供视频资源却不是简单的事情,涉及到一系列的技术,比如视频编码算法、播放形式以及在热点时段突发流量的响应等等。而为了使用视频技术,很多程序都面临着同样的问题,做了很多重新发明轮子的工作。而Windows Azure Media Services 正是为了解决这些问题,提供了一系列的组件来使应用程序的开发变得简单。其组成如图:

从图中可以看出,Windows Azure Media Services包含了资源上传、存储、编码、版权保护、资源分发等等一系列的组件,应用程序可以根据需要调用其中的任何部分,并且Media Services所提供的资源也能够服务于多种客户端,包括Windows, Macintosh, HTML 5, iOS, Android, Windows Phone, Flash,  Silverlight等等

 

10.Commerce 商业

    SaaS(软件即服务)的兴起改变了我们创建应用程序的方式,同时,也改变了我们销售应用程序的方式。Windows Azure Marketplace 提供了查找、购买和出售这种服务的功能。

在Windows Azure Marketplace中,用户能够查找并购买需要的Windows Azure应用和商业数据,包括人口数据、财经数据、地理数据等等。

 

11.SDKs 开发包

提供了5种服务器端技术的支持:

     a) .NET

     b) Java  

     c) PHP

     d) Python

     e) Node.js

  以上简单的介绍了Windows Azure提供的各种功能,希望这篇文章能使读者对Windows Azure有一个大概的了解,Windows Azure的变化很快,总有新的功能推出,还希望大家能够经常关注官网上的更新

原文地址:https://www.cnblogs.com/ruiqingzhang/p/2587870.html