Alpha Cloud - Alpha Anywhere Developer's Guide

Preparing for Production

Understanding Production Requirements
A Checklist for Production Deployment

Understanding Production Requirements

Alpha Cloud makes it easy to create deployments for development. DNS names are automatically generated and HTTPS (TLS/SSL) is enabled by default. Alpha Cloud provides a certificate automatically. As a result, you can publish and deploy applications for development and test that are available on the internet.

Moving an application from development to test to production is done in a "pull" fashion in Alpha Cloud. Rather than dictating a framework or pipeline, Alpha Cloud allows each deployment you define to be scheduled with the appropriate version of your application and build of Alpha Anywhere.

  • Developers publish and deploy new versions to development deployments to do local testing.
  • When QA is ready to work on a particular version of an application, they simply schedule the"Test" deployment (or whatever name you choose) with that version.
  • When a version of the application is fully tested and ready for production, you simply schedule the "Production" deployment (or whatever name you choose) with the tested version.
  • If you want to do custom deployments for specific groups or customers or to test Alpha Anywhere updates, you can create a deployment with a unique name and schedule your chosen version of the application.

You get the picture. You create a pipeline by defining deployments. Each deployment "pulls" a specific application version number and build of Alpha Anywhere Application Server for IIS of your choosing.

So what is special about production?

Production deployments tend to be qualitatively different only in that you make sure you have a friendly host name (rather than the Alpha Cloud generated DNS name) and install a TLS certificate to go with it and you are probably referencing a live database rather than a test database.

While you don't have to set up a production deployment immediately, it is a good idea to set it up early in the process so you can do live testing prior to the first release and get in the habit of promoting development publications to test and production deployments.

A Checklist for Production Deployment

There are several things that you will want to do differently for your production deployment:

  1. Set Up a Host Name

    Web sites are accessed from a browser or other client using a DNS name. The DNS name is composed of a host name followed by a domain name (sometimes there are additional subdomains as well).

    For example, the DNS name www.mydomain.com

    Alpha Cloud generates a name you can use right away that is formatted from the names of your subscription and the name you give your web site. You could go to production with that name, but tends to be long and unfriendly.

    You will want to set up a host name for your own domain and assign it to your production web site.

    For help in understanding domain names and setting yours up, see Adding Your Web Sites to Your Own Domain.

    For help in verifying or changing the host name setting for your web site see Managing Web Sites.

  2. Install a Certificate

    Secure connections between a client and your web site depend on encryption of the data, but just as importantly you must know that the connection established is with the correct server.

    The TLS protocol (as with SSL before it) relies on cryptographically signed certificates (based on the X509 standard) to authenticate the server. You will need to acquire such a certificate to use your own host name on your site.

    For help in uploading certificates to Alpha Cloud see Managing TLS(SSL) Certificates for Web Sites Accessed Using Your Own Domain Name.

    For help in verifying or changing the certificate for your web site see Managing Web Sites.

  3. Set Logging to Basic or None

    When you schedule a new deployment you have the option of choosing a level of logging; the information recorded about the activity of your deployed application.

    In a production deployment, logging too much information can adversely affect performance. Unless you are actively investigating an issue that can not be reproduced in development, you will probably want to set your logging to Basic or None.

    For help in verifying or changing the logging level when scheduling a deployment see Managing Deployments.

  4. Set Database and Storage Connection Strings In Deployment Properties

    Each deployment can have different connection strings for database access and for storage.

    Make sure that your connection strings are set properly in your production deployment to reference your production database and storage.

    For help in verifying or changing the connection strings for a deployment see Managing Deployment Properties.

  5. Limit Access to Your Database By IP Address

    Make sure connections to your database are limited to administrators and the web server itself.

    Alpha Cloud uses up to three IP addresses (referred to as Egress IPs) for each region to access Amazon RDS and other databases. You can see the addresses from which your web site will access your database on the Managing Web Sites dialog.

  6. Secure Your Database Connection

    It is important that connections between the web server and your production database be secure. This is especially true if your database is hosted outside of Amazon AWS and must be accessed over the internet.

    For help in creating a secure connection string to your database see AlphaDAO - Secure Database Connections