SlideShare uma empresa Scribd logo
1 de 21
Azure Providers Azure Cloud Web Application with memberships in 1-2-3 http://AzureProviders.codeplex.com Inge Henriksen IT consultant @ Bouvet Microsoft dep.in Oslo mailto:inge.henriksen@bouvet.no
What is «The Cloud»? Software as a Service (SaaS); ex. Exchange Online Platform as a Service (PaaS); ex. Azure Services Platform Infrastructure as a Service (IaaS); thephysical computer infrastructure 4/13/2011 http://azureproviders.codeplex.com 2
Windows Azure  Storage Tables; Structuredstorage in a key/value manner Queues; queueingmechanismwithstorage for reliable messaging Blobs; storage for largebinary files Drives; externalmemory in the form of NTFS volumes REST or ManagedAPI’s 4/13/2011 http://azureproviders.codeplex.com 3
Windows AzureTables Structuredstorage Scalable; automaticallydistributes over server instances Cancontain billions ofrowsand up to 100 TB per storage High availability; data is replicatedseveral times Use REST, or use ADO.NET Data Services with .NET classes or LINQ 4/13/2011 http://azureproviders.codeplex.com 4
Windows AzureTables Part oftheNoSQLmovement Supports declerativequeriesusingLINQ Flexible entity definition but no constraints Very affordable and only gets more expensive when your application grows Distributed queries makes it really fast Big minus is having only one index per table 4/13/2011 http://azureproviders.codeplex.com 5
Windows AzureTable Storage Concepts Accounts Tables Entities Name=AdminEmail=ad@ex.no … Users Henriksen Name=IngeEmail=ih@ex.no … SessionState Expires=20/2/12Key=123213123… Roles Expires=21/3/12Key=534554335… 4/13/2011 http://azureproviders.codeplex.com 6
Windows AzureTableEntitydefinition 4/13/2011 http://azureproviders.codeplex.com 7
Windows AzureTablePartitioning Eachpartition is distributed over manystorage nodes Autmaticmonitoring and balancingofload on partitions Use Guid as parition key for a more evenspreadacrossstorage nodes Onlypartitionkey is indexed Rowkey is oftenomitted, except for versioning 4/13/2011 http://azureproviders.codeplex.com 8
Azure Providers Project Description Complete ASP.NET solution that uses the Azure Table Storage and Azure Blob storage as a data source for a custom Membership, Role, Profile, an Session-State providers 4/13/2011 http://azureproviders.codeplex.com 9
Azure ProvidersFeatures Complete membership provider that stores data in the Azure Table Storage Complete role provider that stores data in the Azure Table Storage Complete profile provider that stores data in the Azure Table Storage and Blob Storage Complete Session-State Provider that uses the Azure Table Storage so that you can maintain session-state between server instances in the Azure cloud (New in V1.1.6360) All e-mail sent from the application is handled by a worker role that picks e-mails from the Azure Queue (New in V1.1.6360) Register account page with e-mail confirmation and Question/Answer Sign In page with automatic locking after too many failed attempts 4/13/2011 http://azureproviders.codeplex.com 10
Azure ProvidersFeatures Sign Out functionality Change Password page with e-mail confirmation Reset Password page where new password is sent to e-mail account Locked account functionality where user can unlock account using link sent to users e-mail account User e-mail validation by using link sent after account validation, account is not activated before e-mail is validated User profile page where user can set his/her gender and upload a profile image that is stored as a Azure Blob (Automatic thumbnail creation added in V1.1.6360) Admin page that shows an overview of all the roles Admin page that shows some site statistics Admin page that shows an overview of all the users 4/13/2011 http://azureproviders.codeplex.com 11
Azure ProvidersSystem Requirements For use: An Microsoft Azureaccount For development: Visual Studio 2010 Azure SDK 1.4 Azure Tools for Visual Studio 2010 V1.3 Microsoft SQL Server Express 4/13/2011 http://azureproviders.codeplex.com 12
Azure ProvidersGettingStarted Make sure you have all the prerequisites Download the source and unzip it to a folder on your PC Open VS 2010 as an administrator (Azure development storage require this) Find and open the AzureProviders.sln solution from Visual Studio 2010 Change the SMTP-server to one that works for you in app.config under Email Agent -> system.net -> mailsettings -> smtp -> network Run the solution from Visual Studio 2010 You should see the Initialize Application page first time you run the solution, this creates all the Azure tables and some default content like users and roles etc Sign in with the Admin user (default user name is "Admin" and default password is "Password") You should change the statickeyappsetting in the web.config file before going public since this is the encryption key, or use machine key instead. 4/13/2011 http://azureproviders.codeplex.com 13
Azure ProvidersMembership Provider Handles usersign in/out Several ASP.NET controls supports the provider AzureMembershipProvider.cs UsesAzureTable Storage and Queues for e-mail Web.configdefinition: 4/13/2011 http://azureproviders.codeplex.com 14
Azure ProvidersAzure Queue usage E-mail areplaced on thequeue for asyncroniouswork EmailAgentworkerroleprocessesitems in thequeue AzureQueueDataSource.cs is Queue data source Change mail server app.config settings in EmailAgentproject: 4/13/2011 http://azureproviders.codeplex.com 15
Azure ProvidersProfile Provider Handles all userprofile data UsesAzureTable Storage and AzureBlob Storage AzureProfileProvider.cs 4/13/2011 http://azureproviders.codeplex.com 16
Azure ProvidersProfile Provider User portraitsarestored in theAzureBlob Storage Web.config settings: 4/13/2011 http://azureproviders.codeplex.com 17
Azure ProvidersRole Provider Handles userroles UsestheAzureTable Storage AzureRoleProvider.cs Web.config settings: 4/13/2011 http://azureproviders.codeplex.com 18
Azure ProvidersSession-State Provider Handles session-state across server instances Standard ASP.NET session-state is in-process UsestheAzureTable Storage Web.config settings: 4/13/2011 http://azureproviders.codeplex.com 19
Lessons LearnedIn General Only one table storage index is cumbersome Use Azure Queue together with worker roles for asynchronous work like sending e-mails etc Azure really cheap for start-ups even if you plan to be big (pay-as-you-go) No table storage constraints is bad LINQ as a table storage declerative query language works great, but with some issues Table storage only support simple data types like integers, strings, booleans, doubles, datetime’s, Guids, and binaries smaller than 64 Kb Queue does not support events out-of-the box so you have to poll the queue yourself using a timer which is stupid Don’t share AzureServiceContext’s between threads, it will crash Use DataServiceContext.Detach and DataServiceContext.AttachTo before update and delete in the table storage unless you are certain that you are working on the same partition key item Always use TableServiceContext.SaveChangesWithRetires and not TableServiceContext.SaveChanges as you have no guaranties of success with optimistic locking 4/13/2011 http://azureproviders.codeplex.com 20
Lessons LearnedPerformance Use parallel LINQ queries rather than «OR» in your queries Bulk updates/inserts are very fast, but I still have not found a use for it Use GUID’s as partition keys to spread load RowKey should be empty to spread load Normalize table store data to 5th normal form only where needed to save storage space and to optimize queries where needed Use Azure Content Delivery Network to distribute your Azure Blob files where needed for optimal performance Never do queries that does not primerly use the partition key as a query parameter as these will trigger whole table scans Know that the Managed objects are just REST wrappers, so use tiny interchange formats like JSON and not XML. XML will take longer to transfer and cost you more money in Azure data transfer costs Check the CloudQueueMessage.DequeueCount property before staring jobs from Azure Queue messages to avoid buggy messages hanging around forever AzureServiceContext instances should have a short lifetime to avoid locking issues 4/13/2011 http://azureproviders.codeplex.com 21

