
Let's walk through a marketplace example
Let's walk through an example of how to set up a WordPress site using on the Portal and Marketplace. This will not only provide an understanding of how to use the Marketplace but how the underlying ARM templates are leveraged in the deployment of resources from the Marketplace:
-
In the top search bar, type Marketplace, as follows:

- Select Marketplace from the services menu.
- Once the Marketplace blade is open, select Everything and type WordPress, as follows:

- Select the first WordPress in the list.
- Click on the Create button, as shown in the following screenshot:

- Enter an App Name, Subscription, Resource Group Name, and Database Provider to Azure Database for MySQL. Leave the App Service plan/Locations settings as their default options for the demo:

- For this walk-through, when you click on Database and the Database blade comes up, just add a password, select a basic pricing tier, and click OK:

- Then, click the Create button.
- Once this has been created, you will receive a notification stating that is has been completed. Click on Go to resource, where you will be able to access and configure your WordPress site.
Optional steps to add a custom domain and SSL Certificate
- Go to your App Service Resource and click on Custom Domains, use the IP Address to point your domain at, once you add your A record, then click on + Add Hostname to add.
- You will need to add your private or public certs, which you can leverage App Service Certificates (which I recommend), and once added, +Add a Binding and turn on HTTPS only.
During this exercise, we created several things: an App Service, an App Service Plan, a MySQL server, and a MySQL database instance. An App Service is the instance of code needed to run the application. In this case, this is the WordPress PHP code. This is connected to the Marketplace code repository that, in most cases, keeps the code updated based on refreshes to the Marketplace. It is deployed from the Marketplace using a process called ARM template. An ARM template is a JSON representation of the resources that are deployed to an Azure Resource Group. The ARM template process leverages a Desired State Configuration (DSC), to manage the configuration state of the resources, and this process helps with creating or updating the resources should the template be run again to update the resources within the application Resource Group. In the case of WordPress, the updates are handled by the portal. An App Service Plan, commonly call VM backed, is the virtual resources allocated to the App Service. Think of the VM as something that houses the web server, and the App Service as an IIS app on the box. The MySQL server instance houses the MySQL database instance for the WordPress site, which is almost the same as the on-premise version in IIS, but is instance-based and hides the server's implementation. So, as you can see, the implementation of the application is basically the same as it would be on-premise, but it is more instance-based in Azure. There is no need to worry about the infrastructure implementation as you would with an on-premise solution.