Download - 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站
![Page 1: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/1.jpg)
使用 ASP.NET MVC 搭配Windows Azure 建構可擴展網站
Sky Chang天空的垃圾場Blog.sanc.idv.tw
![Page 2: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/2.jpg)
Sky ChangWindows Azure 微軟最有價值專家
天空的垃圾場blog.sanc.idv.tw
• ASP.NET MVC• ALM• Windows [email protected]
m
![Page 3: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/3.jpg)
資料來源
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/4.jpg)
Cloud ServiceDemo
![Page 5: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/5.jpg)
!! 警告 !!今天沒有笑話,如過程中有任何睡意,屬於正常現象
![Page 6: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/6.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/7.jpg)
Cloud Service
![Page 8: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/8.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/9.jpg)
What is a Cloud Service?
此容器包含了關聯的 Service Roles
Web Role Worker Role
![Page 10: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/10.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/11.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/13.jpg)
守則一 不要想著放上雲 要想著如何放Web Role 和 Work Role 各有不同的效能,請選擇適合的家
![Page 14: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/14.jpg)
Scaling
![Page 15: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/15.jpg)
1保留實體
:-)
實體
共享Web Role or Work Role
![Page 16: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/16.jpg)
2實體
:-)
實體
:-)
實體
Web Role or Work Role
![Page 17: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/17.jpg)
2共享
實體
:-)
實體
:-):-)
:-) :-)
:-)
:-) :-)
實體
Web Role or Work Role
![Page 18: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/18.jpg)
實體
:-)
CPU 使用率
auto-scaling
實體
:-)
實體
:-)
![Page 19: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/19.jpg)
ScalingDemo
![Page 20: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/20.jpg)
守則二 架構更勝於擴充雖然可以輕易擴展,但不代表不用背負 app 的效能。
![Page 21: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/21.jpg)
Cloud Service Cache
![Page 22: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/22.jpg)
:-) :-) :-)
Cloud Service load balance
![Page 23: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/23.jpg)
:-) :-) :-)
SQL Database ( Azure Cache )
Cloud Service load balance
![Page 24: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/24.jpg)
Cache on Role co-located
![Page 25: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/25.jpg)
Cache on Role Caching on Dedicated Role
![Page 26: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/26.jpg)
Cloud Service CacheDemo
![Page 27: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/27.jpg)
守則三 設計無狀態的網站天然的尚好 !!!
![Page 28: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/28.jpg)
Storage
![Page 29: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/29.jpg)
Persistent Disks and Highly Durable
Windows Azure Storage
Windows Azure Storage (Disaster Recovery)
Virtual Machine
![Page 30: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/30.jpg)
Persistent Disks and Highly Durable
Windows Azure Storage
Windows Azure Storage (Disaster Recovery)
Virtual Machine
Virtual Machine
![Page 31: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/31.jpg)
洋蔥架構 應用程式係圍繞著一個獨立的物件模型
來建構。 內層定義介面,外層實作介面。 耦合的方向是朝向中央。 應用程式的所有核心程式碼可以在與基
礎建設分離的情況下正常運行。 ( By 蔡煥麟老師翻譯 )
核心 : IOC & DI
![Page 32: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/32.jpg)
洋蔥架構
![Page 34: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/34.jpg)
守則四 要 Interface 化隔離…才是自保之道
![Page 35: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/35.jpg)
SLA 99.95
![Page 36: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/36.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/37.jpg)
Fault and Update DomainsFault Domains•代表有可能一起失敗的同一組資源•例如同一個機架、同一台 Server
Update Domains•代表一起更新的同一組資源•例如 OS 更新
![Page 38: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/38.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/39.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/40.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/41.jpg)
守則五 真的需要 99.95!?事情沒有你想的那麼簡單… .
![Page 42: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/42.jpg)
Azure 架構
![Page 43: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/43.jpg)
Queue-Based Load Leveling Pattern
![Page 44: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/44.jpg)
Queue-Based Load Leveling Pattern
![Page 45: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/45.jpg)
Asynchronous Messaging
![Page 46: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/46.jpg)
Azure 架構Demo
![Page 47: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/47.jpg)
守則六 搭配雲端的架構
![Page 48: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/48.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/49.jpg)
天空的垃圾場
Thank You
![Page 50: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/50.jpg)
50
提醒
上滿 4 堂課 交回問卷 問卷禮
![Page 51: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/51.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/52.jpg)
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 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/53.jpg)
![Page 54: 使用 ASP.NET MVC 搭配 Windows Azure 建構可擴展網站](https://reader033.vdocuments.net/reader033/viewer/2022061607/56813320550346895d99f080/html5/thumbnails/54.jpg)
天空的垃圾場