✅ 操作成功!

e里云自助平台

发布时间:2023-06-07 作者:admin 来源:文学

e里云自助平台

e里云自助平台

低能耗-小学进率公式大全

2023年2月22日发(作者:上海交通大学校历)

Cloud Computing l云计算

微软云计算平台Azure概述(一)

■文,徐子岩郭梦婕

微软Azure平台为工程师们提供一个灵活的、熟悉的环境来创造云应用和服务。“灵活”是指

我们可以从Azure提供的多种服务里面选择我们需要的。“熟悉”是指我们建立自己的应用程

序时,不需要特地为其去学很多新的知识。

对 麓量 as an onlne ervice) ・Microsoft SQL Azure:建立在云端的关系型数据库(fuly relational

cloud database solution)

●WIndOWS AzU re PIatfo rm

AppFabric:使多个云端应用更为方

便的集成的平台(makes it simpier

t0 COnnect CIOUd Se rvices ai1d

onpremises applications)

本文将为大家分析一下前两种

服务。

Windows Azure

当我第一次听说Windows Azure

时,我不知道它和原来的主机托管服

务有什么区别。我们可以租用一个虚

拟的专用服务器或一个虚拟主机来上

传我们的网站文件,并通过llS或附

加的服务商提供的网络配置平台(如

godaddy)进行配置。这样的服务和

Windows Azu re有什么区别吗?在这

里,我将用“技术语言”和“商业语

言”来进行讲解。

WindOWS Azu re提供给用户的

并不只是一个服务器或一个虚拟机。

它提供了一个由许多基于windOWS

Azure操作系统虚拟化技术的服务器所

组成的服务平台。在Windows Azure

上部署你的网站后,你不需要自己操

作llS,也不需要考虑你的页面应该放

在哪里。

Windows Azu re提供的托管平

台附带微软的最新网络应用技术,如

ASPNET 3.5 SP1、4.0 Beta ̄DASP.

NET MVC等。同时它也提供一些其他

的平台,如PHP。

同时,WindOWS AZU re还提供

了简单的数据存储服务,如TabIe

Sto rage、BIOb Sto rage和Queue

Storage。

Table Storage提供结构化的数据

的存储服务。用户可以为数据定义相

关的类,然后通过存储表的接口保存

或获取你的数据。如果你需要存储一

些二进制数据,如图像、XML等,可

以使用Blob storage。如果你需要进行

一些Windows ̄E务或NT,EJ ̄.务的操作,

你可以 ̄queue storage为桥梁,与自

己的网站和服务进行交互。

在Windows Azure中,一个应用程

序可以被称为一个“角色”(Role),

你可以认为一个角色等于一个应用程

序。一个网络应用程序是一个网络角

色。你可以创建ASP.NET网络角色,

ASP.NET MVC网络角色或WCF服务网

络角色。你也可以创建Worker角色,

它指的是我前面提过的“后台服务”,

类似于Windows NT服务。Worker角

色将会在Azure的后台运行,在后台处

理如图像存档、收发邮件等操作。在

Windows Azure中,你看不到你的应

用程序所在的那个硬盘,所以所有的

数据都将被存储在3个存储服务中并由

Worker角色做后台的处理。

2O1O O3 109

1 Technology l技术

SOL Azure

与WindOWS AZU retl ̄比,SQL

Azure理解起来更容易。SQL Azure ̄D

传统的虚拟主机的数据库很像。这是

将一些SQL Server 2008的instances

装 ̄lJAzure OS上。一旦你应用了SQL

Azure,你会获得一个数据库地址、一

个用户名、一个密码和一个连接字符串

(ADO.NET和ODBC)。你可以通过

SQL Sewer Management Studio或其他

你喜欢的工具对其进行管理。

下面是个人的一点关于Azu re在

技术领域应用的经验。我们可以看

到,它与我们熟悉的原始的网络应用

程序开发没有很多的不同点。我们可

以在自己的应用程序中运用三层或N层

架构,服务器控件和MVC扩展都可以

在Azure下正常运行。区别只是一些在

Azure上部署时的配置问题。这就是微

软所说的“熟悉的环境”。

在业务方面,我们在Azu re上部

署的时候不需要考虑服务器的硬件配

置问题。Azu re只需要知道我们需要

多少CPU内核,以及我们需要多少带

宽。随着业务的增长,我们只需要增

加它们就可以了,并不需要改变服务

器和数据迁移问题。Azure的基础设施

会自动做好这些。

将来,Azu re会提供更多的诸如

Sharepoint、Dynamic CRM(XRM)等

的服务。届时,我们可以将我们的应用

程序直接在其基础上建立,不必装在自

己的本地上了。

虽然Azure应用是飞翔在天空的技

术,但是我们并不会飞,所以我们必须

要知道怎样在地面上进行开发。为了更

容易的在本地进行关于Azure的操作,

我们需要下载Azure SDK(http://www.

microsoft.com/downloads/)。

我们在Visual Studio的新项目对

话框里面安装好了SDK后,可以找到

一个新的分类,叫作“云服务(Cloud

110程序员

Service)”。选择了云服务后,我们可

