講師: 李智樺, Ruddy Lee ruddyl.lee@microsoft.com http://sdrv.ms/133xtIJ 議程 • • • • • 雲端: 不同的思維? 故障防護 Failsafe 規模 Scale 整合 Integration 雲端架構實作 雲端: 不同的思維? 常見的謬誤 • “That’s a hardware failure, not my problem!” 把責任推給機器 • “Let’s throw more RAM onto our database server.” 用記憶體來換取效能 • “Our service is 99.9% available because we use Azure!” 誤把雲端可用度當成自己的系統可用度 • “Running out capacity? That’s a good problem to have!” 雲端不會出現記憶體不足的訊息 • “We’ll move everything to cloud!” 把一切都搬到雲端 雲端的架構設計 • 故障防護 Failsafe • Things will fail • 規模 Scale • Scalability is not automatic • 整合 Integration • Your cloud applications will need to work with other on-premises systems 故障防護 Failsafe 可使用性 Availability 𝑢𝑝𝑡𝑖𝑚𝑒 𝐴𝑣𝑎𝑖𝑙𝑎𝑏𝑖𝑙𝑖𝑡𝑦 = 𝑢𝑝𝑡𝑖𝑚𝑒 + 𝑑𝑜𝑤𝑛𝑡𝑖𝑚𝑒 • 冗餘 Redundancy A (90%) B (90%) C (90%) A (99.9%) B (99.9%) C (99.9%) Redundancy 冗餘 in Windows Azure • Windows Azure 的 Storage 針對相同資料有三份的複寫。 • SQL Azure 原來就自動內建備份伺服器。 • Windows Azure 可採用勾選的方式啟動內建 caching 的HA • • • 功能。 Windows Azure Web Sites and Cloud Services都已經俱有 Multi-instance。 比較少人會注意到其實Windows Azure 是具有VM負載自動 平衡的功能(Load-balanced Virtual Machines)。 把資料跨Data Center存放,把資料備份在不同區域的雲端資 料中心裡( 採用 Windows Azure Traffic Manager)。 可靠性 Reliability Mean Time Between Failure,平均故障間 隔時間 Mean Time To Repair,平均修複時間 Mean Time To Failure,修複前平均時間 如何進行故障防護呢? • • • • • • 善用Windows Azure的既有功能 避免單點故障 失效模式分析 短暫錯誤 平穩退化 (Graceful degradation) 消除人為因素 規模 Scale 可擴展性 Scalability • Scaling up 與 scaling out 容量規劃 和 負荷單元 Scaling units 可擴展性 Scaling in Windows Azure • • • • • • • Scale up by choosing different VM sizes Scale out by adding more instances Auto-scale with Auto scaling Application Block Database shading with Windows Azure SQL Database Scale out by using multiple service entities CDN to distribute user traffic Caching to offset server workloads 如何進行雲端擴展性呢? • 容量規劃 Capacity plan • 適度分解 Proper decomposition of system • 無狀態設計 Stateless design • 所有層均可規模化 Scale at all layers • 節流 Throttling 不同等級的擴展性規劃 無狀態 Stateless 分享狀態 Shared States 全域狀態 Global States R R R R R R R R R S S R R S R S R R R R R R RS R SR R R R R S 操作與狀態分離 • Externalize states 狀態外置 • Cache session state provider (Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache) • Separate actions and states 操作與狀態分離 • Job creator • Job queue • Job Handler Job Queue Job Creator Job Handler Job Handler 判斷是否將既有系統搬移到雲端的決策流程圖 開始 定義/提升目標 上雲端有幫 助嗎? 建立基準. 估算回收 值得嗎? 商業影響分析. 協議? 相關性分析. 影響分析 相依性? 協議? 整體化戰略 一般整合方式 • 依數據資料進行整合 Integration by Data • 直接調用 Direct invocation • 中間件層 與 Windows Azure 整 合 • • • • • • Message-based integration 採用 Windows Azure Service Bus Connectivity 採用 Windows Azure Virtual Network 既有 AD 與 Windows Azure Active Directory 整合 Single Sign-On 結合 Windows Azure Access Control Service Inclusive ecosystem 支援 heterogeneous stacks 大量採用標準化的協定,例如: HTTP, Oauth, oData, ws-* 將所有應用程式遷移到雲? • 所有應用程式都應該在雲 端上執行嗎? • 應該將所有的既有程式都 搬到雲端上去執行嗎? • 所有新開發的程式都應該 在雲端上執行嗎? • 在雲端上執行的程式就比 較好嗎? http://msdn.microsoft.com/en-us/library/dd430340.aspx 整合的意義 • 鬆耦合 • 隔離式的整合 • 安全是雲端的基本 • 盡量採用標準 與既有系統相整合 • 訊息式整合 System H System D Topic System E Queue System G A System B System C System F 與既有系統相整合 • Virtual Network LAN VNet 雲端架構練習 腳本: 1. 設計一個類似Dropbox的雲端儲存體服務機制 2. Diagnostics Messages ACCESS 典型 Platform As A Service 的架構設計 Unified Interface: REST, JSON Web Role Logging JOB SCHEDULER Waveface ID Billing Manager Account Manager Intelligent Aggregator Quota Manager Resource Manager Admin Manager(*) SNS Manager Report Manager DATA Storage Database Storage SECURITY Worker Role Data Processor SCALABILITY Business MONITOR&ALERT Service PRIVACY CORE MODULES MESSAGE BUS ACCESS 典型 Platform As A Service 的架構設計 Unified Interface: REST, JSON JOB SCHEDULER Billing Manager Data Processor Account Manager Intelligent Aggregator Quota Manager Resource Manager Admin Manager(*) SNS Manager Report Manager DATA Storage SNS (Social Networking Services) Database SCALABILITY Unique ID MONITOR&ALERT Business SECURITY Service PRIVACY CORE MODULES MESSAGE BUS DEMO: Display and Maintain Azure Diagnostics messages This sample will show you how to retrieve Diagnostics message and save them to Cloud storage. Q&A 如何獲得百萬跑車? 2013/09/30 前, 只要依照規定啓用 MSDN 訂閱隨附的 Windows Azure 權益, 即有機會將北美預估 零售價 118,600 美元的 Aston Martin V8 Vantage Coupe 開回家. 詳情請參閱 Windows Azure 網站 : http://www.microsoft.com/taiwan/windowsazure/