You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Administering Moves

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

  1. Repositories
  2. Environments
  3. Stacks
  4. Container Types
  5. Containers
  6. Applications

In general you should set entitities 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://mv-ezproxy-com.ezproxyberklee.flo.org/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://mv-ezproxy-com.ezproxyberklee.flo.org/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:
You just need to tell it the server, port, protocol and base url. In our example, this would be

  • server (e.g. maven.mit.edu)
  • port (e.g. null - if port is null, moves uses the default port for the protocol supplied)
  • protocol (e.g. https)
  • base url (e.g. /nexus/content/groups/saisGroupRepo)

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.

Currently, the approach is to set up a stack for each application. Moves will allow

(This is a business rule, Moves will allow you to associate multiple

Moves knows how to parse this information out.
Moves can now automatically detect which versions of an application are in the repository, allowing a user to confidently select a version from a list, instead of typing in an unvalidated string.

Behind the scenes it constructs a regular expression from but in the event that you need to

http://mv.ezproxy.com.ezproxyberklee.flo.org/nexus/content/groups/saisGroupRepo/edu/mit/ist/es/common/sais-common/2.2/
Armed with these pieces of information, Moves knows where to look for an application.

For example, moves itself has the Artifact Id

/edu/mit/ist/es/common/sais-common/2.2/

that contain web applications to be deployed. Repositories are typically maven repositories.

  • No labels