Windows Azure Cloud Service xinfangmicrosoft com DPE Windows

  • Slides: 38
Download presentation
Windows Azure Cloud Service 方� xinfang@microsoft. com DPE

Windows Azure Cloud Service 方� xinfang@microsoft. com DPE

基本原� 所有Windows�用都可以 �言 C#, VB, C++, Java, PHP, Node. js, Phython, etc. 运行�境框架 .

基本原� 所有Windows�用都可以 �言 C#, VB, C++, Java, PHP, Node. js, Phython, etc. 运行�境框架 . NET, Express. JS, Rails, Zend, etc.

Example role with nine virtual machines distributed across three fault domains ROLE Fault Domain

Example role with nine virtual machines distributed across three fault domains ROLE Fault Domain 1 Fault Domain 2 VM 1 VM 3 VM 2 VM 4 VM 5 VM 8 VM 6 VM 9 Fault Domain 3 VM 6 VM 9

将状�信息、数据存�在 Azure的各种数据服�上 Shared Cache Queues Table Blob Drive SQL Azure 或其他数据 �

将状�信息、数据存�在 Azure的各种数据服�上 Shared Cache Queues Table Blob Drive SQL Azure 或其他数据 �

Shared Cache Queues Table Blob Drive SQL Azure 或其他数据 �

Shared Cache Queues Table Blob Drive SQL Azure 或其他数据 �

Demo

Demo

. Net Java Node. js Php/Python

. Net Java Node. js Php/Python

Visual Studio 2010/2012 Project Templates Model & Config Tooling Package & 1 Click Deploy

Visual Studio 2010/2012 Project Templates Model & Config Tooling Package & 1 Click Deploy Debugging Support Storage Explorer Server Explorer Intelli. Trace Support Profiling Support

METHODS EVENTS Status. Check On. Stop Fabric Calls Role Lifetime Run Busy Status. Check

METHODS EVENTS Status. Check On. Stop Fabric Calls Role Lifetime Run Busy Status. Check Ready Status. Check Stopping Busy Requests Routed On. Start STATUS

Inherits Role. Entry. Point On. Start() Method Run() Method Main logic is here –

Inherits Role. Entry. Point On. Start() Method Run() Method Main logic is here – can do Called by Fabric on startup, anything, typically infinite loop. allows you to perform Should never exit. initialization tasks. Reports Busy status to load balancer until you return true. On. Stop() Method Called when role is to be shutdown, graceful exit. 30 Seconds to tidy up.

 • �行一条命令,如文件拷� • 运行一个程序,如Java • <? xml version="1. 0" encoding="utf-8"? > • <Service.

• �行一条命令,如文件拷� • 运行一个程序,如Java • <? xml version="1. 0" encoding="utf-8"? > • <Service. Definition name="Windows. Azure. Project 11" xmlns="http: //schemas. microsoft. com/Service. Hosting/2008/10/Service. Definition"> • <Worker. Role name="Worker. Role 1" vmsize="Small"> <Runtime execution. Context="limited"> • • <Entry. Point> • • • </Entry. Point> • </Runtime> • <Endpoints> • • <Program. Entry. Point command. Line="my. Process. exe" set. Ready. On. Process. Start="true" /> <Input. Endpoint name="Endpoint 1" protocol="tcp" port="80" /> </Endpoints> </Worker. Role>

Queue Polling Worker Poll and Pop Messages within while(true) loop E. g. Map/Reduce pattern,

Queue Polling Worker Poll and Pop Messages within while(true) loop E. g. Map/Reduce pattern, background image processing Listening Worker Role Create Tcp. Listener or WCF Service Host E. g. Run a. NET SMTP server or WCF Service External Process Worker Role On. Start or Run method executes Process. Start() Startup Task installs or executes background/foreground process Custom Role Entry Point (executable or. Net assembly) E. g. Run a database server, web server, distributed cache

All features of a worker role + IIS 7 or 7. 5 ASP. NET

