Skip to content

Development

jacobthill edited this page Jan 16, 2025 · 3 revisions

DLME Environments

Overview

There are three DLME environments:

  • production: Our production environment that users interact with.
  • review: Used for developing new application features and iterating on data mapping.
  • stage: This is not for staging features. This is a data staging environment used for staging data for partner review.

Steps for deploying everything to production

Update Solr AMI using EC2 Image builder

Use the EC2 Image Builder to create an EC2 image. There is an existing one there use that to update things.

Update terraform organization to use new Solr AMI

Note: This causes some amount of downtime as Solr is configured via IP address and not through AWS DNS routing

Reindex

Reindex the content in the environment

Cut a release

Cut a release of the project, which should trigger a build and docker image. Do this by creating a release in the GitHub UI, using a version number without a prefix of v.

Run the migrations on hosts

Using the guide here: https://github.com/sul-dlss/shared_configs/blob/dlme-dev/remote_db_migrations.md run the migrations on selected hosts.

Update terraform with new release

Developers can update dev and stage. Ops needs to run it in prod.

Reindex again to get new indexing for content.

Gelato?

Installing ruby on an amazon ec2 image

sudo yum groupinstall "Development Tools"
sudo yum install postgresql-devel  # if needed
sudo yum install -y ruby24 ruby24-devel
sudo alternatives --set ruby /usr/bin/ruby2.4

If you need to install node, use nvm: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html

Amazon Web Services (AWS) connection configuration

In order to perform operations using Amazon Web Services (AWS) hosted containers during local development an AWS connection is required to be configured.

1.) From the Admin menu, select "Connections"

You will see either a blank list or a default set of connections, we will add a new connection. Click the "+" button.

Screen Shot 2022-07-27 at 4 51 36 PM

2.) Configure an "Amazon Web Services" connection

Enter the following configuration values:

  • Connection Id: aws_conn (do not change this)
  • Connection Type: Amazon Web Services
  • Login: Your AWS_ACCESS_KEY_ID
  • Password: Your AWS_SECRET_ACCESS_KEY
  • Extra:
{"role_arn": "[DEVLOPER_ROLE_ARN]", "region_name": "us-west-2"}

Screen Shot 2022-07-27 at 4 57 32 PM

Transifex Github Integration

DLME uses Transifex for managing translation and review workflows. Information on dlme's Transifex GitHub integration can be found in the DLME Transifex integration guide.