SQL Azure Scale-Out
Created by Orckestra
C1 CMS Versions supported
This package requires CMS version 6.1 or newer (Build: 6.1.6325.31805).
Pre-Installation Steps
- Use C1 CMS version 4.2 Update 2 or later.
- Deploy the website on Microsoft Azure.
- Convert the XML-based website into an SQL-based one.
Important Notes:
- Consider using a C1 CMS Azure service package with the "Small" or larger web role.
- To be able to work in the CMS Console of the website, consider allowing write-backs on the website:
<Runtime writeback="true" websiteType="composite-c1" />
- Start with a 1-instance deployment. After you have configured the scaled-out solution, you will be able to increase the number of instances in the Microsoft Azure management portal.
Installation steps
- Log into the CMS Console as an administrator.
- Go to the "System" perspective.
- Open the folders “Packages” | “Available Packages” | " Composite.Azure".
- Select " Composite.Azure.ScaleOut" and click “Install”.
- Complete the wizard.
Post-Installation Steps
After installing the package, you should:
Once you've configured the synchronization within your scaled-out setup, you may want to check the logs for synchronization errors to make sure that everything is working properly.
Configuring media files synchronization
Before you configure media files synchronization, you, first of all, need to create a container in Azure blob storage. This is where the scaled-out Orckestra CMS Website will store its media files (instead of ~/App_Data/Media):
- Log into the Microsoft Azure management portal.
- Choose an existing blob storage account or, if needed, create a new one.
- Add a storage container (for example, "c1mediafiles") where media files will be stored
- Make sure the container has the Private access.
- Make a note of, or copy, the storage account name and storage access key. You'll be using these values when specifying the blob connection string (see below).
Then, add the connection string to Web.config:
- Edit ~/Web.config.
- Add the blob storage connection string with some name, for example, "c1media":
<configuration> <!-- skipped --> <connectionStrings> <!-- skipped --> <add name="c1media" connectionString="DefaultEndpointsProtocol=https;AccountName=[AccountName];AccountKey=[AccessKey]" /> </connectionStrings> </configuration>where:
- [AccountName] is the name of the Azure storage account
- [AccessKey] is the access key to the storage account
Finally, replace the default media provider in Composite.config with an Azure media provider using the name of blob connection string you've just added:
- Edit ~/App_Data/Composite/Composite.config.
- Search for name="MediaFileDataProvider" to locate the default media provider.
- Comment out this media file provider.
- Add a reference to AzureMediaProvider as shown below:
<configuration> <!-- skipped --> <Composite.Data.Plugins.DataProviderConfiguration defaultDynamicTypeDataProviderName="…"> <DataProviderPlugins> <!-- skipped --> <!-- <add rootDirectory="~/App_Data/Media" storeId="MediaArchive" storeDescription="Media Archive Files" storeTitle="Media Archive" type="Composite.Plugins.Data.DataProviders.MediaFileProvider.MediaFileProvider, Composite, Version=1.0.3037.13741, Culture=neutral, PublicKeyToken=null" name="MediaFileDataProvider" /> --> <add rootDirectory="~/App_Data/Media" storeId="MediaArchive" storeDescription="Media Archive Files" storeTitle="Media Archive" type="Composite.Azure.ScaleOut.AzureMediaProvider.AzureMediaDataProvider, Composite.Azure.ScaleOut.AzureMediaProvider" name="MediaFileDataProvider" blobStorageConnectionStringName="[BlobConnectionStringName]" blobContainer="[BlobContainerName]" /> </DataProviderPlugins> </configuration>where:
- [BlobConnectionStringName] is the name of the blob connection string added in Web.config (see above).
- [BlobContainerName] is the name of the container created in the blob storage (see above).
For example:
<add … blobStorageConnectionStringName="c1media" blobContainer="c1mediafiles" />
Configuring data changes synchronization
Before you configure data changes synchronization, you should create a service bus on Microsoft Azure, if needed, and get its connection string:
- Log into the Microsoft Azure management portal.
- Choose an existing service bus or, if needed, create a new one.
- Make a note of, or copy, the service bus connection string you'll need next.
When being installed, the package adds two application settings to Web.config.
<configuration> <!-- skipped --> <appSettings> <add key="Composite.Azure.ScaleOut.DataCacheFlusher.ServiceBus.ConnectionString" value="Endpoint=sb://[yourServiceNamespace].servicebus.windows.net/;SharedSecretIssuer=[issuerName];SharedSecretValue=[yourDefaultKey]" /> <add key="Composite.Azure.ScaleOut.DataCacheFlusher.DataProviders" value="DynamicSqlDataProvider" /> </appSettings> <!-- skipped --> </configuration>You need to make sure that they are properly configured:
- Edit ~/Web.config.
- Set the service bus connection string in the "Composite.Azure.ScaleOut.DataCacheFlusher.ServiceBus.ConnectionString" setting. For example:
<add key="Composite.Azure.ScaleOut.DataCacheFlusher.ServiceBus.ConnectionString" value="Endpoint=sb://mysrvbus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=gkTvceSqsUAx+okXzOG8WKCOJ9MflR/cx0ZBwyA0QW0=" />
- Keep the "Composite.Azure.ScaleOut.DataCacheFlusher.DataProviders" setting unchanged - if you are using the default SQL data provider named "DynamicSqlDataProvider".
In general, the "Composite.Azure.ScaleOut.DataCacheFlusher.DataProviders" setting contains a comma separated list of data providers for which the cache flush notification should be enabled. By default, on an SQL-based Orckestra CMS Website, the SQL data provider named "DynamicSqlDataProvider" is used. That's why normally this setting will be kept unchanged.
Finally:
- Log into the CMS Console of the website.
- In the System perspective, open the server log.
- Make sure there are no errors related to the work of the package and synchronization.
Version info
- Current version
- 1.0.3
- Package ID
- af6932ba-44d6-472c-928b-0c9d4b05e2e2