As of 10.1 Telligent Community can be run as an Azure WebApp using an Azure SQL database, Azure Service Bus, Azure Storage account and Azure Web Jobs. This guide will assist in helping you understand the technologies being used and where they need to be deployed in Azure, however there is an expectation that your organization has an understanding of how Azure works, its components and infrastructure, and utilization of the Azure portal.
Currently, Azure is only a supported solution for a new community running version 10.1 or later. There is currently no supported migration path from an on-premise installation of Telligent Community to an Azure based installation.
You will still need to have at least a single windows virtual machine(VM) to install and run search (SOLR). This machine should only be accessible by the website and job service, not publicly.
It is important to plan out your architecture before building it as it requires a functional knowledge of Azure and how to configure all aspects of Azure topology. This guide will go through the components needed for Telligent Community to run in Azure, but to ensure a secure, stable and efficient infrastructure you will need to understand parts of Azure that are beyond the scope of this article.The biggest consideration is that Telligent Community requires a mix of App Services and at least 1 virtual machine. The App Services need to be able to communicate with the VM while still being available over the internet publicly, however the VM itself must not be accessible.
This is where the actual Telligent Community web components will be deployed. Create a new WebApp in Azure App Services and in its application settings ensure the following:
Other options can be left in their default state. Once set up be sure to STOP the WebApp itself.
The job server runs as a continuous Azure Web Job that you configure as part of the WebApp itself or it can run as its own WebApp . To set up the job server as a web job, access the WebApp responsible for running the jobs, select WebJobs and add a new one. Or you can do this on its own separate WebApp but the steps are the same.
Be sure the Web Job remains in a stopped state.
The database portion of the community utilizes an Azure SQL database. Your community requires a dedicated SQL database(it should not be shared with any other applications) but can share a SQL Server. Never make alterations to the database schema even if a third party tool or Azure itself makes recommendations. When configuring a SQL database be sure to:
You can create a new service bus on in Azure or utilize an existing one, however whichever you choose that service bus must support topics. This means as of the publication of this document you must use a standard pricing tier or higher. Basic does not support topics.
You should create a community specific shared access key on the bus. Avoid using the default. This way, especially in a shared bus, an access key can be revoked without impacting other services. When creating a new shared access policy/key it needs the following permissions:
The Centralized File Storage(CFS) portion of of your community is housed in a Azure storage account you will need to create. This storage account needs to be dedicated to your community and not utilized for any other application or other storage purpose. Telligent Community manages the contents of the storage account and therefore unless directed by support you should never manually manipulate the contents of the storage account or configure it outside of the recommended settings outlined below:
It is highly recommend you place your storage account behind a CDN. CDNs offer expanded capabilities and features such as compression that blob storage directly does not. You can create a new CDN end point directly from the storage account itself. Be sure to note the endpoint url for later use.
NOTE: At the time of publication, the Standard Akamai CDN was not compatible with Telligent Community. Please select one of the alternative solutions such as standard Verizon.
As noted previously, search currently does not utilize any Azure specific services or features. It must be installed on a windows virtual machine powerful enough to handle the search traffic and enough disk space to store the search index. This server should never be accessible over the internet publicly. It does however have to be accessible to the WebApp and Jobs.
Because search is run on a virtual machine, its installation is no different than installing it on a windows machine on-premise and those instructions should be consulted.
It is assumed at this point you have you created the infrastructure as defined above and have all the components in place. If not please review the required components again and setup as necessary.
If you are used to on-premise installations you are familiar with having to setup connection strings in the connectionstrings.config file. In an Azure deployment all the connection strings are stored as part of the WebApp and configured in the portal. Access the WebApp's Application settings and locate the connection strings section. You need to add and configure the keys below.***DO NOT SET the Slot setting for any key. It should remain unchecked
IMPORTANT: If you are running the web job as part of of the main WebApp, then you needn't set up separate connection strings. However if you chose to run the web jobs in their own dedicated WebApp , you will need to also set these connection strings up on that WebApp .
<Override xpath="/CommunityServer/CentralizedFileStorage" mode="add" where="end">
Previously you had already created a new dedicated database, setting up your community database is no different than an on-premise installation. Connect to the database using the tool of your choice that will allow you to execute SQL scripts and do the following:
@SiteUrl = N'http://yoursite.com',
@ApplicationName = N'telligent',
@AdminEmail = Nemail@example.com',
@AdminUserName = N'temporary-admin',
@AdminPassword = N'[PUT A TEMPORARY PASSWORD HERE]',
@PasswordFormat = 0,
@CreateSamples = 0
Using a deployment method of your choice such as FTP, deploy the contents of the Telligent Community package's JobServer folder [site/wwwroot/App_Data/jobs/continuous/[Web job Name]] to the WebApp's job folder. You will be prompted to override the command file as you uploaded it to create the job, this ok or you can skip it.
Similar to job server, using a deployment method of your choice such as FTP, deploy the contents of the Telligent Community package's Web folder [site/wwwroot] to the WebApp's site folder.
As mentioned previously, because you are installing search on a windows VM, its installation is the same as on-premise installations. See the search installation section of How do I install Telligent Community?. Remember your VM will need to have a Java JRE installed (8+).
IMPORTANT: Search cannot be publicly accessible. You will need to configure your environment in such a way as to allow communication from the WebApp to the search VM on its virtual network while ensuring that any public traffic is being blocked to the VM itself.
You must bring your community down completely to upgrade. You cannot rely on slot deployments or upgrading single nodes at a time. The database and ALL web files must be updated for your community to function. Failure to do this could result in instability, data corruption or failure of your installation. Run backups of all components for safety.