SlideShare une entreprise Scribd logo
1  sur  26
Lessons from the Field
National Architect,
Windows Azure




michael.collier@neudesic.com
@MichaelCollier
www.MichaelSCollier.com
•   Table Storage
•   Access Control Service (ACS)
•   Windows Azure Diagnostics
•   Retry Logic
•   Deployment
•   Environments
•   Tools
•   Sell it!
•   Non-relational data storage
•   Massive scale (100TB per storage account)
•   Single Key (Partition Key + Row Key)
•   Range based partitioning
•   Requires a different way of thinking
     – Multiple entity types in a single table
     – Group data into logical units – a partition
     – More than 1 key data point? Create your own composite key.
Partition   RowKey                            CourseName    Comment   Comment
Key                     Record Type                                   Count

43040       0:dafce7ed-47ff-474a-a94c-        Darby Creek             1
            8b7d555394c1           CourseId
43040       1:dafce7ed-47ff-474a-a94c-                      Fast
            8b7d555394c1:252057602167737   Timestamp        greens!
            1563:b3abfc42-4e66-4306-b39b-
            c3972fde5ac7
43012       ….              CommentId     Timberview                  5

43016       ….                                Buck Ridge              3

43016       …..                                             Great
                                                            sand!!
Select all the Course entities
public IEnumerable<Course> SelectAllCourses()
{
var tableClient = storageAccount.CreateCloudTableClient();
var ctx = tableClient.GetDataServiceContext();
var results = (from c in ctx.CreateQuery<Course>(tableName)
               where c.RowKey.CompareTo("0:") >= 0 &&
                     c.RowKey.CompareTo("0;") < 0
               select c).AsTableServiceQuery().ToList();
return results;
}
Plan for retries
public void Add (Course course, Comment comment)
{
    var tableClient = storageAccount.CreateCloudTableClient();
    var ctx = tableClient.GetDataServiceContext();
    ctx.AddObject(tableName, course);
    ctx.AddObject(tableName, comment);
    ctx.SaveChangesWithRetries(SaveChangesOptions.Batch);
}

Handle entity group transactions too!
• Claims-based authentication service
• Leverages Windows Identity Foundation (WIF)
• No need to build your own identity management
  solution. What’s your value-add?

• Multiple identity providers
   – Facebook, Windows Live, Google, Yahoo!, ADFSv2


• Most demos and walkthroughs show how easy ACS is
  to add . . . But there’s more.
• Install WIF runtime via a startup task
• DPAPI not supported – use your own certificate
• Change request validation




   – Use ASP.NET 2 request validation
   – Custom validator
• WIF relies on the web.config file
• URLs related to the site are set in the web.config . . .
  can’t change
• Problematic for staging deployments – don’t know the
  URL until deployed
• Add logic to WebRole’s OnStart() to update the WIF
  settings in web.config
   – Read in configuration settings from .cscfg
   – Update and save the web.config
   – Changing .cscfg settings can cause a role recycle . . . causing
     web.confg to update
• Need claims not provided by Identity Provider?
  – Claims vary by Identity Providers
  – Windows Live ID – limited usefulness 

  – Claims Enrichment
  – Custom implementation of ClaimsAuthenticationManager
  – Retrieve additional info from data store
  – Return as additional claims
DEMO TIME!!!
• Ability to persist multiple diagnostic sources across
  roles
   – Log Files
   – Event Logs
   – Performance Counters
   – IIS Logs
• Diagnostics data saved in table or blob storage
• Different storage account for diagnostic & app data
• Use multiple diagnostic storage accounts & rotate
   – Easiest way to clean up large amounts of data in tables
Configuration via code is easy . . .




. . . but potentially problematic
• Set diagnostic information via configuration
• Special file – diagnostics.wadcfg
• File automatically saved to blob storage and accessible
  from all instances
• Don’t get out of sync
• Diagnostics config in code overwrites what is in blob
  storage
• Allows operations team, not dev, to control settings
• Configure Remote Desktop early

• Requires an input endpoint
• Changing number of endpoints requires a delete and
  redeploy
   – Can’t perform a VIP swap

• Don’t want it on all the time? Change the settings in
  .cscfg.
