DMC Deployment Process

  1. Code Repository
2. Build Process3. Build Tools4. Built Artifacts5. Tests6. Test Tools7. Hosted at8. Deployed  By9. Deployed At
Location of the RepositoryBuild StepsFramework used to accomplish thisBuilt Artifacts Created and their LocationsTests to be RunTest SuiteArtifacts that have passed all testsDeployment Infrastructure and ConfigurationsInfrastructure Provider (AWS, Azure)

 

The most up to date instructions for deploying the stack can be found in the Readme.md of the dmcdeploy repository.

 

The steps above represent the work flow from source code to infrastructure. Our ultimate goal is to have a stable, automated process that can consistently deliver infrastructure.

 

For the alpha release we are focusing on automating steps 7-9. We work from the assumption that steps 2-6 work and that the artifacts of those steps are available for further processing. The public repositories with the DMC*** names represent the products of steps 2-6 and the hosted locations of step 7. From there, our goal is to allow fast and simple deployment of a stable DMC stack. AWS will be the first infrastructure target followed by GE Internal, Open Stack, and Local (via virtual box).

Future releases will further automate the remaining steps of the process.

 

View our detailed Deployment Instructions.

 

Each component of the DMC is hosted on its own instance and the infrastructure from code is orchestrated via Terraform.

Visit each page to get more detailed instructions for the process.

 

We will be describing deployment on aws public infrastructure. Our goal is to be infrastructure agnostic and will be adding instructions on how to deploy to other providers in the future.

  1. Gather your AWS credentials.
    You will need public and private access keys, as well as access to a PEM file for remote server login. These steps can be found in Setting Up Your Amazon Credentials.
  2. Set up Terraform on your development environment
    1. Select the machine you will be working on
      1. Your local Machine
        1. A local virtual machine Vagrant box instructions
        2. A remote AWS development machine
    2. Install Terraform – The Terraform installation guide can be found in /wiki/spaces/DMC/pages/27197443 or at their website https://terraform.io/intro/index.html

  3. Pull down the appropriate deployment repositories  
    1. For Production – most stable pull from DMCDeploy
      1. git clone https://bitbucket.org/DigitalMfgCommons/dmcdeploy.git

    2. Automated Testing – This infrastructure will deploy development components such as Build (Bamboo/Jenkins), Automated testing tools (Selenium/ Mocha)

4. Edit Configuration files – By default, no machines will be created since all the necessary .tf files are commented out. Using your favorite text editor, go through these files and remove the comments (/* at beginning and */ at end) to create the machine corresponding to the file name.

    1. Open terraform.tfvars using your favorite text editor.


      # the aws keys
      access_key = ""
      secret_key = ""

      # the region you wish to deploy to
      aws_region = ""   << us-west-2 for development 






      # keys for the front end machine
      key_name_front = ""
      key_full_path_front = ""

      # which commit to deploy on the front end machine
      # if commit_front = 'hot' -- the latest available build will be selected
      commit_front = "hot"


      # uncomment only if you wish to change the default location
      #sp_cert_location = "/tmp"
      #sp_key_location = "/tmp"


      # keys for the rest machine
      key_name_rest = ""
      key_full_path_rest = ""

      # which comit to deploy on the rest machine
      # if commit_rest = 'hot' -- the latest available build will be selected
      commit_rest = "hot"



      # keys to the db machine
      key_name_db = ""
      key_full_path_db = ""

      # Postgress credentials
      PSQLUSER = "gforge"
      PSQLPASS= "gforge"
      PSQLDBNAME = "gforge"



      # keys to the solr machine
      key_name_solr = ""
      key_full_path_solr = ""


      # keys to the dome machine
      key_name_dome = ""
      key_full_path_dome = ""

      # keys to the stackMon machine
      key_name_stackMon = ""
      key_full_path_stackMon = ""


      # credentials for activeMQ
      key_name_activeMq = ""
      key_full_path_activeMq = ""
      activeMqRootPass = "admin1"
      activeMqUserPass = "user1"


      stackPrefix = "alex-2-23-"
      release = "hot"




      # Server load balancers
      restLb = "ben-rest.opendmc.org"
      serverURL = "beta.opendmc.org"

      # server log level (production, development)
      loglevel = "production"

      # deploy stack with swagger
      use_swagger = "1"

       

    5. Execute terraform plan
  1. This will show you the infrastructure you will be creating. Make sure you are happy with your setup.
  2. 6. Execute terraform apply.
  3. You should see a stack that contains your selected machines come up. The process should take been 10-15 minutes for a full stack. 

 

In order to bring down the stack you created, use 

terraform destroy or manually bring the machines down in Amazon.

 

If you wish to update your application code read the Detailed Deployment Instructions and follow Deployment Option II.