DEVintersection           Session AZ07Windows Azure Essentials         Michele Leroux Bustamante         michelebusta@soll...
Michele Leroux Bustamante  Managing Partner       Solliance (solliance.net)  CEO and Cofounder       Snapboard (snapboard....
Just a Few Essential Tips                           (in < 45 minutes!)1.    Web Sites or Cloud Services?2.    Designing fo...
Web Sites or Cloud Services?                        Tip #1
Web Sites or Cloud Services?                    Key Differences      Web Sites (Reserved)                      Cloud Servi...
Designing for Distributed Scale Out                               Tip #2
What’s Your Application Architecture?      Storage       Queue       OR                                  SQL              ...
VM Allocation Goals VM allocations are       Security and isolation boundary       Domain or subdomain boundary       ...
Web Sites and VM AllocationWeb Site         ReservedProject          Web SiteWeb Site         Reserved                    ...
Cloud Services and VM AllocationCloudProject          Service Definition            Service Config            Role        ...
Single Role / Sitebustacloud.com
Single Role / Multiple Sitebustacloud.com             api.bustacloud.com
Single Role/ Multiple Site/ Workerbustacloud.com         api.bustacloud.com
Scaling Out to Multiple Rolesbustacloud.com              api.bustacloud.com
Equivalent on Web Sites?bustacloud.com           api.bustacloud.com
Web Sites and Reserved Instances                                   © DEVintersection. All rights reserved.               1...
Multiple Site, Single Role Deploymentsdemo
Sending Email         Tip #3
Sending Email Most applications require some form of email communication      Email confirmations      User notificatio...
Recommendations for Email Local testing       Can use System.Net.Mail.SmtpClient       Use Smtp4Dev Live testing and p...
Sending Email from Azuredemo
Mind Your Configuration                   Tip #4
Web Site Configuration Web.config as usual (use transforms during publish) Portal surfaces some settings       Applicat...
Cloud Service Configuration Avoid web.config for       Settings that vary between staging, production       Settings fo...
Runtime Configuration Changesdemo
Which Queue Should You Use?                       Tip #5
Service Bus and Storage QueuesService Bus Queues           Storage QueuesUnlimited message lifetime   Message expires in 7...
Drives and Blobs            Tip #6
Where Should You Store Content? IaaS VM can have one or more drives associated       But that is a more traditional host...
Blob Storage Security                                                                                                     ...
Blob Storage Recommendations Store content in blobs in lieu of drives       Streaming       CDN       Accessible to bo...
Logs are Your Best Friend                     Tip #7
Diagnostics Support Cloud Services      ETW tracing through Azure Diagnostics      Configure in code (for granular runt...
Monitoring and Diagnosticsdemo
Monitor from Outside                Tip #8
Monitoring Servicedemo
A Few Things About Data                   Tip #9
SQL Azure and Entity Framework Tip To avoid connection timeouts with Entity Framework and SQL Azure you  MUST do what thi...
Don’t Drink the NoSQL Koolaid Start with relational and figure your model out first Get an expert involved if you need n...
Enable Social Logins and        Simplify Sign-Up                   Tip #10
Access Control and Mainstream                                          Identity Providers    Browser                   3  ...
Social Login and User Provisioningdemo
Practically Speaking Applications need various combinations of security       Username/password + social       Active D...
References Conference resources:      http://michelebusta.com See my snapboards:      Currently at the alpha site:    ...
Questions?   Don’t forget to enter your evaluation    of this session using EventBoard!                            Thank y...
Upcoming SlideShare
Loading in...5
×

Windows Azure Essentials

462

Published on

Windows Azure is jam packed with features to choose from for building web applications and services that scale - but there are a core set of choices and features that are applicable to most scenarios. This session will get you up to speed on the essential features developers should be aware of, and how to apply them in practical scenarios. You’ll learn why cloud services are the typical choice for feature-rich applications, and learn what you can’t live without in terms of startup tasks, SMTP services, blob storage, message queuing options, diagnostics, monitoring and security features.

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide
  • Subscription ARegion A
  • Windows Azure Essentials

    1. 1. DEVintersection Session AZ07Windows Azure Essentials Michele Leroux Bustamante michelebusta@solliance.net
    2. 2. Michele Leroux Bustamante Managing Partner Solliance (solliance.net) CEO and Cofounder Snapboard (snapboard.com) Microsoft Regional Director Microsoft MVP Author, Speaker Pluralsight courses on the way! Blog: michelebusta.com michelebusta@solliance.net @michelebusta © DEVintersection. All rights reserved. 2 http://www.DEVintersection.com
    3. 3. Just a Few Essential Tips (in < 45 minutes!)1. Web Sites or Cloud Services?2. Designing for Distributed Scale Out3. Sending Email4. Mind your Configuration5. Which Queue Should You Use?6. Drives and Blobs7. Logs are Your Best Friend8. Monitor from Outside9. A Few Points About Data10. Enable Social Logins and Simplify Sign Up © DEVintersection. All rights reserved. 3 http://www.DEVintersection.com
    4. 4. Web Sites or Cloud Services? Tip #1
    5. 5. Web Sites or Cloud Services? Key Differences Web Sites (Reserved) Cloud Services Many simple scenarios out of  VM & IIS customizations the box or made VERY easy  Virtual networking, RDP Simple setup of MySQL  Distributed cache database  Windows services equivalent A lot of stuff cloud services  Certificate store can do PLUS…  Multiple tiers (internal ep) Familiar development and deployment model  Control over VM scale out Single file updates SIMPLICITY CONTROL © DEVintersection. All rights reserved. 5 http://www.DEVintersection.com
    6. 6. Designing for Distributed Scale Out Tip #2
    7. 7. What’s Your Application Architecture? Storage Queue OR SQL Blob SB Storage Azure Queue
    8. 8. VM Allocation Goals VM allocations are  Security and isolation boundary  Domain or subdomain boundary  Scale-out boundary Save costs early on  Start with a single VM  Small instance Scale up and out as needed  Distribute load to separate VM as needed  Increase VM size as needed © DEVintersection. All rights reserved. 8 http://www.DEVintersection.com
    9. 9. Web Sites and VM AllocationWeb Site ReservedProject Web SiteWeb Site Reserved VM $$$Project Web Site Subscription A Region US WestWeb Site ReservedProject Web Site VM $$$ Subscription A Region East AsiaWeb Site ReservedProject Web Site Subscription B VM $$$ Region East Asia © DEVintersection. All rights reserved. 9 http://www.DEVintersection.com
    10. 10. Cloud Services and VM AllocationCloudProject Service Definition Service Config Role VM $$$ VDir Site App EntryPoint Endpoint © DEVintersection. All rights reserved. 10 http://www.DEVintersection.com
    11. 11. Single Role / Sitebustacloud.com
    12. 12. Single Role / Multiple Sitebustacloud.com api.bustacloud.com
    13. 13. Single Role/ Multiple Site/ Workerbustacloud.com api.bustacloud.com
    14. 14. Scaling Out to Multiple Rolesbustacloud.com api.bustacloud.com
    15. 15. Equivalent on Web Sites?bustacloud.com api.bustacloud.com
    16. 16. Web Sites and Reserved Instances © DEVintersection. All rights reserved. 16 http://www.DEVintersection.com
    17. 17. Multiple Site, Single Role Deploymentsdemo
    18. 18. Sending Email Tip #3
    19. 19. Sending Email Most applications require some form of email communication  Email confirmations  User notifications  Administrator alerts  Content delivery © DEVintersection. All rights reserved. 20 http://www.DEVintersection.com
    20. 20. Recommendations for Email Local testing  Can use System.Net.Mail.SmtpClient  Use Smtp4Dev Live testing and production  Do not use SMTP server in IIS, IP ranges could be blacklisted as SPAM  Use a third party relay service  SendGrid gives 25,000 FREE tx/month for Azure applications!  Sendy, MailChimp, AuthSmtp, Jango Architecture  Prefer using a queue to kick off sends to third parties  If their service goes down, your users don’t have to know, the email is not lost (queued) © DEVintersection. All rights reserved. 21 http://www.DEVintersection.com
    21. 21. Sending Email from Azuredemo
    22. 22. Mind Your Configuration Tip #4
    23. 23. Web Site Configuration Web.config as usual (use transforms during publish) Portal surfaces some settings  Application settings, handler mappings, connection strings
    24. 24. Cloud Service Configuration Avoid web.config for  Settings that vary between staging, production  Settings for test, diagnostics or performance Use Configuration Profiles to distinguish settings  Select a profile during Publish Select a web.config transform during Publish Portal surfaces settings from service configuration  Use an indicator for which items should recycle the instance vs. not
    25. 25. Runtime Configuration Changesdemo
    26. 26. Which Queue Should You Use? Tip #5
    27. 27. Service Bus and Storage QueuesService Bus Queues Storage QueuesUnlimited message lifetime Message expires in 7 daysMax 64K message size Max 256K message sizeMax 5GB total storage Max 100TB total storageDuplicate detectionOrder guaranteesDead letter queue Storage metrics Purge capabilityLong polling Manual back-off pollingCloud Services Cloud / Web Sites Services
    28. 28. Drives and Blobs Tip #6
    29. 29. Where Should You Store Content? IaaS VM can have one or more drives associated  But that is a more traditional hosting model, PaaS is our focus Cloud Services can use AzureDrive (still preview)  This has limitations  Single VM can mount the drive (others require read access only)  Snapshot is fast and works very well for read only case  Likely you need to do multiple write as well Blob Storage is the standard now  Scales across instances  Replication  Map storage account to domain  CDN benefits  Security and shared links © DEVintersection. All rights reserved. 30 http://www.DEVintersection.com
    30. 30. Blob Storage Security Browser Client Service Service Service Service read access for limited time with shared shared access access policy keylist create Shared Access update create create Signature (SAS) delete update update read delete read delete >1 hour read list list requires authentication header in request (no browser) Public Public Blob Private Private Container Access Container Container Access © DEVintersection. All rights reserved. 31 http://www.DEVintersection.com
    31. 31. Blob Storage Recommendations Store content in blobs in lieu of drives  Streaming  CDN  Accessible to both cloud services and web sites Secure access accordingly  From JavaScript can lease a shared key  No need to embed keys in the JS file Always chunk blobs for upload (best performance) Large file uploads  No CORS support yet for storage  Can upload to Web API (for example) in chunks  Avoid large file configuration issues with IIS (can’t for web sites) © DEVintersection. All rights reserved. 32 http://www.DEVintersection.com
    32. 32. Logs are Your Best Friend Tip #7
    33. 33. Diagnostics Support Cloud Services  ETW tracing through Azure Diagnostics  Configure in code (for granular runtime settings) or XML (wadcfg)  Either way make sure easy for IT to make changes  Not a developer setting  Numerous tools for collecting diagnostics logs and trace output  Supports deep control over logs and performance counters Web Sites  No Azure Diagnostics  FTP access to basic IIS logs  log4NET is a popular tool for extended logging  Limited capabilities today © DEVintersection. All rights reserved. 34 http://www.DEVintersection.com
    34. 34. Monitoring and Diagnosticsdemo
    35. 35. Monitor from Outside Tip #8
    36. 36. Monitoring Servicedemo
    37. 37. A Few Things About Data Tip #9
    38. 38. SQL Azure and Entity Framework Tip To avoid connection timeouts with Entity Framework and SQL Azure you MUST do what this link says http://blogs.msdn.com/b/appfabriccat/archive/2010/12/11/sql-azure- and-entity-framework-connection-fault-handling.aspx © DEVintersection. All rights reserved. 39 http://www.DEVintersection.com
    39. 39. Don’t Drink the NoSQL Koolaid Start with relational and figure your model out first Get an expert involved if you need noSQL…for example… Lynn Langit www.contagiouscuriosity.com © DEVintersection. All rights reserved. 40 http://www.DEVintersection.com
    40. 40. Enable Social Logins and Simplify Sign-Up Tip #10
    41. 41. Access Control and Mainstream Identity Providers Browser 3 Google FaceBook1 5 2 4 Windows Yahoo! Live Access Control Azure AD On On Your App Premise On Premise IdP Premise IdP IdP
    42. 42. Social Login and User Provisioningdemo
    43. 43. Practically Speaking Applications need various combinations of security  Username/password + social  Active Directory on premise or in the cloud  Other potential identity providers  Combinations of these Applications still need a user profile  Regardless how they are authenticated  Need to track their various login choices, could be multiple Use Access Control for integration with non-social identity providers with rich claims (AD, WAAD) Use application tools for social login for complete coverage and control © DEVintersection. All rights reserved. 44 http://www.DEVintersection.com
    44. 44. References Conference resources:  http://michelebusta.com See my snapboards:  Currently at the alpha site: http://snapboardalpha.cloudapp.net/michelebusta  Will move these to snapboard.com/michelebusta when we go live on the main site (SOON watch my blog for announcement) Contact me:  michelebusta@solliance.net  @michelebusta © DEVintersection. All rights reserved. 45 http://www.DEVintersection.com
    45. 45. Questions? Don’t forget to enter your evaluation of this session using EventBoard! Thank you!

    ×