以选择并添加我们需要的角色。我在

上面的讲解中曾经提到,一个角色等

于一个项目。现在,我们来添加一个

ASP.NET网络应用程序。选择“ASP

NET Web Role”,然后把它重命名为

“Web Role”(见图1)。

图1

现在我们来用一个网络角色来

创建一个新的Azu re应用,图2中有

两个项目:CloudSe rvice2是一个

AZU re项目,它只包含对WindOWS

Az U re的角色进行部署的配置。

Web Role是一个包含有传统的网络

应用的非常简单的项目,只有一个新

的文件,叫“WebRole.CS”。这个

文件包含了一些必需的程序,比如

application sta rted、cOnfiguratiOn

changing等。

图2

我们在默认的页面上添加一些测

试代码,然后按F5启动它,看看会发

生什么(见图3)。

臻 :w_叫M舢

£ 吣阵m封埘 燃,_ ≈≈

备f— r

MyAzureApplication

Formofeinfot.ma ̄eaboutAzurepleasevisitftZtlfeCOD ̄.

图3

在Visual Studio里面编译之后,

网站出现在了浏览器里,并显示出了

我改动的正确的内容。这和我们在本

地开发一个网站是一样的。但是请注

意,在任务栏里出来了一个小的蓝色

的(很丑的)Windows logo。右键菜

单中包括如图4显示的一些条目。

图4

Fabric是在本地运行的模拟器。

当在本地运行Azure的时候,它会被部

署在Fabirc上,然后运行所有需要的步

骤,和在Azure上一样。所以我们可以

在本地对其进行编码并调试,并不需

要在Azure上进行操作。如果我们点击

“Show Development Fabric UI”,

我们可以看到一个类似操作台的并显

示日志的界面。

让我们到默认的页面,在Page— Load模块里加一些日志。

System.DiagnOstics.Trace.

TraceInformation(“The Default.

aspx page had been opened.”)

然后按F5,我们可以看 ̄EJDevelop-

mentFabncUI上的日志显示。

接下来,让我们试试WindOWS

AzU re提供的存储。我们都知道,

Windows Azu re提供三个存储服务:

一曲

一甜

∞印

, ∞

2;

Table Storage、Blob Storage ̄1]Queue

Storage。现在只举一个如何在本地操

作它们的例子。 (在接下来的文章中将

会详细介绍这三个存储服务。)

在使用它们以前,我们需要建立

一个本地的存储模拟器。Azu re SDK

为我们提供了一个模拟器,但是我们

需要确保电脑上安装了SQL Server

2005 fExpress)或更高的版本。我们

以往Windows Azure SDK的安装文件

夹,通常是C:\Program Files\Windows

AZUre SDK\v1.0 and execute\bin\

devstore、DSInit.exe。它会在你的本地

SQL Server实例上为模拟器生成一个

表(图5)。你需要为目前的Windows

用户添加~个SQL Server的登录用户。

图5

如果你通过SSMS访问数据库,

可以看到模拟器生成的表。在本地

的存储器上工作时,我们的应用程

序会把这些表当作Windows Azure存

储的服务。Fabric用ADO.NETData

Service协议把它们暴露出来,与在

Azure上是一样的。所以我们可以像在

云上一样进行操作了。

现在让我们来测试一下存储器。

我们先创建一个简单的网络应用程序,

命名为“Whiteboard”,让所有人都可

以写东西并保存。我们希望保存文档并

显示在Default页面上。所以我们要为数

据实体创建一个类。现在来创建一个新

的类叫作CommentEntity,然后将下面

的代码粘贴:

public class CommentEntity:

TableServiceEntity

{ {

public string Content{get {

set;) j

public string Author{get

set;) J

public DateTime CreateOn{

get set;}

public CommentEntity() }

:base(DateTime.UtcNow. ;

ToString(”yyyyMMdd”),

string. {

Format《”{0:10)

{1 ,DateTime.

f MaxValue.Ticks—DateTime.Now.

}Ticks,Guid.NewGuid{)))

j {

} j

所有存储在存储表中的实体

都应该有2个公开的字符串属性:

PartitionKey和RowKey。他们是实体的

唯一标识。Azure SDK为我们提供一个

基础的类,叫作TableServiceEntity。

它包含Pa ̄itionKey和RowKey以及默认

的构造函数。你可以看到我们创建的

CommentEntity是派生自它的。

由于存储器是由ADO.NETData

Service暴露的,我们需要创建一个相

关的类去连接和消费它。我们添加另

外一个名为WhiteboardDataContext的

类,用于配置数据上下文和数据源。

private CloudStOrageAccOunt

一 } account

public

IQueryable<CommentEntity>

Comments

get

ret‘urn CreateQuery<Co

mmentEntity>(”Comments”)

public WhiteboardDataContext《

Cl0udStorageAccount account)

:base(account.

TableEndpoint.AbsoluteUri,

account.CredentiaIs)

account account。;

var tableS七0rage=new

Cloud Computing l云计算

ClOudTableClient(account.

TableEndpoint.AbsoluteUri,

一 account.Credentials)