• Transient Fault Handling Application Block
• SQL Database, Windows Azure Storage, Service
  Bus, and more
• Very extensible and flexible
• Upload .cspkg & .cscfg files to Windows Azure portal
• Use Visual Studio
• Use Windows Azure PowerShell cmdlets
   – Humans make mistakes . . . Not good at repetitive tasks
   – Handle nearly everything via script
   – Works great in development and for production!
   – Invoke from other deployment tools like Team Build
   – Have a .cmd file that will execute the build and then kick off the
     deployment
• Put deployment files in blob storage for quick access
  later
• Use subscriptions to control access and billing.
• Get billing and subscription administrators set up . . . . Very difficult to change later (especially the
  Live ID for account owner)
          Development                               QA                           Production
              CS        CS                          CS                                 CS
                CS       DB                         DB
               Staging                            Staging                           Staging
               CS       CS                                                             CS
                                                     CS
                   CS    DB
                                                     DB                                DB

             Production                          Production                        Production


• Developers create & deploy services in ‘Development’ as needed. Co-admins
  for the ‘Development’ subscription.
• QA teams have access to QA. They are co-admins for the QA subscription.
• Operations team is co-admins for ‘Production’.
Neudesic Azure Storage Explorer                Cerebrata


                                            Cloud Storage Studio



                                            Diagnostics Manager


                                            Management Cmdlets




http://azurestorageexplorer.codeplex.com/
• What are your pain points?
   –   Cost pressures
   –   Slow to deploy
   –   Scalability
   –   Security
• Scenarios
   –   Web Modernization
   –   Gaming
   –   Mobility
   –   Big Data
   –   Enterprise Application
       Integration
Questions?
• WIF: A Potentially Dangerous Request.Form Value Was Detected
     – http://social.technet.microsoft.com/wiki/contents/articles/1725.windows-identity-foundation-wif-a-potentially-
       dangerous-request-form-value-was-detected-from-the-client-wresult-t-requestsecurityto.aspx
• Install WIF Runtime via Startup Task
     – http://stackoverflow.com/questions/8697596/azure-service-configuration-error
• Edit & Apply New WIF Config Settings w/o Redeploying
     – http://blogs.msdn.com/b/vbertocci/archive/2011/05/31/edit-and-apply-new-wif-s-config-settings-in-your-
       windows-azure-webrole-without-redeploying.aspx
• Publishing a ACS v2 Federated Identity Web Role
     – http://blogs.msdn.com/b/davidmcg/archive/2011/04/05/publishing-a-acs-v2-federated-identity-web-role.aspx
• Windows Azure Active Directory Solutions For Developers
     – http://social.technet.microsoft.com/wiki/contents/articles/3669.windows-azure-active-directory-solutions-for-
       developers.aspx
• How to get most out of Windows Azure Tables
     – http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-
       tables.aspx
• Collecting Logging Data by Using Windows Azure Diagnostics
     – http://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx
National Architect,
Windows Azure




michael.collier@neudesic.com
@MichaelCollier
www.MichaelSCollier.com

Contenu connexe

Tendances

What's New for the Windows Azure Developer? Lots! (July 2013)
What's New for the Windows Azure Developer?  Lots! (July 2013)What's New for the Windows Azure Developer?  Lots! (July 2013)
What's New for the Windows Azure Developer? Lots! (July 2013)Michael Collier
 
More Cache for Less Cash
More Cache for Less CashMore Cache for Less Cash
More Cache for Less CashMichael Collier
 
Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)Michael Collier
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)Michael Collier
 
Inside Azure Diagnostics (DevLink 2014)
Inside Azure Diagnostics (DevLink 2014)Inside Azure Diagnostics (DevLink 2014)
Inside Azure Diagnostics (DevLink 2014)Michael Collier
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerMichael Collier
 
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...Sandy Winarko
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerMichael Collier
 
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Michael Collier
 
Inside Azure Resource Manager
Inside Azure Resource ManagerInside Azure Resource Manager
Inside Azure Resource ManagerMichael Collier
 
Running SSIS 2017 at Scale Everywhere
 Running SSIS 2017 at Scale Everywhere Running SSIS 2017 at Scale Everywhere
Running SSIS 2017 at Scale EverywhereSandy Winarko
 