Mais conteúdo relacionado

Mais procurados

New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0Dima Maleev
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websitesoazabir
 
Progressive EPiServer Development
Progressive EPiServer DevelopmentProgressive EPiServer Development
Progressive EPiServer Developmentjoelabrahamsson
 
Salesforce ANT migration
Salesforce ANT migration Salesforce ANT migration
Salesforce ANT migration Cloud Analogy
 
Installing and Configuring Oracle Beehive Clients (whitepaper)
Installing and Configuring Oracle Beehive Clients (whitepaper)Installing and Configuring Oracle Beehive Clients (whitepaper)
Installing and Configuring Oracle Beehive Clients (whitepaper)Revelation Technologies
 
Effective Persistence Using ORM With Hibernate
Effective Persistence Using ORM With HibernateEffective Persistence Using ORM With Hibernate
Effective Persistence Using ORM With HibernateEdureka!
 
Introduction to SQLite in Adobe AIR
Introduction to SQLite in Adobe AIRIntroduction to SQLite in Adobe AIR
Introduction to SQLite in Adobe AIRPeter Elst
 
SPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx WebpartSPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx WebpartJenkins NS
 
Web Application Deployment
Web Application DeploymentWeb Application Deployment
Web Application Deploymentelliando dias
 
ASP.NET Request Processing Internals
ASP.NET Request Processing InternalsASP.NET Request Processing Internals
ASP.NET Request Processing InternalsAbhijit Jana
 
Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1
Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1
Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1Jade Global
 