All features of a worker role + IIS 7 or 7. 5 ASP. NET 3. 5 SP 1 or 4. 0 – 64 bit Hosts Webforms or MVC Fast. CGI applications (e. g. PHP) Multiple Websites Http(s) Web/Worker Hybrid Can optionally implement Role. Entry. Point

Windows Azure Services are described by two important artifacts: Your code is zipped and

Windows Azure Services are described by two important artifacts: Your code is zipped and packaged with definition (*. cspkg) Windows Azure consumes just (*. cspkg + *. cscfg)

Service Definition Describes the shape of your Windows Azure Service Defines Roles, Ports, Certificates,

Service Definition Describes the shape of your Windows Azure Service Defines Roles, Ports, Certificates, Configuration Settings, Startup Tasks, IIS Configuration, and more… Can only be changed by upgrades or new deployments

Service Definition <? xml version="1. 0" encoding="utf-8"? > <Service. Definition name="Web. Deploy" xmlns="http: //schemas.

Service Definition <? xml version="1. 0" encoding="utf-8"? > <Service. Definition name="Web. Deploy" xmlns="http: //schemas. microsoft. com/Service. Hosting/2008/10/Service. Definition"> <Web. Role name="Web. UX"> <Startup> <Task command. Line=". . StartupEnable. Web. Admin. cmd" execution. Context="elevated" task. Type="simple" /> </Startup> <Imports> <Import module. Name="Remote. Access" /> <Import module. Name="Remote. Forwarder"/> </Imports> <Site name="Web"> <Bindings> <Binding name="Http. In" endpoint. Name="Http. In"/> </Bindings> </Sites> <Endpoints> <Input. Endpoint name="Http. In" protocol="http" port="80"/> <Input. Endpoint name="mgmtsvc" protocol="tcp" port="8172" local. Port="8712"/> </Endpoints>

Service Configuration Supplies Runtime Values (Scale, Config Settings, Certificates to use, VHD, etc. )

Service Configuration Supplies Runtime Values (Scale, Config Settings, Certificates to use, VHD, etc. ) Can be updated any time through Portal or API

Service Configuration <? xml version="1. 0"? > <Service. Configuration service. Name="Web. Deploy" xmlns="http: //schemas.

Service Configuration <? xml version="1. 0"? > <Service. Configuration service. Name="Web. Deploy" xmlns="http: //schemas. microsoft. com/service. Hosting/2008/10 Service. Configuration "> <Role name="Webux"> <Instances count="1"/> <Configuration. Settings> <Setting name="Diagnostics. Connection. String" value="Use. Development. Storage=true/> <Setting name="Microsoft. Windows. Azure. plugins. Remote. Access. Enabled " value="True"/> <Setting name="Microsoft. Windows. Azure. plugins. Remote. Access. Account. Username " value="dunnry"/> <Setting name="Microsoft. Windows. Azure. plugins. Remote. Access. Account. Encrypted. Password " value="MIIBr. AYJKo. ZIhvc. NAQc. Do. IIB"/> <Setting name="Microsoft. Windows. Azure. plugins. Remote. Access. Account. Expiration " value="2010 -12 -23 T 23: 59. 0000000 -07"/> <Setting name="Microsoft. Windows Azure. Plugins. Remote. Forwarder. Enabled" value="True"/> <Configuration. Settings> <Certificates name="Microsoft. Windows. Azure. Plugins. remote. Access. Password. Encryption " thumbprint="D 6 BE 55 AC 439 FAC 6 CBEBAF"/> </Certificate> </Role> </Service. Configuration>

Windows Azure VM Size Extra Small Medium Large Extra Large CPU Cores Shared 1