Microsoft Azure essentials
Microsoft Azure essentialsMicrosoft Azure essentials
Microsoft Azure essentialsVaibhav Gujral
 
Integrating sps 2010 and windows azure
Integrating sps 2010 and windows azureIntegrating sps 2010 and windows azure
Integrating sps 2010 and windows azureManish Corriea
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applicationsManish Corriea
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azureManish Corriea
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for BeginnersDavid Völkel
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010DavidGristwood
 
10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will Fail10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will FailMichael Collier
 

Tendances (20)

What's New for the Windows Azure Developer? Lots! (July 2013)
What's New for the Windows Azure Developer?  Lots! (July 2013)What's New for the Windows Azure Developer?  Lots! (July 2013)
What's New for the Windows Azure Developer? Lots! (July 2013)
 
More Cache for Less Cash
More Cache for Less CashMore Cache for Less Cash
More Cache for Less Cash
 
Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
 
Inside Azure Diagnostics (DevLink 2014)
Inside Azure Diagnostics (DevLink 2014)Inside Azure Diagnostics (DevLink 2014)
Inside Azure Diagnostics (DevLink 2014)
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect Partner
 
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
PaaSport to Paradise - Azure SQL and SSIS in Azure Data Factory - Better Toge...
 
Windows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect PartnerWindows Azure Mobile Services - The Perfect Partner
Windows Azure Mobile Services - The Perfect Partner
 
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
 
Inside Azure Resource Manager
Inside Azure Resource ManagerInside Azure Resource Manager
Inside Azure Resource Manager
 
Running SSIS 2017 at Scale Everywhere
 Running SSIS 2017 at Scale Everywhere Running SSIS 2017 at Scale Everywhere
Running SSIS 2017 at Scale Everywhere
 
Move to azure
Move to azureMove to azure
Move to azure
 
Microsoft Azure essentials
Microsoft Azure essentialsMicrosoft Azure essentials
Microsoft Azure essentials
 
Integrating sps 2010 and windows azure
Integrating sps 2010 and windows azureIntegrating sps 2010 and windows azure
Integrating sps 2010 and windows azure
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
 
Lap around windows azure
Lap around windows azureLap around windows azure
Lap around windows azure
 
IaaS azure_vs_amazon
IaaS azure_vs_amazonIaaS azure_vs_amazon
IaaS azure_vs_amazon
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
 
Understanding The Azure Platform March 2010
Understanding The Azure Platform   March 2010Understanding The Azure Platform   March 2010
Understanding The Azure Platform March 2010
 
10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will Fail10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will Fail
 

Similaire à Windows Azure: Lessons From the Field

Denver SQL Saturday The Next Frontier
Denver SQL Saturday The Next FrontierDenver SQL Saturday The Next Frontier
Denver SQL Saturday The Next FrontierKellyn Pot'Vin-Gorman
 
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"DataConf
 
Sql source control
Sql source controlSql source control
Sql source controlAndyPickett
 
Deploying asp.net and mvc applications to azure
Deploying asp.net and mvc applications to azureDeploying asp.net and mvc applications to azure
Deploying asp.net and mvc applications to azureGlyn Darkin
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql databasePARIKSHIT SAVJANI
 
Microsoft Cloud BI Update 2012 for SQL Saturday Philly
Microsoft Cloud BI Update 2012 for SQL Saturday PhillyMicrosoft Cloud BI Update 2012 for SQL Saturday Philly
Microsoft Cloud BI Update 2012 for SQL Saturday PhillyMark Kromer
 
Meetup developing building and_deploying databases with SSDT
Meetup developing building and_deploying databases with SSDTMeetup developing building and_deploying databases with SSDT
Meetup developing building and_deploying databases with SSDTSolidify
 
Chef as a One-Stop Solution on Microsoft Azure
Chef as a One-Stop Solution on Microsoft AzureChef as a One-Stop Solution on Microsoft Azure
Chef as a One-Stop Solution on Microsoft AzureKarsten Müller
 
Project oriented online realtime training on sql
Project oriented online realtime training on sqlProject oriented online realtime training on sql
Project oriented online realtime training on sqlsssql
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureMarco Obinu
 
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012Amazon Web Services
 
PowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasPowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasUK DevOps Collective
 