New Features of ASP.NET 4.0
New Features of ASP.NET 4.0New Features of ASP.NET 4.0
New Features of ASP.NET 4.0Buu Nguyen
 
Asp Net Advance Topics
Asp Net Advance TopicsAsp Net Advance Topics
Asp Net Advance TopicsAli Taki
 
Tspug 2015 dirsync_amit_v_momentum
Tspug 2015 dirsync_amit_v_momentumTspug 2015 dirsync_amit_v_momentum
Tspug 2015 dirsync_amit_v_momentumamitvasu
 

Mais procurados (20)

New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites
 
EPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & TricksEPiServer Deployment Tips & Tricks
EPiServer Deployment Tips & Tricks
 
Amazone s3 in mule
Amazone s3 in muleAmazone s3 in mule
Amazone s3 in mule
 
Progressive EPiServer Development
Progressive EPiServer DevelopmentProgressive EPiServer Development
Progressive EPiServer Development
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Salesforce ANT migration
Salesforce ANT migration Salesforce ANT migration
Salesforce ANT migration
 
Installing and Configuring Oracle Beehive Clients (whitepaper)
Installing and Configuring Oracle Beehive Clients (whitepaper)Installing and Configuring Oracle Beehive Clients (whitepaper)
Installing and Configuring Oracle Beehive Clients (whitepaper)
 
Effective Persistence Using ORM With Hibernate
Effective Persistence Using ORM With HibernateEffective Persistence Using ORM With Hibernate
Effective Persistence Using ORM With Hibernate
 
Chapter 26
Chapter 26Chapter 26
Chapter 26
 
Introduction to SQLite in Adobe AIR
Introduction to SQLite in Adobe AIRIntroduction to SQLite in Adobe AIR
Introduction to SQLite in Adobe AIR
 
SPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx WebpartSPFx Webinar Loading SharePoint data in a SPFx Webpart
SPFx Webinar Loading SharePoint data in a SPFx Webpart
 
Web Application Deployment
Web Application DeploymentWeb Application Deployment
Web Application Deployment
 
ASP.NET Request Processing Internals
ASP.NET Request Processing InternalsASP.NET Request Processing Internals
ASP.NET Request Processing Internals
 
Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1
Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1
Demantra Installation,Configuration and Integration with EBusiness Suite R12.1.1
 
New Features of ASP.NET 4.0
New Features of ASP.NET 4.0New Features of ASP.NET 4.0
New Features of ASP.NET 4.0
 
Asp Net Advance Topics
Asp Net Advance TopicsAsp Net Advance Topics
Asp Net Advance Topics
 
Tspug 2015 dirsync_amit_v_momentum
Tspug 2015 dirsync_amit_v_momentumTspug 2015 dirsync_amit_v_momentum
Tspug 2015 dirsync_amit_v_momentum
 
Metadata API
Metadata  APIMetadata  API
Metadata API
 
Advanced Asp.Net Concepts And Constructs
Advanced Asp.Net Concepts And ConstructsAdvanced Asp.Net Concepts And Constructs
Advanced Asp.Net Concepts And Constructs
 

