Your SlideShare is downloading. ×
0
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
微軟實戰課程日:玩轉雲端 技術與架構
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

微軟實戰課程日:玩轉雲端 技術與架構

393

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
393
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • No expectations upon youWe invite you to join activitiesMicrosoft has no expectations of MVPs beyond courtesy, professionalism, and adherence to the rules of conduct (https://mvp.support.microsoft.com/default.aspx/codeofconduct)Remember the Non-Disclosure Agreement
  • Transcript

    • 1. Microsoft Inconfidential2013/5/4 10:00-16:00張榮發基金會國際會議中心 10Fs微軟實戰課程日獨立專家,實用解答
    • 2. Microsoft Inconfidential小朱WindowsAzure MVPMCSD: WebApplications玩轉雲端:技術與架構Flying on Cloud: Design and Architect your CloudApplications on Windows Azure Platform
    • 3. Microsoft Inconfidential本課程的內容全都是非機密。您可以盡情的在網誌,論壇,網站與社群媒體中分享本課程的內容。您可以盡情的在課程進行間拍照或是錄影。MicrosoftConfidential
    • 4. Microsoft Inconfidential• MVP awarded since 2004 (SQL Server, ASP.NET, SoftwareArchitecture, Azure)• 台灣 Windows Azure Platform 種子講師。• 微軟 MSDN 資深講師與文章作譯者。• 奇豐資訊技術研發經理暨顧問。• 台灣首批 MCSD: Web Application 認證專家。• 著有 3+2 本書。• 國立中山大學資訊管理系碩士在職專班修業中。小朱 (朱明中)About me
    • 5. Microsoft Inconfidential• Windows Azure 平台技術概覽• 服務導向架構 (Service Oriented Architecture)• 設計與架構雲端服務• 服務掛載:Web API 與自我服務 (Self-hosting Service)• Playing: 具社群單一簽入能力的 Web API ServiceFlying on the Cloud: Design and Architect for Cloud AppsAgenda
    • 6. Microsoft InconfidentialQuick view ofWindowsAzurePlatformTechnologiesWindows Azure Platform平台技術概觀
    • 7. 雲端的演進給IT帶來的挑戰
    • 8. 支援超過 客戶, 企業, 個市場整合在基礎建設,安全性,產品開發與全球營運的產業經驗總計₩ ¥€руб$$£$RpTLchfkrkr$R$$
    • 9. vpn
    • 10. Microsoft InconfidentialServiceOrientedArchitecturein Cloud服務導向架構
    • 11. Microsoft Inconfidential• SOA是一種架構模型,由網站服務技術等標準化元件組成,目的是建構一個具彈性、可重複使用的整合性介面。– 分散式架構 (distributed)。– 關係鬆散的界面 (loosely coupled)。– 依據開放的標準 (Open standard)。– 以流程角度出發 (process centric) 。• 雲端是實現 SOA 應用程式的最佳載具。– 運算能力。– 儲存能力。– 資料交換能力。服務導向架構
    • 12. Microsoft Inconfidential服務導向架構的組成
    • 13. Microsoft Inconfidential• Application Front-end (應用程式前端)– Web Application GUI– Service Surface (API)• Service (服務應用程式)– Runtime Engine– Business Logics• Service Repository (資料儲存庫)– Data Store and Buffer• Service Bus (服務匯流排)– Data and Message Exchange服務導向架構
    • 14. Microsoft InconfidentialDesigningandArchitectingyour CloudService設計與架構雲端服務
    • 15. Microsoft Inconfidential• 能運用雲端的運算資源做有效率的調控。On-demand, Utility Computing, Pay as you go.• 能充份運用雲端近乎無限的資源。Storage, Computes, network bandwidths, support services.• 能在雲端供應商的承諾下,提供至少同等的高可用度。Windows Azure Computes: 99.95%Your Service Application: 至少 99.9%。• 運用適當的架構方式,提供多用戶相同的軟體服務。Multitenant Service (Software as a Service)雲端服務的主要構成要件
    • 16. Microsoft Inconfidential• 服務水準 (Service Level) = 客戶的斷線忍受力。服務可以撐多久?
    • 17. Microsoft Inconfidential• 軟體的角度:– 單一使用者:單機板軟體。– 多使用者:伺服器或服務軟體。• 平台的角度:– 租戶 (tenant):平台上使用軟體的使用者或組織。– 單租戶 (single-tenant)– 多租戶 (multi-tenant)服務可以給多少使用者用?
    • 18. Microsoft Inconfidential架構思考
    • 19. Microsoft Inconfidential• 高可用度很重要,穩定度則更重要。• 雲端上各服務是分開在不同的虛擬機器內。– Socket 是有可能斷線的。– 服務資源是有可能中斷的。• 重試機制 (Retry Policy)– Storage: Retry Policy– SQL Database: Transient Failure Retry Policy服務穩定嗎?
    • 20. Microsoft InconfidentialASP.NET WebAPI and Self-host Service 服務掛載:Web API 與自我掛載服務(Self-hosting Service)
    • 21. Microsoft Inconfidential• 由 WCF REST API 演化而成。• 基於 ASP.NET MVC Programming Model。• 適合 RESTful API 服務開發。• Web Role vs. Worker Role– Web Role 還要多加 IIS,消耗的資源會多一些。– Worker Role 沒有 IIS,可用資源多一些。• Web API 支援自我掛載 (self-hosting)。ASP.NETWeb API
    • 22. Microsoft Inconfidential• 掛載 Web API 於 Worker Role 的注意事項– 使用 HttpSelfHostConfiguration 對 Web API 進行設定。– 使用 HttpSelfHostServer 啟動 HTTP Listening。• Server.OpenAsync().Wait()• Server.CloseAsync().Wait()– 在 Worker Role 部署時一定要設定 Worker Role 取得管理員核准模式。• <Runtime executionContext=“elevated” />• 定義在服務定義檔內。• 若沒有設定,Worker Role 會進入死亡迴圈內。Hosting WebAPI onWorker Role
    • 23. Microsoft InconfidentialDEMO掛載簡單的 Web API 服務於Worker Role
    • 24. Microsoft InconfidentialPlaying Case具社群單一簽入能力的SSO API Service
    • 25. Microsoft InconfidentialServiceWorkflow
    • 26. Microsoft InconfidentialArchitectureSocial Network Identity ProviderTenant Database(Table Storage)Tenant User Tokens(Table Storage)WebApplicationClientSSO Server(API)
    • 27. Microsoft Inconfidential• Tenant Registration– /tenant/ (GET, POST ,PUT, DELETE)– /tenant/registerIdentityProvider (POST)• SSO Interface– /sso/login (GET)– /sso/requestToken (GET)– /sso/getToken (GET)– /sso/renewToken (GET)RESTinterface
    • 28. Microsoft Inconfidential• Table Storage– tenants Table– identityProviders Table (for tenant’s identity provider registration)– logs Table (logging for API invocations)• PII (Personal Information Identification)– Forward from Social Identity Provider– Just store access token only (or don’t store)– Forward to given redirect target• Data Exchange– JSON-based data exchange.Storage
    • 29. Microsoft Inconfidentialswitch (idp){case "Facebook":redirectUrl = string.Format("https://www.facebook.com/dialog/oauth?client_id={0}&redirect_uri={1}&state={2}","facebook_app_id","http://sso.studyazure.com/sso/requestToken","FACEBOOK");break;case "Google":redirectUrl = string.Format("https://accounts.google.com/o/oauth2/auth?" +"scope=[SCOPE_GOOGLE]&state={2}&redirect_uri={1}&" +"response_type=code&client_id={0}&approval_prompt=force","google_app_id","http://sso.studyazure.com/sso/requestToken","GOOGLE");break;case "MicrosoftAccount":redirectUrl = string.Format("https://login.live.com/oauth20_authorize.srf?" +"client_id={0}&scope=wl.basic&response_type=token&state={2}&redirect_uri={1}","ms_account_app_id","http://sso.studyazure.com/sso/requestToken","MSACCOUNT");break;default:return this.Request.CreateResponse(HttpStatusCode.BadRequest);}LoginImplementation
    • 30. Microsoft InconfidentialAccess TokenImplementationif (State == "FACEBOOK"){response = client.GetAsync(string.Format("https://graph.facebook.com/oauth/access_token?" +"client_id={0}&redirect_uri={1}&client_secret={2}&code={3}","[facebook_app_id]","http://sso.studyazure.com/sso/requestToken","[facebook_app_secret]",Code)).Result;NameValueCollection responseDataItems =HttpUtility.ParseQueryString(response.Content.ReadAsStringAsync().Result);return this.Request.CreateResponse<string>(HttpStatusCode.OK, JsonConvert.SerializeObject(new{access_token = responseDataItems["access_token"]}), "application/json");}else if (State == "GOOGLE"){// ...}else if (State == "MSACCOUNT"){// ...}
    • 31. Microsoft Inconfidential• 服務與資料存取邏輯分開• Design Patterns– Repository Pattern– Factory Pattern– Dependency Injection (IoC Pattern)• Hosting on ASP.NET Web API Self-host ServiceServiceDesign
    • 32. Microsoft Inconfidential• 使用 Worker Role 掛載服務,省下 IIS 的資源。• 使用 2 個以上的執行個體,獲取 99.95% 的可用性。– 高可用度要求:可用度不可以比雲端供應商低。– 選用超小型的執行個體,每小時 NT$0.6206 元 (每月每個約470元)。• 將資料儲存在 Table storage,成本較低。– 每 GB NT$2.9477元。– SQL Database 每 GB 要 NT$309.97元。• 多租戶架構。• 此服務每月營運成本約 NT$1,500元。ServiceConsiderations
    • 33. Microsoft InconfidentialDEMOSSO Server
    • 34. Microsoft Inconfidential• Windows Azure Platform 是一個成熟的公有雲服務。• SOA 架構適合於雲端環境建置。• 架構思維在服務應用程式設計上十分重要。• 透過 ASP.NET Web API Self-hosting 配合 Worker Role 讓服務可用資源最大化。• 設計服務要想的並不少,就連一個簡單的 SSO API Service,遇到了 Multitenant 也會讓事情變複雜。結語Conclusion
    • 35. Microsoft Inconfidential• Free Trial:http://www.windowsazure.com/en-us/pricing/free-trial/?WT.mc_id=WWE001_1032548834• MSDN Subscription Offer:https://www.windowsazure.com/en-us/pricing/member-offers/msdn-benefits/?WT.mc_id=WWE001_1032548834• BizSpark Offer:https://www.windowsazure.com/en-us/pricing/member-offers/bizspark-benefits/?WT.mc_id=WWE001_1032548834• MPN Offer:https://www.windowsazure.com/en-us/offers/ms-azr-0002p/?WT.mc_id=WWE001_1032548834WindowsAzure 試用與評估資源
    • 36. Microsoft Inconfidential推薦下列書籍給想要開發 Web 應用程式的朋友:RecommendedReadings for WebApplicationDevelopment網頁用戶端應用程式開發(HTML5, JS, CSS3)伺服器端應用程式開發(ASP.NET)雲端應用程式開發(Windows Azure)
    • 37. 41提醒上滿4堂課 交回問卷問卷禮+抽獎
    • 38. Microsoft Inconfidential第二屆V-Day虛擬化戰士英雄會2013年5月8日
    • 39. 小朱regionbbs@gmail.comfacebook.com/regionbbsfacebook.com/studyazuredotblogs.com.tw/regionbbs© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/orother 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 Microsoftmust 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 informationprovided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

    ×