Blue Green Sitecore Deployments on Azure
Blue Green Sitecore Deployments on AzureBlue Green Sitecore Deployments on Azure
Blue Green Sitecore Deployments on AzureRob Habraken
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next yearShapeBlue
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsIDERA Software
 
CCI2017 - Considerations for Migrating Databases to Azure - Gianluca Sartori
CCI2017 - Considerations for Migrating Databases to Azure - Gianluca SartoriCCI2017 - Considerations for Migrating Databases to Azure - Gianluca Sartori
CCI2017 - Considerations for Migrating Databases to Azure - Gianluca Sartoriwalk2talk srl
 
High available BizTalk infrastructure on Azure IaaS
High available BizTalk infrastructure on Azure IaaSHigh available BizTalk infrastructure on Azure IaaS
High available BizTalk infrastructure on Azure IaaSBizTalk360
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?James Serra
 

Similaire à Windows Azure: Lessons From the Field (20)

Copy Data Management for the DBA
Copy Data Management for the DBACopy Data Management for the DBA
Copy Data Management for the DBA
 
Denver SQL Saturday The Next Frontier
Denver SQL Saturday The Next FrontierDenver SQL Saturday The Next Frontier
Denver SQL Saturday The Next Frontier
 
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
 
Sql source control
Sql source controlSql source control
Sql source control
 
Deploying asp.net and mvc applications to azure
Deploying asp.net and mvc applications to azureDeploying asp.net and mvc applications to azure
Deploying asp.net and mvc applications to azure
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql database
 
Microsoft Cloud BI Update 2012 for SQL Saturday Philly
Microsoft Cloud BI Update 2012 for SQL Saturday PhillyMicrosoft Cloud BI Update 2012 for SQL Saturday Philly
Microsoft Cloud BI Update 2012 for SQL Saturday Philly
 
Meetup developing building and_deploying databases with SSDT
Meetup developing building and_deploying databases with SSDTMeetup developing building and_deploying databases with SSDT
Meetup developing building and_deploying databases with SSDT
 
Chef as a One-Stop Solution on Microsoft Azure
Chef as a One-Stop Solution on Microsoft AzureChef as a One-Stop Solution on Microsoft Azure
Chef as a One-Stop Solution on Microsoft Azure
 
Project oriented online realtime training on sql
Project oriented online realtime training on sqlProject oriented online realtime training on sql
Project oriented online realtime training on sql
 
Sql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su AzureSql Start! 2020 - SQL Server Lift & Shift su Azure
Sql Start! 2020 - SQL Server Lift & Shift su Azure
 
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012DAT201 Migrating Databases to AWS - AWS re: Invent 2012
DAT201 Migrating Databases to AWS - AWS re: Invent 2012
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
PowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael ColasPowerShell DSC - State of the Art & Community by Gael Colas
PowerShell DSC - State of the Art & Community by Gael Colas
 
Blue Green Sitecore Deployments on Azure
Blue Green Sitecore Deployments on AzureBlue Green Sitecore Deployments on Azure
Blue Green Sitecore Deployments on Azure
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next year
 
Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure Environments
 
CCI2017 - Considerations for Migrating Databases to Azure - Gianluca Sartori
CCI2017 - Considerations for Migrating Databases to Azure - Gianluca SartoriCCI2017 - Considerations for Migrating Databases to Azure - Gianluca Sartori
CCI2017 - Considerations for Migrating Databases to Azure - Gianluca Sartori
 
High available BizTalk infrastructure on Azure IaaS
High available BizTalk infrastructure on Azure IaaSHigh available BizTalk infrastructure on Azure IaaS
High available BizTalk infrastructure on Azure IaaS
 
Should I move my database to the cloud?
Should I move my database to the cloud?Should I move my database to the cloud?
Should I move my database to the cloud?
 