if (!tableStorage.

D0esTableExist(”Comments”))

C1oudTableC1ient.Cr

eateTablesFromModel(typeof(Whi

teboardDataC0ntext), account.

TableEndpoint.AbsoluteUri,

一 account.eredentials)

public void

AddCommentEntity(CommentEntity

comment)

AddObject《”Comments”, i

comment) {

SaveChanges() {

WhiteboardDataContext派生自

TableServiceContext,它包含在Azure

SDK里面。我们刚才简单地为生成的

comments;bl:]了一个属性,并在存储器

中插入了一个新的评论。在构造函数

中,我们先检查一下评论的表是否已

经初始化。如果没有初始化的话,需

要从context类中创建这个表,并且通

过参数将凭证传递出去。

下面我们来到前端的文件

Default.aspx然后添加一个文本框,

一个添加新评论的按钮和一个在存

储器里显示所有评论的G ridView。

在后台的代码中,我们创建几个

methods:

public partial class

Default: {

l System・Web・UI-Page

; {

WhiteboardDataC0ntext

context

}protected void Page

一 Load(object sender,EventArgs e) l

context new Whiteboard

DataContext(CloudstoraqeAcc0unt.F f

romConfigurationSetting《”DataConn

ectiOnString”))

if(!ISPostBack) }

BindComments()

2010 O3 111

■Technology I技术

protected void

btnPostComment

Click(obj ect

sender,EventArgs e)

Var coFament=new

CommentEntity()

Content

txtNewComment.Text,

CreateOn=DateTime

NOw

conteXt.

AddCommentEntity(comment)

BindComments()

private void BindComments()

var comments= context

Comments.ToList()

gvComments.DataSource=

commentS

gvComments.DataBind()

首先,我们为刚刚创建的数

据COntext定义一个本地变量,并在

页面下载时初始化。然后我们调用

BindComments函数来生成所有评论以

及显示GridView。在那个类函数里面我

们访问评论的WMeBoardDalaConlext

属性。

当新添加一个评论的时候,

我们根据用户在文本框里键入的内

容,创建一个评论实体,并利用

AddCommenlE ty函数来插入并保存

改动。

在按下F5以前,我们需要专门

为Azu re开发做一些准备。首先,我

们需要定义一些配置,这些配置会

告诉我们的应用程序应该用哪一个

存储器。双击CloudService2项目下

的Web RoIe节点,到控制面板,

创建另外一个连接字符串,命名为

DataConnectString。然后在VaIue

CelI里打开编辑表格,选择第一个选

项,表明在本地开发存储。

下一步是为Azu re应用程序定义

配置读取器。修改OnStart函数,如下

面的代码所示:

112程序员

public override bool OnStart()

Diagn0sticMOnit0r.Start(“Dia

gnosticsConnectionString”)

}/For information on

handling configuration changes

//See the MSDN topic

at http://go.microsoft.com/

fwlink/?LinkId=166357.

Ro1eEnvironment.Changing+=

RoleEnvironmentChanging;

return base.OnStart()

现在我们可以运行这个应用程序

了。第一次运行时,在评论的表里什

么也没有,如图6所示。

图6

我们可以输入几行文字,加入系

统中(见图7)

蔫 号

女 舶 一 … r格-目,. _・呻・j坤 .'”

Whiteboard

…” :}I 一

譬 一.h

We

l ●■■% l

i  ̄0100

mm :

● 一l 一 ^伸 “・t∞

图7

请大家无视我不成熟的U I技

术。要点是这些被存在存储表里的评

论。如果你打开本地的SQL Server

数据库,你可以看到一些记录写入了

TableRow.

请注意,在Azu re平台中,数据

不是作为本地模拟器的结构存起来

的。在本地机器上,模拟器只是为

表的模式和数据各创建了一个表,

然后通过开发存储(deve10Pment

St0 ra g e)提供的数据服务显示

它们。

虽然我没有展示调试的截屏,

但是我们可以插入一个断点,并正

常调试。这就是我们怎样不通过

云,在本地机器上进行开发和调

试。但是在我们觉得可以发布以

后,确实需要将它上传到Azu re。在

下一篇文章中,我会介绍如何部署

Azure t-的应用程序。傍

郭梦婕 宇思信德科

技(北京)有限公司

中国市场负责人,主

管宇思信德ChinaAPI

等相关业务,对中国

市场有深刻理解和研究。

●责任编辑:郭晓刚(guoxg@csdn.net)

t S

a , n r e . o u m t i g a f t

i N o .a

.f g S e r e n.1 0 m U r 0 f r 1 g

u C n C t.1 Z t o .1 n f A e C M U n e

s S R 0 m w . r e C a 0 t r e C t N d n e t 1 e g n U h t v G 1

,1 O S> e r .f W C i= S e t n

.e l g S n o t A b i .e C f e U r f e m

0 g P e n r n e

S a g t 0 U 0 U

0 r n t C Z r l

r o i e A 1 a

C t t S S v V

1 S t g w n g, M d e 1 o E n

u S f d e i

o n n n l t

l 0 o .1 0 t C 1 C W R e

👁️ 阅读量:0