54
使使 ASP.NET MVC 使使 Windows Azure 使使使使使使使 Sky Chang 使使使使使使 Blog.sanc.idv.tw

使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Embed Size (px)

DESCRIPTION

使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站. Sky Chang 天空的垃圾場 Blog.sanc.idv.tw. Sky Chang. Windows Azure 微軟最有價值專家. s [email protected]. 天空的垃圾場. ASP.NET MVC ALM Windows Azure. b log.sanc.idv.tw. 資料來源. Windows Azure : http://www.windowsazure.com 天空的垃圾場 : http:// blog.sanc.idv.tw - PowerPoint PPT Presentation

Citation preview

Page 1: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

使用 ASP.NET MVC 搭配Windows Azure 建構可擴展網站

Sky Chang天空的垃圾場Blog.sanc.idv.tw

Page 2: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Sky ChangWindows Azure 微軟最有價值專家

天空的垃圾場blog.sanc.idv.tw

• ASP.NET MVC• ALM• Windows [email protected]

m

Page 3: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

資料來源

Windows Azure : http://www.windowsazure.com

天空的垃圾場 : http://blog.sanc.idv.tw

Study4.TW : http://study4.tw

Windows Azure 雲端平台開發夥伴社群https://www.facebook.com/cloudexpert

Azure Taiwan User Group : https://www.facebook.com/groups/AzureTWUG/

MSDN : http://social.msdn.microsoft.com/Forums/zh-tw/home

Page 4: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Cloud ServiceDemo

Page 5: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

!! 警告 !!今天沒有笑話,如過程中有任何睡意,屬於正常現象

Page 6: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Agenda

Cloud Service

SLA 99.95

Storage ( 程式架構 )

Scaling - Cloud Service Cache ( LB 、 Session)

Azure 架構 ( Web Role and Work Role )

Page 7: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Cloud Service

Page 8: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Your Datacenter

Virtualization

O/S

Hardware

Network

Data

Applications

Firewall

Web Sites

Applications

Data

Cloud Services

Applications

Firewall Rules

Data

Virtual Network

Virtual Machines

Virtual Network

Data

Applications

Firewall Rules

O/S

Focus on the Application

Windows Azure

Page 9: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

What is a Cloud Service?

此容器包含了關聯的 Service Roles

Web Role Worker Role

Page 10: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Web Role

就是 -> IIS 7, 7.5 or IIS 8.0*ASP.NET 3.5 SP1, 4.0 or 4.5* – 64bit Hosts•Web Forms or MVC

•FastCGI applications (e.g. PHP)

Page 11: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Worker Role Patterns

Queue Polling Worker•Poll and Pop Messages 透過 while(true) 進行迴圈•E.g. 背景處理大量資料Listening Worker Role•建立 TCP Listener 或 WCF Service 、 Web API Host

•E.g. 執行 .NET SMTP server 或 WCF Service

External Process Worker Role•利用 OnStart 或 Run method 執行 Process.Start()

•啟動 Task 在背景工作•E.g. 執行 database server, web server, 分散式 cache

Page 13: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

守則一 不要想著放上雲 要想著如何放Web Role 和 Work Role 各有不同的效能,請選擇適合的家

Page 14: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Scaling

Page 15: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

1保留實體

:-)

實體

共享Web Role or Work Role

Page 16: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

2實體

:-)

實體

:-)

實體

Web Role or Work Role

Page 17: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

2共享

實體

:-)

實體

:-):-)

:-) :-)

:-)

:-) :-)

實體

Web Role or Work Role

Page 18: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

實體

:-)

CPU 使用率

auto-scaling

實體

:-)

實體

:-)

Page 19: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

ScalingDemo

Page 20: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

守則二 架構更勝於擴充雖然可以輕易擴展,但不代表不用背負 app 的效能。

Page 21: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Cloud Service Cache

Page 22: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

:-) :-) :-)

Cloud Service load balance

Page 23: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

:-) :-) :-)

SQL Database ( Azure Cache )

Cloud Service load balance

Page 24: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Cache on Role co-located

Page 25: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Cache on Role Caching on Dedicated Role