Dernier

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Windows Azure: Lessons From the Field

  • 3. Table Storage • Access Control Service (ACS) • Windows Azure Diagnostics • Retry Logic • Deployment • Environments • Tools • Sell it!
  • 4. Non-relational data storage • Massive scale (100TB per storage account) • Single Key (Partition Key + Row Key) • Range based partitioning • Requires a different way of thinking – Multiple entity types in a single table – Group data into logical units – a partition – More than 1 key data point? Create your own composite key.
  • 5. Partition RowKey CourseName Comment Comment Key Record Type Count 43040 0:dafce7ed-47ff-474a-a94c- Darby Creek 1 8b7d555394c1 CourseId 43040 1:dafce7ed-47ff-474a-a94c- Fast 8b7d555394c1:252057602167737 Timestamp greens! 1563:b3abfc42-4e66-4306-b39b- c3972fde5ac7 43012 …. CommentId Timberview 5 43016 …. Buck Ridge 3 43016 ….. Great sand!!
  • 6. Select all the Course entities public IEnumerable<Course> SelectAllCourses() { var tableClient = storageAccount.CreateCloudTableClient(); var ctx = tableClient.GetDataServiceContext(); var results = (from c in ctx.CreateQuery<Course>(tableName) where c.RowKey.CompareTo("0:") >= 0 && c.RowKey.CompareTo("0;") < 0 select c).AsTableServiceQuery().ToList(); return results; }
  • 7. Plan for retries public void Add (Course course, Comment comment) { var tableClient = storageAccount.CreateCloudTableClient(); var ctx = tableClient.GetDataServiceContext(); ctx.AddObject(tableName, course); ctx.AddObject(tableName, comment); ctx.SaveChangesWithRetries(SaveChangesOptions.Batch); } Handle entity group transactions too!
  • 8. • Claims-based authentication service • Leverages Windows Identity Foundation (WIF) • No need to build your own identity management solution. What’s your value-add? • Multiple identity providers – Facebook, Windows Live, Google, Yahoo!, ADFSv2 • Most demos and walkthroughs show how easy ACS is to add . . . But there’s more.
  • 9. • Install WIF runtime via a startup task • DPAPI not supported – use your own certificate • Change request validation – Use ASP.NET 2 request validation – Custom validator
  • 10. • WIF relies on the web.config file • URLs related to the site are set in the web.config . . . can’t change • Problematic for staging deployments – don’t know the URL until deployed • Add logic to WebRole’s OnStart() to update the WIF settings in web.config – Read in configuration settings from .cscfg – Update and save the web.config – Changing .cscfg settings can cause a role recycle . . . causing web.confg to update
  • 11. • Need claims not provided by Identity Provider? – Claims vary by Identity Providers – Windows Live ID – limited usefulness  – Claims Enrichment – Custom implementation of ClaimsAuthenticationManager – Retrieve additional info from data store – Return as additional claims
  • 13. • Ability to persist multiple diagnostic sources across roles – Log Files – Event Logs – Performance Counters – IIS Logs • Diagnostics data saved in table or blob storage • Different storage account for diagnostic & app data • Use multiple diagnostic storage accounts & rotate – Easiest way to clean up large amounts of data in tables
  • 14. Configuration via code is easy . . . . . . but potentially problematic
  • 15. • Set diagnostic information via configuration • Special file – diagnostics.wadcfg • File automatically saved to blob storage and accessible from all instances • Don’t get out of sync • Diagnostics config in code overwrites what is in blob storage • Allows operations team, not dev, to control settings
  • 16.
  • 17. • Configure Remote Desktop early • Requires an input endpoint • Changing number of endpoints requires a delete and redeploy – Can’t perform a VIP swap • Don’t want it on all the time? Change the settings in .cscfg.
  • 18. • Transient Fault Handling Application Block • SQL Database, Windows Azure Storage, Service Bus, and more • Very extensible and flexible
  • 19.
  • 20. • Upload .cspkg & .cscfg files to Windows Azure portal • Use Visual Studio • Use Windows Azure PowerShell cmdlets – Humans make mistakes . . . Not good at repetitive tasks – Handle nearly everything via script – Works great in development and for production! – Invoke from other deployment tools like Team Build – Have a .cmd file that will execute the build and then kick off the deployment • Put deployment files in blob storage for quick access later
  • 21. • Use subscriptions to control access and billing. • Get billing and subscription administrators set up . . . . Very difficult to change later (especially the Live ID for account owner) Development QA Production CS CS CS CS CS DB DB Staging Staging Staging CS CS CS CS CS DB DB DB Production Production Production • Developers create & deploy services in ‘Development’ as needed. Co-admins for the ‘Development’ subscription. • QA teams have access to QA. They are co-admins for the QA subscription. • Operations team is co-admins for ‘Production’.
  • 22. Neudesic Azure Storage Explorer Cerebrata Cloud Storage Studio Diagnostics Manager Management Cmdlets http://azurestorageexplorer.codeplex.com/
  • 23. • What are your pain points? – Cost pressures – Slow to deploy – Scalability – Security • Scenarios – Web Modernization – Gaming – Mobility – Big Data – Enterprise Application Integration
  • 25. • WIF: A Potentially Dangerous Request.Form Value Was Detected – http://social.technet.microsoft.com/wiki/contents/articles/1725.windows-identity-foundation-wif-a-potentially- dangerous-request-form-value-was-detected-from-the-client-wresult-t-requestsecurityto.aspx • Install WIF Runtime via Startup Task – http://stackoverflow.com/questions/8697596/azure-service-configuration-error • Edit & Apply New WIF Config Settings w/o Redeploying – http://blogs.msdn.com/b/vbertocci/archive/2011/05/31/edit-and-apply-new-wif-s-config-settings-in-your- windows-azure-webrole-without-redeploying.aspx • Publishing a ACS v2 Federated Identity Web Role – http://blogs.msdn.com/b/davidmcg/archive/2011/04/05/publishing-a-acs-v2-federated-identity-web-role.aspx • Windows Azure Active Directory Solutions For Developers – http://social.technet.microsoft.com/wiki/contents/articles/3669.windows-azure-active-directory-solutions-for- developers.aspx • How to get most out of Windows Azure Tables – http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure- tables.aspx • Collecting Logging Data by Using Windows Azure Diagnostics – http://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx

