Administering Moves

The entities that need to be administered for moves are listed below.

  1. #ContainerRequirements
  2. #Repositories
  3. #Environments
  4. #Stacks
  5. #Containers
  6. #Applications

Container Requirements

todo

In general you should set entities up in the order that they appear above. The entities are described in detail below.

Repositories

Repositories are maven repositories, accessible to moves over http/https. An example is the the SAIS Group repository at https://maven.mit.edu/nexus/content/groups/saisGroupRepo. Maven has a well defined format, which specifies where to find an application within a repository. Each Application has an 'ArtifactId', a 'GroupId' and a 'Version'. So, for example, moves itself has artifactId=sais-moves-web, groupId=edu.mit.ist.es, versionId=2.0.0. Maven will translate this, by default into a final location of https://maven.mit.edu/nexus/content/groups/saisGroupRepo/edu/mit/ist/es/sais-moves-web/2.0.0/sais-moves-web-2.0.0.war" The properties you need to configure for a repository are:

Environments

Environments are really just a lookup that identifies the function of containers within a stack. The standard environments are 'Production', 'QA', and 'Development'. These are already set up when Moves is deployed, so they will not need to be changed. However, we allow creation of new future environments (for example 'Continuous Integration' or 'Staging').

Stacks

A Stack is simply a grouping of Containers by Environment. Stacks allow Moves to answer the question 'What is the container for Application 'X' in Environment 'Y'. Once you create a Stack, you can add containers to it for each environment. When we subsequently configure an application, we will tell it what Stack is associated with that application. (So, for example, the application 'OGS Application' might reference 'OGS Stack'. 'OGS Stack' references containers for 'Production', 'QA', and 'Development'). By looking at these relationships, Moves knows which container to deploy to when asked to deploy to a particular environment.

Containers

A container is the service that an application is deployed to. When you configure a new Container, you will be asked to select from one of the container types. The two container types that are currently available are

Applications

Applications represent web apps (.war or .ear applications) that can be deployed to a container. (TODO: discuss the optional and required parameters in more detail)