Deployment
Table of Contents
Summary
The Public Access Submission System (PASS) is an open-source platform designed to streamline compliance with funder and institutional open access policies. This guide outlines the deployment process for PASS, which is adaptable to various architectures including cloud, hybrid, or on-premises environments.
Note: PASS is transitioning towards a cloud-native version. Expect ongoing changes to the architecture, infrastructure, and deployment process, such as moving from Docker Compose to Kubernetes or implementing Infrastructure as Code with Terraform. See (roadmap)[./roadmap.md] for more information.
AWS Infrastructure Components
The current PASS infrastructure in AWS includes:
EC2: Hosts Docker Compose
ECS: Hosts auxiliary microservices
RDS: Stores metadata
S3: Stores binary data (managed by OCFL)
ALB: Provides SSL for the frontend
WAF: Protects the frontend
Deep Dive: Deployment & Release
Prerequisites
Docker and Docker Compose
Git
PASS Deployment Process
Install dependencies:
Clone the repository:
Run PASS:
PASS Release Process
PASS uses semantic versioning (MAJOR.MINOR.PATCH
). The release process includes:
Code contribution
CI/CD via GitHub Actions
Building and testing
Generating release artifacts (Java artifacts and Docker images)
Publishing artifacts to repositories
Triggering deployment via AWS SQS
Updating infrastructure with new artifacts
Generating release notes
GitHub Actions Release Workflow
The "Publish: Release All" workflow automates the release process:
Builds and tests components
Publishes Java artifacts
Builds and pushes Docker images
Creates GitHub Releases
For detailed configuration, refer to the pass-complete-release.yml Actions workflow.
Please refer to github-cicd.md for further information on its useage.
Related Information
For further assistance or questions, please open an issue in the PASS main repository or find us in the PASS Slack.
Last updated