Click here to load reader

Tips & Tricks On Architecting Windows Azure For Costs

  • View
    3.213

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Text of Tips & Tricks On Architecting Windows Azure For Costs

  • 1. TH03 - Tips & Tricks onArchitecting W indows Azure forCostsNuno Godinho Cloud Solution Architect Level: Introdutory

2. About MeNuno Filipe GodinhoCloud Solution Architect @ AditiWindows Azure [email protected]://msmvps.com/blogs/nunogodinhoTwitter: @NunoGodinho 3. Agenda Compute Bandwidth, Storage & Transactions SQL Azure Customer Awareness Developer Awareness Scenarios Key Takeaways 4. COMPUTE 5. Limiting virtual machine count Do you need full capacity 24/7? Probably not, reduce # cpus when not used Use Windows Azure Diagnostics API &Windows Azure Management API to scale(semi) automatically 24 hours x 10 small instances = $28.80/dayvs. 16 hours x 10 small instances+ 8 hours x 4 extra-small instances = $20.48/day 6. Limiting virtual machine countDont Forget Staging environment costs When not in use, undeploy the stagingenvironment 24 hours x 5 small instances = $14.4/day 7. Workers need work! Out of the box, 1 worker role = 1 task Why not spin up processes or threads? Example: You want 20 tasks running Option1: 1 task per worker = 20 workers = ~ 42 EUR/day Option2: 2 tasks per worker = 10 workers = ~ 21 EUR/day Option3: 10 tasks per worker = 2 workers = ~ 4,2 EUR/day Which means ~ 42 EUR / day vs. ~ 4,2 EUR / day = 90%savings Generic workers: http://research.microsoft.com/en-us/downloads/76537edf-9b77-4664-b76b-cf51be506a0d/ DONT FORGET: 2 instances minimum for the SLA 8. Do you need all of that? 1 XL = 2 L = 4 M = 8 S (regarding costs) No need for this memory / disk space? Start small Scale up/down more granularly 9. IMPORTANT Billing per reserved VM Reserved = deployed / running Billing in staging and production 2 instances staging + 2 instances production = 4instances billed Undeploy your VM if not needed Undeploy staging every evening Automate this 10. Work per hour Billed per clock hour / CPU Keep instances running at least until x:55 Dont deploy at x:50, instead deploy atx:55 Deploy at x:50 and undeploy at x+1:10 2 hours billed! Dont deploy every minute = 60 instance hours per hour! Dont do continuous deployment for every build, butaccumulate 11. BAND WIDTH, STORAGE& TRANSACTIONS 12. Bandwidth? Simple metric Use more = pay more Use less = pay less 13. When am I using bandwidth? Data transfers in/out Windows Azure Compute Blobs AppFabric SQL Azure Data transfers between Windows Azureregions E.g. North America Europe IMPORTANT: Keep compute & storage in the sameregion! 14. Content Delivery Network Content distributed across 24 Nodeservers across the world Storage costs = Storage costs for publiccontainers x 2 Bandwidth costs = # data in publiccontainers x # servers Can be limited by setting cache headers 15. Data Storage Data you store (non SQL) Tables Blobs Queues Per GB / month Average over full month 10 GB stored for 15 days, 0 GB stored for 15 days = 5GB stored for 1 month 16. Transactions 1 transaction = 1 storage operation Billed per 10.000 Example: Checking a queue every secondfrom 2 workers 172.800 transactions / day Use a back-off mechanism No data? Wait a second Again no data? Wait two seconds Etc. 17. Transactions Use Service Bus Queues and Notifications Serving 100 images from blob storage High traffic app high # transactions Choose wisely between blob storage and compute 18. Diagnostics monitor Writes data to storage account Does not clean up Write often = # transactions Write less = lag in diagnostic data 19. SQL AZURE 20. Database editionsDatabase Size Price Per Database Per Month0 to 100 MB Flat $4.995Greater than 100 MB to 1 GB Flat $9.99$9.99 for first GB, $3.996 forGreater than 1 GB to 10 GBeach additional GB$45.954 for first 10 GB, $1.998Greater than 10 GB to 50 GBfor each additional GB$125.874 for first 50 GB, $0.999Great than 50 GB to 150 GBfor each additional GB 21. Billing nuances Based on peak DB size / day Averaged over 1 month Actual database edition size used is billed Examples 0.9 GB in a 5 GB web edition costs 1 GB(= $9.99) 1.1 GB in a 5 GB web edition costs 5 GB(= $49.95) 22. Tables & indexes cost money Be careful with them Only define indexes needed Indexing every column & not using it maybe a waste of money Example If an index does not add speed, lose it If the data relational, go NoSQL Table with 1 GB of static data on SQL Azure = $9.99, on table/blob storage it costs $ 0.12... 23. CUSTOMERAWARENESS 24. Customer awareness Yes, you can have all you want Yes, you can have it your wayBUT... 25. Discuss OpEx! Cost-analyze the requirements Discuss implications & alternatives withstakeholders Pay more for user experience? Cheaper alternative experience? Clever solutions? Review the options you considered Write them down & sign off Or you will return to these discussions again andagain 26. DEVELOPERAWARENESS 27. A code snippet...if (Session["culture"].ToString() == "en-US") { // .. set to English ...}rs s!if (Session["culture"].ToString() == "nl-BE") { pe stlo// .. set to Dutch ...}De ve ct coim pastring culture = Session["culture"].ToString(); ct lyif (culture == "en-US") {// .. set to English ...ir} ed if (culture == "nl-BE") {// .. set to Dutch ...} 28. Analysing Real World ScenariosSCENARIOS 29. Static WebSiteSCENARIO 1 30. Scenario 1 Static WebSite What to use? Options? Blob Storage Compute Option 1: Blob Storage We pay for? Storage Space Transactions Bandwidth In/Out Option 2: Compute We pay for? Compute Hours Bandwidth In/Out 31. Scenario 1 Static WebSite v1Number of Concurrent Users: 10 / secondWebSite Storage Space: 0,5 GBAverage Number of files served per User: 5Average file size: 200 KBOption 1: Blob Storage We pay for? Storage Space = 0,5 GB * 0,15 = 0,075 USD Transactions = (10 * 5 * 60 * 24 * 30 ) / 10k * 0,01 = 2,16 USD Bandwidth In/Out = (10 * 5* 60 * 30 * 0,0002) * 0,15 = 2,7 USD Total Costs ~ $ 5Option 2: Compute We pay for? Compute Hours = (2 * 24 * 30) * 0,12 = 172,8 USD Transactions = (1 * 5 * 60 * 24 * 30 ) / 10k * 0,01 = 0,216 USD Bandwidth In/Out = (10 * 5* 60 * 30 * 0,0002) * 0,15 = 2,7 USD Total Costs ~ $ 176 32. Scenario 1 Static WebSite v2Number of Concurrent Users: 1000 / secondWebSite Storage Space: 0,5 GBAverage Number of files served per User: 5Average file size: 200 KBOption 1: Blob Storage We pay for? Storage Space = 0,5 GB * 0,15 = 0,075 USD Transactions = (1000 * 5 * 60 * 24 * 30 ) / 10k * 0,01 = 216 USD Bandwidth In/Out = (1000 * 5* 60 * 30 * 0,0002) * 0,15 = 270 USD Total Costs ~ $ 487Option 2: Compute We pay for? Compute Hours = (2 * 24 * 30) * 0,12 = 172,8 USD Transactions = (1 * 5 * 60 * 24 * 30 ) / 10k * 0,01 = 0,216 USD Bandwidth In/Out = (1000 * 5* 60 * 30 * 0,0002) * 0,15 = 270 USD Total Costs ~ $ 444 33. Scenario 3 Static WebSite v3Number of Concurrent Users: 2000 / secondWebSite Storage Space: 0,5 GBAverage Number of files served per User: 5Average file size: 200 KBOption 1: Blob Storage We pay for? Storage Space = 0,5 GB * 0,15 = 0,075 USD Transactions = (2000 * 5 * 60 * 24 * 30 ) / 10k * 0,01 = 432 USD Bandwidth In/Out = (2000 * 5* 60 * 30 * 0,0002) * 0,15 = 540 USD Total Costs ~ $ 973Option 2: Compute We pay for? Compute Hours = (2 * 24 * 30) * 0,12 = 172,8 USD Transactions = (1 * 5 * 60 * 24 * 30 ) / 10k * 0,01 = 0,216 USD Bandwidth In/Out = (2000 * 5* 60 * 30 * 0,0002) * 0,15 = 540 USD Total Costs ~ $ 714 34. Application Data StorageSCENARIO 2 35. Scenario 2 Application DataStorage What to use? Options? SQL Azure Table Storage SQL Azure + Table Storage Assumptions Number of Concurrent Users: 100 / second Database Size: 10 GB Average response size: 200 KB Reference Data Percentage: 20 % History Data Percentage: 30 % Simple Indexed Data Percentage: 40% Highly searched Data Percentage: 10% 36. Scenario 2 Application DataStorage v1 Option 1: SQL Azure We pay for?Database Storage = $ 45.954Bandwidth Out = (100 * 60 * 30 * 0.0002) * 0,15 = $ 5.4Total Cost: $ 51.354 37. Scenario 2 Application DataStorage v2 Option 2: Table Storage We pay for?Storage Space = 10 GB * 0,15 = $ 1.5Transactions = (100 * 60 * 24 * 30 ) / 10k * 0.01 = $ 4,32Bandwidth Out = (100 * 60 * 30 * 0.0002) * 0.15 = $ 5.4Total Costs = $ 11.22 38. Scenario 2 Application DataStorage v3 Option 3: SQL Azure + Table Storage We pay for?SQL AzureDatabase Storage =1 GB = $ 9.99Bandwidth Out = (100 * 60 * 30 * 0.0002) * 0.15 = $ 5.4Table StorageStorage Space = 9 GB * 0.15 = $ 1.35Transactions = (100 * 60 * 24 * 30 ) / 10k * 0.01 = $ 4.32Bandwidth Out = (100 * 60 * 30 * 0.0002) * 0,15 = $ 5.4Total Costs = $ 26.46 39. What to remember?KEY TAKEAWAYS 40. Key Takeaways Cloud pricing isnt more complex Just different Every component has own characteristics Requirements impact costs Developers impact costs Windows Azure pricing model can improvecode quality But dont over-analyze! 41. Resources Starting point: http://www.windowsazure.com Steve Marx: http://blog.smarx.com Cloud Cover Show http://channel9.msdn.com/Shows/Cloud+Cover Special Thanks to Maarten Balliauw http://blog.maartenballiauw.be 42. THANK YOU Nuno GodinhoCloud Solution Architect @ Aditi [email protected]: @NunoGodinho http://msmvps.com/blogs/nunogodinho

Search related