Differences between On- premise and Windows Azure Dominik Pintér ([email protected]), Kentico software
Dec 09, 2014
Differences between On-premise and Windows AzureDominik Pintér ([email protected]), Kentico software
Agenda
• What Kentico CMS needs to run on Azure• Windows Azure doesn‘t have durable NTFS file system• No write access to the application directory• Application must be stateless• SQL Azure – little bit different database• Windows authentication• Differences in development• Azure SDKs
What Kentico CMS needs to run on Azure
Kentico CMS 5.5 R2:• Windows Azure compute services (ASP.NET web role)• Optionally Windows Azure storage (blob storage)• SQL Azure
SQL AzureASP NET Web role
Azurestorage
Durable NTFS file system is missing
Storage Can be used as file system?
Queue This storage is definitely useful BUT not for file system
Table Can be used only as a storage for metadata because of size limitations
Instance local storage NTFS filesystem but not durable, not scalable, data only on one instance
Blob Great replacement, durable, scalable, simulation of tree via virtual directories
Blob storage is manipulated by special API, two options:• Use Azure drive – mount blob storage as NTFS file system, limited for Read/Write to one instance (Kentico CMS 5.5 R2)• Use blob API directly – code changes needed, no limitations (Kentico CMS 6.0)
No write access to application directory
Current situation:• You shouldn‘t write anything to application directory• Some operations are allowed, most of them aren‘t• Data between instances aren‘t synchronized• Instance data aren‘t durable
Problems from Kentico CMS point of view:• Modules: Web analytics, Smart search (solved using Azure
drive)• Database install• Import/Export
Application must be stateless
Challenges1. Synchronization of memory objects2. Storing of session state data
Solution3. Web farms module (6.0)4. Use Azure session state provider
Load balancer
Instance 1
Instance 2
Instance 3
• Multi VMs environment• Load balancer • Round robin algorithm
Application must be stateless
On-premise session state providers
Azure session state providers
Session state provider Where stores data? Can be used?
In proc Process memory Only 1 instance
State server Instance Only 1 instance
SQL Server SQL database No
Session state provider Where stores data? Disadvantage
Sample provider from MS Blob storage/table Not predictable price
SQL Azure SQL Azure Needs additional handling
Azure Appfabric cache Azure Appfabric cache CTP
SQL Azure – little bit different database
Few general differences:• Main difference – SQL is relation database without additional
features (Reporting services, integration services, ...).• Reporting services are now in CTP• Missing fulltext support• Every table needs to have at least one clustered index
From Kentico CMS point of view:• No problem, question of changing connection string• SQL migration wizard, http://sqlazuremw.codeplex.com/
Windows authentication
• Integrated Windows authentication doesn‘t work with ASP.NET web role
• WebDAV integration needs this type of authentication• Possible solution – Windows Azure Connect
Differences in development
• Application which run under ASP.NET web role must be Web application project
• Kentico CMS 5.5 R2 – web site project• New type of project, new configuration files
Azure SDKs
• Multiple versions• Kentico CMS supports SDK 1.1 upper (latest is SDK 1.4)• Breaking version – SDK 1.3, full IIS support, remote desktop, ...• SDK 1.2 and lower – setting for internal role port is missing –
minor issues with Kentico CMS• SDK 1.3 and upper – Visual studio 2010 needed, issue with
running Kentico CMS under full IIS in Visual studio – bug in SDK
Q&A
?
Thank you!E-mail: [email protected]: DominikPinterBlog: http://devnet.kentico.com/Blogs/Dominik-Pinter.aspx