Alpha Cloud - Alpha Anywhere Developer's Guide
Alpha Cloud runs on Amazon Web Services infrastructure. This enables Alpha Cloud to take advantage of the robust environment that Amazon has created, but hides as much of the complexity as possible. Alpha Cloud integrates tightly with Alpha Anywhere, adding a comprehensive set of dialogs to manage your cloud deployments.
Built on Alpha Anywhere Application Server for IIS, Alpha Cloud manages the servers, IIS installation, security database, session management and web application publishing automatically. Depending on how you choose to have your application hosted, you can run it on its own set of virtual machines for maximum privacy(dedicated tenancy), allow your application to share a server with only web sites you own and assign to it (subscription tenancy), or save on cost even more by sharing a server with the web sites of other Alpha Cloud subscribers (public tenancy). In essence, by choosing your configuration options, you tell us what you want and we make it happen.
In order to make deploying your web projects to the cloud as flexible as possible, we define two separate phases of the process, Publication and Deployment. The two are distinct, even though you can do both with a single click of the mouse.
Publication is the process of copying the current version of components of your web project from Alpha Anywhere to Alpha Cloud. Each time you publish, a new version of your web project is stored in the cloud under the application name you specify in your publish profile.
Deployment is the process of generating the final version of web configuration files and scheduling your application to be deployed on a live web site. Each Deployment is assigned unique a web site and path within that web site and a group of users and roles called a Security Application. Each time a Deployment is "scheduled" you select the version of your application to deploy, and the build of Alpha Anywhere Application Server for IIS to run it under. There are many options for deployment, but you can deploy a basic web site without having to master all of the details. The simple and the advanced cases will be discussed in more detail in the section entitled Scheduled Deployments.
Alpha Cloud has a basic user interface and more advanced user interface to make getting started easier, but still give you access to more advanced features.
The Basic Case
If you as a cloud user only have permission to access a single subscription and account, you can simply specify the name of the application in your publish profile. The default application name will be the name of your workspace. If you have created more than one web project and the current web project is not called "Default", the application name will be the workspace followed by the web project name. The application and web site will be created with that name if they are new, or selected if you have specified them before.
The existing applications are listed in the basic publish settings dialog so you can choose them from the list.
The Typical Case
As you get more comfortable with the Alpha Cloud, and get ready to move into production, you will want to set up your own host name and domain and assign a TLS (also called SSL) certificate. The Alpha Cloud dialogs in Alpha Anywhere make it easy to upload a TLS (also called SSL) certificate, assign a host name and manage your deployments. You can switch back and forth between the basic and advanced dialogs to do what you need to.
The Advanced Case
If you have access to multiple subscriptions or multiple accounts, you are now an advanced user! You must now use the advanced publish dialog, and you will find that you no longer have access to the basic publish dialog. By now, you should be comfortable with the advanced options and you will want to think about tuning your web sites, managing tenancy and scheduling deployments.
Throughout this guide and other Alpha Cloud documentation, you will see references to "cloud resources". Cloud resources are the objects that you manage and authorize users to access. They include subscriptions, accounts, applications, web sites, server groups, and certificates and others. The instances of those resources are specific to your cloud environment and managed through dialogs integrated into Alpha Anywhere.
When you sign up for Alpha Cloud, you are issued a subscription. The subscription grants you the ability to publish your web projects and manage the resources that go with them. Only Alpha Cloud users who are authorized to will be able to publish and deploy applications and to configure options that manage them.
Each subscription has one or more accounts that provide a way to group web applications for access control and billing. All of the applications under an account can be summarized. How you use accounts is up to you.
You can also assign a primary contact to an account and authorize users to publish and deploy applications for that account only.
Some examples of how you might use accounts include:
Departments within your company - Each department is assigned an account.
Customers you deploy web sites for - Each customer is assigned an account.
Each new subscription has a single (default) account entitled "Primary". You do not need to create the account. It is created for you.
When you publish a web project to the Alpha Cloud, you will provide the name of an application. In the simplest case, you simply provide a name that is unique within the current account and the application is automatically created for you. You can also use the Manage Applications dialog to create new applications. When you publish your web project, existing applications are displayed in the application combobox of the publication settings dialog.
Each time you publish a web project to an application, a new version of the application is created and assigned a sequence number. The version numbers are available to you when you deploy your application so you have the option of rolling back or forward as necessary.
We say that an application has been deployed when a specific version of an application has been assigned to a web site and virtual path and a specific build of Alpha Anywhere Application Server for IIS. In the simplest case, a new deployment is automatically created for you when you publish your application.
You can also created multiple deployments for the same application. For example:
- You may want to publish a new version of your application, deploy it to a test server, and then when you have verified the application deploy it to production. You would do this by creating a test deployment and a production deployment and having each running a different (or the same) version of the application.
- You might also verify a new build of Alpha Anywhere Application Server for IIS by creating a temporary deployment for the production version of your application with a new build of Alpha Anywhere.
- You can also deploy an application to multiple web sites (say one for each of your customers) to avoid the complexity of multi-tenancy.
The control mechanism behind the deployment in Alpha Cloud is the concept of a scheduled deployment. A deployment has a schedule of items (only one can be active at a time), so each time you make a change, a new deployment schedule item is created. Deployment schedule items have a start and stop time that cannot overlap with another schedule item for the same deployment. As a result, you can create schedules ahead of time (for example) to have a new version of your application or a new build of Alpha Anywhere, deployed at the time you specify.
When an application is deployed, it is assigned to a web site. In the Alpha Cloud, a web site is a collection of one or more deployed applications assigned to a group of virtual servers. Browsers find your web site by referencing a URL (Uniform Resource Locator). A URL begins with either HTTP (Hypertext Transfer Protocol) or HTTPS (HTTP Secure). The host and domain name form the next component in the URL.
For example: https://myhost.mycompany.com or https://www.mycompany.com
Alpha Cloud automatically creates a unique name for your subscription and a unique name for each web site to help you test your web applications without having to point your domain at them. The names are displayed on most of the dialogs so you will be able to select and copy them from the dialogs and paste them into a browser for testing.
Note: The default host name generated will combine a generated subscription key and a generated web site key with a dash to create a host name. The host name is guaranteed to be unique but is intended to be readable. The generated subscription key will typically start with some combination of your company name and possibly your subscription name (without spaces or special characters). Your web site name (similarly reformatted) is used as a site key. Once they are generated, your subscription key and web site keys will not change.
You can expect to use a URL something like https://mycompany-mywebsite.cloud.alphasoftware.com.
Alpha Cloud manages the registration of the default domain name of your web site.
When you are ready to deploy your application in production, you will want to work with the service provider managing your domain to create a new host name and a "CNAME record" pointing to the domain name generated by Alpha Cloud. You will also need to purchase and upload a TLS (also called SSL) certificate to secure access to your web site through the new domain name.
There are a number of constructs introduced with Alpha Cloud that affect multiple types of resources.Primary Contact
Subscriptions, Accounts, Applications and Web Sites all have primary contacts assigned to them. The primary contact designated for an object is automatically authorized to manage the object, including authorizing other users to manage the object. The primary contact is the user who will get notifications concerning any objects they are the primary contact for.
A subscription has an owner and a primary contact. The owner has control over the subscription and, presumably pays the bill. The primary contact is generally the key technical contact.
An authorized user is any Alpha Cloud user who has been explicitly granted permission to manage an object. You can authorize any Alpha Cloud user at the Subscription, Account, Application, or Deployment level and for many other resources. Generally, authorization is done at the Subscription level to be able to create any required resources or at the deployment level, to allow developers to publish and deploy, but not make changes to the configuration.
A server group is a named set of values that defines how a server should scale (how many, under what load) and how the IIS application should be configured. The specific values are discussed in the section entitled Managing Server Groups. You can create any number of server groups. A web site can be assigned to only one server group. A server group is automatically created for you called Default.
Note: Server groups you define can not cross subscriptions. You can only assign your own web sites to your own server groups.
By default, your web sites are assigned to server groups that are considered Public tenancy. This simply means that your web site is assigned to an available server that is shared with the web sites of other subscribers. This option saves you significantly over the cost of having your own dedicated virtual machines (servers). Very few subscribers have found that they need these special tenancies.
Note: If your web site is assigned a public tenancy, the server group is ignored and the settings are assigned by Alpha Cloud.
If you find that your deployed application needs a higher level of isolation, you have two additional options. You can choose to group one or more of only your own web sites into a single server group. This is called Subscription tenancy.
If you have an application that requires its own dedicated virtual machines (servers), you can choose the Dedicated tenancy option. In this case, the server group you assign is used to set parameters for scaling additional servers and process management for IIS, but the web site is assigned to its own set of servers. How many servers depends on the scaling values you select.