Page 27: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

守則三 設計無狀態的網站天然的尚好 !!!

Page 28: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Storage

Page 29: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Persistent Disks and Highly Durable

Windows Azure Storage

Windows Azure Storage (Disaster Recovery)

Virtual Machine

Page 30: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Persistent Disks and Highly Durable

Windows Azure Storage

Windows Azure Storage (Disaster Recovery)

Virtual Machine

Virtual Machine

Page 31: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

洋蔥架構 應用程式係圍繞著一個獨立的物件模型

來建構。 內層定義介面,外層實作介面。 耦合的方向是朝向中央。 應用程式的所有核心程式碼可以在與基

礎建設分離的情況下正常運行。 ( By 蔡煥麟老師翻譯 )

核心 : IOC & DI

Page 32: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

洋蔥架構

Page 34: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

守則四 要 Interface 化隔離…才是自保之道

Page 35: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

SLA 99.95

Page 36: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Service Level Agreements

包含項目Compute Hardware 故障 (disk, cpu, memory)

Datacenter 故障 - Network 故障 , power 故障Hardware 升級 , Software 維護– Host OS 升級

不包含項目VM 容器崩潰 , 客戶 OS 自行升級

99.95% for multiple role

instances4.38 hours of downtime 每一年

Server 2

SLA 99.95

Availability set

Server 1

Page 37: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Fault and Update DomainsFault Domains•代表有可能一起失敗的同一組資源•例如同一個機架、同一台 Server

Update Domains•代表一起更新的同一組資源•例如 OS 更新

Page 38: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Fault Domain

Rack

Fault and Update DomainsFault Domain

Rack

INSTANCE

INSTANCE

INSTANCE

INSTANCE

INSTANCE

INSTANCE

INSTANCE

INSTANCE

UD #1

UD #1

UD #2

UD #2

Page 39: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Virtual Machine Availability SetsUpdate Domains are honored by host OS updates

Fault DomainRack

Fault DomainRack

IIS1

SQL1

IIS2

SQL2

UD #2

UD #2

UD #1

UD #1

Page 40: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

SQL Server2

SQL Server1

End to End Highly Available SolutionRedundancy at every level

IIS Web Application

Web Role

IIS Web Application

Web Role

LB

SQ

L M

irro

ring

Internet

SQL-AVSET

IIS-AVSET

Page 41: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

守則五 真的需要 99.95!?事情沒有你想的那麼簡單… .

Page 42: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Azure 架構

Page 43: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Queue-Based Load Leveling Pattern

Page 44: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Queue-Based Load Leveling Pattern

Page 45: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Asynchronous Messaging

Page 47: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

守則六 搭配雲端的架構

Page 48: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

And then !? User Story 、 Test Case 、 BDD 、 TDD 、 Unit Test

SQL Server AlwaysOn ( HA ) Windows Azure Active Directory

Page 49: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

天空的垃圾場

Thank You

Page 50: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

50

提醒

上滿 4 堂課 交回問卷 問卷禮

Page 51: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

Microsoft MVP Award報名申請 : [email protected]

參加美國微軟產品組線上會議 MVP logo

使用權

提供產品建議給微軟產品組

美國 MVP全球年會

MSDN Online combo Subscription

MVP 專屬討論區 Knowledge Base

Technical Support3 個專業資訊人員技術支援服務

MVP 專屬 live meeting account

Page 52: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

MVA 學習資源 ( 持續更新中文課程 )• 立即上手 Windows Azure

http://aka.ms/mva-azure-overview • SQL Server 2014 線上交易記憶體內資料庫簡介

http://aka.ms/mva-sql2014 • 針對網站開發人員的 Visual Studio 使用技巧

http://aka.ms/vstips4web • Web Services 開發實戰 : 使用 ASP.NET Web API 2

http://aka.ms/mva-webapi2 • Visual Studio Online 與 Git 版本控管實戰

http://aka.ms/mva-vso-git • 使用 App Studio 快速開發 Windows Phone 應用程式

http://aka.ms/mva-appstudio

Page 53: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站
Page 54: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站

天空的垃圾場