First off this install will be in Azure Web Apps. We recommend using Web Apps if it fits your needs. Take a look at Bryan Soltis' article on Deploying Kentico to Microsoft Azure - Know your web hosting options to help decide which environment is best for you.
In Azure I will be creating new:
- Resource Group
- SQL Database
- Storage Account (Blob storage)
- Web App
Once that is all setup I'll go through the process of actually installing Kentico CMS on top of all this.
Let's get started.
In this article I'll be using the latest Azure Portal Preview and installing for an upcoming project for PineCone Vision Center (PCVC).
Azure recommends putting all resources for an app in the same resource group, in our case everything we will be creating. Learn more about them at https://azure.microsoft.com/en-us/documentation/articles/resource-group-portal/.
I am adding a new Resource Group in North Central US since that is where PCVC's office is.
- Name: PCVC
- Name: pcvc
- Location: North Central US as I am putting all my resources here
- Version: default to latest
- Allow azure services to access server: Leave checked
- Select source: Blank database
- Pricing tier: Standard S0 this is default and I have found works well.
- Optional configuration: left as default
- Resource Group: PCVC - the one we recently created
- Subscription: mine since we are managing their hosting
After the database is created I like to add my IP to the Managed IP Addresses section so I can connect to it remotely. Under SQL Database > Firewall Settings there is a + Add client IP link to click on, then just save it.
We like to setup blob storage to manage all of our media assets. We wil be configuring Kentico to store it's Media Libraries in this storage.
*NOTE at the time of this writing if you plan to use a CDN you should create a Storage accounts (classic), the settings are the same as below.
- Select a deployment model: Resource Manager
- Name: pcvc
- Type: Standard-LRS - I selected the lowest tier because this will be a small site with only local visitors.
- Diagnostics: Disabled - I actually turned them off since I have yet to use them. I can always turn them on later if I need them.
- Subscription: DahlinDev Hosting
- Resource Group: PCVC
- Location: North Central US
This is optional and really not needed for this site but for the sake of this post I will be using one.
In the preview portal when you go to add one it takes you back to the old portal.
Back to the old portal it opens with the Quick Create open.
I just needed to select the pcvc classic storage for the Origin Url.
*TIP You can add a custom domain once the CDN is created so your assets can have a url such as cdn.dahlindevelopment.com/filename.pdf vs az836146.vo.msecnd.net/filename.pdf.
We can now create the actuall Web App where the site will be hosted. There are a lot of choices for your App Service to choose from, https://azure.microsoft.com/en-us/pricing/details/app-service/, but I like the Standard Tier. I like that with this tier it gives me automated backups of my site and database.
- Web app: pcvc - this will be your azure domain. We will configure a custom domain for this
- Subscription: mine
- Resource Group : PCVC
- App Service plan/location - I have an existing one I will be creating here, but you may need to add a new one.
Now there is some initial configuration I like to do with the Azure Web App.
- Application Settings (all default except below items)
- PHP version: Off
- Platform: 64-bit
- Always On: On
- Connection strings: I add the connection string for the SQL Database we created for this site.
- Name: CMSConnectionString
- Value: To get this I open up a new tab with the Azure Portal and go into SQL Databases, select your db then click on the "Show database connection strings" link. Copy the ADO.NET string to your clipboard and update it with your password. You then can use this to paste back in.
- Storage Settings: I create a new container in the Storage accounted I created for the site calling it "bak".
- Schedule Settings: This is for you to decide, just remember you will incur charges for all the storage your backups are taking
- Database Settings: Select your DB.
That concludes all the setup that we generally do in Azure for a new site. Obviously there is more that can be done such as continuos integration, web farms, redis cache, etc, but this is our base for a Kentico site running on one instance.
In my next post I will walk through the install of Kentico and how to configure it to work with Azure.
This is our approach. Do you have a different/better way to do things? With Azure I am always learning. Please let me know in the comments.
Continue on to Part 2 to see a step by step install of Kentico in Azure.