Windows Azure VM Size Extra Small Medium Large Extra Large CPU Cores Shared 1 2 4 8 CPU Speed 1. 0 GHz 1. 6 GHz Memory 768 MB 1. 75 GB 3. 5 GB 7 GB 14 GB Bandwidth 5 (Mbps) 100 (Mbps) 200 (Mbps) 400 (Mbps) 800 (Mbps) # Data Disks 1 2 4 8 16 Local Storage 20 GB 225 GB 490 GB 1, 000 GB 2, 040 GB Cost (USD) 0. 02 0. 12 0. 24 0. 48 0. 96

Don’t just throw big VMs at every problem Scale out architectures have natural parallelism

Don’t just throw big VMs at every problem Scale out architectures have natural parallelism Test various configurations under load More small instances == more redundancy Some scenarios will benefit from more cores Where moving data >$ parallel overhead E. g. Video processing, Stateful services (DBMS)

�界防火�及��均衡 VM 1 VM 2 VM 3 Input Endpoint: 80,对外 8080 VM 1 VM

�界防火�及��均衡 VM 1 VM 2 VM 3 Input Endpoint: 80,对外 8080 VM 1 VM 2 VM 3 Internal Endpoint: 80,允许Role 1访问 Cloud service VM 1 VM 2 VM 3 Instance Input Endpoint: 1000,对外 1000 -1002

Role instances have available disk storage Use Local. Storage element in service definition Persistent

Role instances have available disk storage Use Local. Storage element in service definition Persistent but not guaranteed durable Windows Azure Storage Drives provide guaranteed durable storage

DEFINE IN CONFIG <Local. Resources> <Local. Storagename="my. Local. Disk" size. In. MB="10" clean. On.

DEFINE IN CONFIG <Local. Resources> <Local. Storagename="my. Local. Disk" size. In. MB="10" clean. On. Role. Recycle="false" /> </Local. Resources> USE IN CODE string root. Path = Role. Environment. Get. Local. Resource["my. Local. Disk"]. Root. Path; Directory. Info di = new Directory. Info(root. Path); foreach(di. Enumerate. Files()) ….

ROLE Production Staging VM 1 VM 2 VM 3 VM 4

ROLE Production Staging VM 1 VM 2 VM 3 VM 4

运行�序如下 1. Role Instance Starts 2. Diagnostic Monitor Starts 3. Monitor is configured 4.

运行�序如下 1. Role Instance Starts 2. Diagnostic Monitor Starts 3. Monitor is configured 4. Monitor buffers data locally 5. Transfer to storage from local buffer Role Instance Local directory storage Azure Storage Diagnostics行�

WAD-Control-Container Contains XML Configuration for each Role Instance in the Service DIAGNOSTIC DATA LOCATION

WAD-Control-Container Contains XML Configuration for each Role Instance in the Service DIAGNOSTIC DATA LOCATION IN STORAGE Windows Event Logs WADWindows. Event. Logs. Table Performance Counters (including custom performance counters) WADPerformance. Counters. Table Windows Azure Logs WADLogs. Table Diagnostic Infrastructure Logs WADDiagnostic. Infrastructure. Logs. Table IIS Logs wad-iis-logfiles - WADDirectories. Table (index entry) IIS Failed Request Logs wad-iis-failedreqlogfiles - WADDirectories. Table (index entry) Crash Dumps wad-crash-dumps - WADDirectories. Table (index entry) Custom File Based Logs (must be configured) - WADDirectories. Table (index entry)

Demo

Demo

Cloud Service is for multi-tier online services Service model defines service shape Service configuration

Cloud Service is for multi-tier online services Service model defines service shape Service configuration defines service scale Selectable VM Sizes Upgrading and Deployment

常用�源 http: //www. windowsazure. com/zh-cn/ http: //www. microsoft. com/enus/download/details. aspx? id=8396 http: //social. msdn.

常用�源 http: //www. windowsazure. com/zh-cn/ http: //www. microsoft. com/enus/download/details. aspx? id=8396 http: //social. msdn. microsoft. com/Forums/zh. CN/windowsazurezhchs/threads http: //blogs. msdn. com/b/azchina/ http: //blog. csdn. net/azurechina

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.