Semelhante a Azure providers - Bouvet BigOne 2011

Creating and deploying apps in azure
Creating and deploying apps in azureCreating and deploying apps in azure
Creating and deploying apps in azureAmal Dev
 
Windows azure camp - Kolkata
Windows azure camp - KolkataWindows azure camp - Kolkata
Windows azure camp - KolkataAbhijit Jana
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure campAbhishek Sur
 
Integration of mule esb with microsoft azure
Integration of mule esb with microsoft azureIntegration of mule esb with microsoft azure
Integration of mule esb with microsoft azuresivachandra mandalapu
 
Devday 2014 using_afs_in_your_cloud_app
Devday 2014 using_afs_in_your_cloud_appDevday 2014 using_afs_in_your_cloud_app
Devday 2014 using_afs_in_your_cloud_appMihail Mateev
 
IEEE KUET SPAC presentation
IEEE KUET SPAC  presentationIEEE KUET SPAC  presentation
IEEE KUET SPAC presentationahsanmm
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Servicesukdpe
 
Go…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows AzureGo…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows AzureThomas Robbins
 
BizSpark Startup Night Windows Azure March 29, 2011
BizSpark Startup Night Windows Azure March 29, 2011BizSpark Startup Night Windows Azure March 29, 2011
BizSpark Startup Night Windows Azure March 29, 2011Spiffy
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiGirish Kalamati
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010DavidGristwood
 
Entity framework and how to use it
Entity framework and how to use itEntity framework and how to use it
Entity framework and how to use itnspyre_net
 
SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010Michael Noel
 
Azure Software As Service
Azure Software As ServiceAzure Software As Service
Azure Software As ServiceJosef Finsel
 

Semelhante a Azure providers - Bouvet BigOne 2011 (20)

Creating and deploying apps in azure
Creating and deploying apps in azureCreating and deploying apps in azure
Creating and deploying apps in azure
 
Azure and Umbraco CMS
Azure and Umbraco CMSAzure and Umbraco CMS
Azure and Umbraco CMS
 
Sky High With Azure
Sky High With AzureSky High With Azure
Sky High With Azure
 
Windows azure camp - Kolkata
Windows azure camp - KolkataWindows azure camp - Kolkata
Windows azure camp - Kolkata
 
Windows azure camp
Windows azure campWindows azure camp
Windows azure camp
 
Integration of mule esb with microsoft azure
Integration of mule esb with microsoft azureIntegration of mule esb with microsoft azure
Integration of mule esb with microsoft azure
 
Devday 2014 using_afs_in_your_cloud_app
Devday 2014 using_afs_in_your_cloud_appDevday 2014 using_afs_in_your_cloud_app
Devday 2014 using_afs_in_your_cloud_app
 
IEEE KUET SPAC presentation
IEEE KUET SPAC  presentationIEEE KUET SPAC  presentation
IEEE KUET SPAC presentation
 
ASP.NET Identity
ASP.NET IdentityASP.NET Identity
ASP.NET Identity
 
Windows Azure and a little SQL Data Services
Windows Azure and a little SQL Data ServicesWindows Azure and a little SQL Data Services
Windows Azure and a little SQL Data Services
 
Go…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows AzureGo…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows Azure
 
Microsoft cloud 101
Microsoft cloud 101Microsoft cloud 101
Microsoft cloud 101
 
BizSpark Startup Night Windows Azure March 29, 2011
BizSpark Startup Night Windows Azure March 29, 2011BizSpark Startup Night Windows Azure March 29, 2011
BizSpark Startup Night Windows Azure March 29, 2011
 
Azure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish KalamatiAzure from scratch part 3 By Girish Kalamati
Azure from scratch part 3 By Girish Kalamati
 
Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010Understanding the Windows Azure Platform - Dec 2010
Understanding the Windows Azure Platform - Dec 2010
 
Entity framework and how to use it
Entity framework and how to use itEntity framework and how to use it
Entity framework and how to use it
 
SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010SharePoint 2010 High Availability - TechEd Brasil 2010
SharePoint 2010 High Availability - TechEd Brasil 2010
 
