Skip to main content

Deployment and Scaling Considerations

In the simplest of deployment configurations, all presentation, services and logic can be housed within one application. In the most complex scenario, each service and presentation tier can be deployed to its process, machine or multiple machines for scalability and fault tolerance, as may be required by the customized infrastructure. WCF configuration bindings additionally provide more control of security and process handling of requests as customization may require.

Azure Deployment Scenarios

Azure Standard Deployment

The following diagram displays a standard Azure deployment that consists of a single web server and a single database server.

Azure Standard Deployment

Azure Scale Vertically Deployment

The following diagram displays a Azure deployment when scaling vertically. This consists of a single web server that is used for running background tasks for the site, called the application server, and is hosted on a subdomain of the site such as http://AppServer.MySite.com. A single server hosts the database where information is stored for the site. For the main website, it should contain no background tasks for the site since it is being handled by the application server. This allows you to use Azure auto-scaling to define the number of server you would like Azure to spin up. Depending on how you design your main website and modules, you have two options:

Azure Scale Vertically Deployment

Azure Scale Horizontally Deployment

The following diagram displays a Azure deployment when scaling horizontally. This consists of a single web server that is used for running background tasks for the site, called the application server, and is hosted on a subdomain of the site such as http://AppServer.MySite.com. When scaling horizontally, we are going to to deploy each service of the platform to it's own server set that consists of one or more Eleflex.WebServers (that contain no background tasks) and a database server. For the main website, it should contain no background tasks for the site since it is being handled by the application server. This allows you to use Azure auto-scaling to define the number of server you would like Azure to spin up. Additionally, change the WCF service configurations in the website for each of the vertically scaled services to point to it's web server set. Depending on how you design your main website and modules, you have two options:

Azure Scale Horizontally Deployment