Notes de l'éditeur

  1. Windows Azure National ArchitectWindows Azure MVPHelp customers nationwide with their Windows Azure projects. This can include architectural design sessions, training, development, evangelism, etc.Reach me via email, Twitter, or my blog.
  2. Cover several areas of Windows Azure.Not going to go deep on any of these areas – assuming you have some working knowledge of Windows Azure.Question – ask. Leave time at end for Q &amp; A too.Purpose – show you some things in Windows Azure that aren’t always like the happy path demo.This isn’t to say that Windows Azure is difficult – its not. Often there are a few extra things you need to do.
  3. Range based system – using the Partition Key to help define the ranges.Can use unique Partition Key.Try to avoid prepend or append patterns w/ the Partition Key – one area always more active. Not an even distribution.Distribute load/keys evenly.
  4. Example – one table that contains two different entities (Courses and Comments)RowKey – multiple values using a separatorRecord Type to distinguish Course vs. CommentCourseId to have a unique value for the courseComment entityReverse timestamp to take advantage of lexical sort order (default) of the table – most recent firstUnique CommentId value
  5. CompareTo - Compares this instance with a specified object or String and returns an integer that indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified object or String
  6. Request validation for all requests in ASP.NET 4.; Security feature – cross-site scripting attacks
  7. WIF relies on settings in the web.config – which we typically can’t change easily w/ Azure apps
  8. Show ACSClaimsAuthenticationManagerLogon w/ RegistrationLogoutWIF setting update in WebRolehttp://www.istockphoto.com/stock-photo-19150373-thumbs-up.php?refnum=5882518&amp;source=sxchu04&amp;muuid=sxc651f81d74d3fe87ac55b5d6d01045
  9. Diagnosticconfig code persisted to a file in blob storageAbility to remotely configure diagnostics – API for updating the config file in blob storageRole instance recycles – changes the config file back to what the code states, not what you’ve previously updated
  10. Sometimes easiest way to diagnose a problem – RDP into the server instance.
  11. Retry Policy – how often to retryRetry Strategy – what triggers a retry action
  12. http://stackoverflow.com/questions/9207603/windows-azure-acs-unable-to-find-assembly-microsoft-identitymodelhttp://msdn.microsoft.com/en-us/library/windowsazure/hh411551
  13. Windows Azure National ArchitectWindows Azure MVPHelp customers nationwide with their Windows Azure projects. This can include architectural design sessions, training, development, evangelism, etc.Reach me via email, Twitter, or my blog.