Azure Software As Service
Azure Software As ServiceAzure Software As Service
Azure Software As Service
 
Microsoft Azure
Microsoft AzureMicrosoft Azure
Microsoft Azure
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 

Último

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Último (20)

"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Azure providers - Bouvet BigOne 2011

  • 1. Azure Providers Azure Cloud Web Application with memberships in 1-2-3 http://AzureProviders.codeplex.com Inge Henriksen IT consultant @ Bouvet Microsoft dep.in Oslo mailto:inge.henriksen@bouvet.no
  • 2. What is «The Cloud»? Software as a Service (SaaS); ex. Exchange Online Platform as a Service (PaaS); ex. Azure Services Platform Infrastructure as a Service (IaaS); thephysical computer infrastructure 4/13/2011 http://azureproviders.codeplex.com 2
  • 3. Windows Azure Storage Tables; Structuredstorage in a key/value manner Queues; queueingmechanismwithstorage for reliable messaging Blobs; storage for largebinary files Drives; externalmemory in the form of NTFS volumes REST or ManagedAPI’s 4/13/2011 http://azureproviders.codeplex.com 3
  • 4. Windows AzureTables Structuredstorage Scalable; automaticallydistributes over server instances Cancontain billions ofrowsand up to 100 TB per storage High availability; data is replicatedseveral times Use REST, or use ADO.NET Data Services with .NET classes or LINQ 4/13/2011 http://azureproviders.codeplex.com 4
  • 5. Windows AzureTables Part oftheNoSQLmovement Supports declerativequeriesusingLINQ Flexible entity definition but no constraints Very affordable and only gets more expensive when your application grows Distributed queries makes it really fast Big minus is having only one index per table 4/13/2011 http://azureproviders.codeplex.com 5
  • 6. Windows AzureTable Storage Concepts Accounts Tables Entities Name=AdminEmail=ad@ex.no … Users Henriksen Name=IngeEmail=ih@ex.no … SessionState Expires=20/2/12Key=123213123… Roles Expires=21/3/12Key=534554335… 4/13/2011 http://azureproviders.codeplex.com 6
  • 7. Windows AzureTableEntitydefinition 4/13/2011 http://azureproviders.codeplex.com 7
  • 8. Windows AzureTablePartitioning Eachpartition is distributed over manystorage nodes Autmaticmonitoring and balancingofload on partitions Use Guid as parition key for a more evenspreadacrossstorage nodes Onlypartitionkey is indexed Rowkey is oftenomitted, except for versioning 4/13/2011 http://azureproviders.codeplex.com 8
  • 9. Azure Providers Project Description Complete ASP.NET solution that uses the Azure Table Storage and Azure Blob storage as a data source for a custom Membership, Role, Profile, an Session-State providers 4/13/2011 http://azureproviders.codeplex.com 9
  • 10. Azure ProvidersFeatures Complete membership provider that stores data in the Azure Table Storage Complete role provider that stores data in the Azure Table Storage Complete profile provider that stores data in the Azure Table Storage and Blob Storage Complete Session-State Provider that uses the Azure Table Storage so that you can maintain session-state between server instances in the Azure cloud (New in V1.1.6360) All e-mail sent from the application is handled by a worker role that picks e-mails from the Azure Queue (New in V1.1.6360) Register account page with e-mail confirmation and Question/Answer Sign In page with automatic locking after too many failed attempts 4/13/2011 http://azureproviders.codeplex.com 10
  • 11. Azure ProvidersFeatures Sign Out functionality Change Password page with e-mail confirmation Reset Password page where new password is sent to e-mail account Locked account functionality where user can unlock account using link sent to users e-mail account User e-mail validation by using link sent after account validation, account is not activated before e-mail is validated User profile page where user can set his/her gender and upload a profile image that is stored as a Azure Blob (Automatic thumbnail creation added in V1.1.6360) Admin page that shows an overview of all the roles Admin page that shows some site statistics Admin page that shows an overview of all the users 4/13/2011 http://azureproviders.codeplex.com 11
  • 12. Azure ProvidersSystem Requirements For use: An Microsoft Azureaccount For development: Visual Studio 2010 Azure SDK 1.4 Azure Tools for Visual Studio 2010 V1.3 Microsoft SQL Server Express 4/13/2011 http://azureproviders.codeplex.com 12
  • 13. Azure ProvidersGettingStarted Make sure you have all the prerequisites Download the source and unzip it to a folder on your PC Open VS 2010 as an administrator (Azure development storage require this) Find and open the AzureProviders.sln solution from Visual Studio 2010 Change the SMTP-server to one that works for you in app.config under Email Agent -> system.net -> mailsettings -> smtp -> network Run the solution from Visual Studio 2010 You should see the Initialize Application page first time you run the solution, this creates all the Azure tables and some default content like users and roles etc Sign in with the Admin user (default user name is "Admin" and default password is "Password") You should change the statickeyappsetting in the web.config file before going public since this is the encryption key, or use machine key instead. 4/13/2011 http://azureproviders.codeplex.com 13
  • 14. Azure ProvidersMembership Provider Handles usersign in/out Several ASP.NET controls supports the provider AzureMembershipProvider.cs UsesAzureTable Storage and Queues for e-mail Web.configdefinition: 4/13/2011 http://azureproviders.codeplex.com 14
  • 15. Azure ProvidersAzure Queue usage E-mail areplaced on thequeue for asyncroniouswork EmailAgentworkerroleprocessesitems in thequeue AzureQueueDataSource.cs is Queue data source Change mail server app.config settings in EmailAgentproject: 4/13/2011 http://azureproviders.codeplex.com 15
  • 16. Azure ProvidersProfile Provider Handles all userprofile data UsesAzureTable Storage and AzureBlob Storage AzureProfileProvider.cs 4/13/2011 http://azureproviders.codeplex.com 16
  • 17. Azure ProvidersProfile Provider User portraitsarestored in theAzureBlob Storage Web.config settings: 4/13/2011 http://azureproviders.codeplex.com 17
  • 18. Azure ProvidersRole Provider Handles userroles UsestheAzureTable Storage AzureRoleProvider.cs Web.config settings: 4/13/2011 http://azureproviders.codeplex.com 18
  • 19. Azure ProvidersSession-State Provider Handles session-state across server instances Standard ASP.NET session-state is in-process UsestheAzureTable Storage Web.config settings: 4/13/2011 http://azureproviders.codeplex.com 19
  • 20. Lessons LearnedIn General Only one table storage index is cumbersome Use Azure Queue together with worker roles for asynchronous work like sending e-mails etc Azure really cheap for start-ups even if you plan to be big (pay-as-you-go) No table storage constraints is bad LINQ as a table storage declerative query language works great, but with some issues Table storage only support simple data types like integers, strings, booleans, doubles, datetime’s, Guids, and binaries smaller than 64 Kb Queue does not support events out-of-the box so you have to poll the queue yourself using a timer which is stupid Don’t share AzureServiceContext’s between threads, it will crash Use DataServiceContext.Detach and DataServiceContext.AttachTo before update and delete in the table storage unless you are certain that you are working on the same partition key item Always use TableServiceContext.SaveChangesWithRetires and not TableServiceContext.SaveChanges as you have no guaranties of success with optimistic locking 4/13/2011 http://azureproviders.codeplex.com 20
  • 21. Lessons LearnedPerformance Use parallel LINQ queries rather than «OR» in your queries Bulk updates/inserts are very fast, but I still have not found a use for it Use GUID’s as partition keys to spread load RowKey should be empty to spread load Normalize table store data to 5th normal form only where needed to save storage space and to optimize queries where needed Use Azure Content Delivery Network to distribute your Azure Blob files where needed for optimal performance Never do queries that does not primerly use the partition key as a query parameter as these will trigger whole table scans Know that the Managed objects are just REST wrappers, so use tiny interchange formats like JSON and not XML. XML will take longer to transfer and cost you more money in Azure data transfer costs Check the CloudQueueMessage.DequeueCount property before staring jobs from Azure Queue messages to avoid buggy messages hanging around forever AzureServiceContext instances should have a short lifetime to avoid locking issues 4/13/2011 http://azureproviders.codeplex.com 21