Skip to content

Latest commit

 

History

History
247 lines (177 loc) · 10.2 KB

File metadata and controls

247 lines (177 loc) · 10.2 KB

Connected Mobility Solution on AWS - Backstage Module

Connected Mobility Solution on AWS | 🚧 Feature request | 🐛 Bug Report | ❓ General Question

Note: If you want to use the solution without building from source, navigate to the AWS Solution Page.

Table of Contents

Solution Overview

The ACDP Backstage Module is an opinionated deployment of Backstage. Backstage provides a convenient and functional interface to manage and deploy software. CMS modules are configured to be compatible with Backstage while enabling deeper features into the Backstage design.

For more information and a detailed deployment guide, visit the ACDP Backstage Module Implementation Guide page.

Architecture Diagram

ACDP Backstage Architecture Diagram

Sequence Diagram

CMS Module Deployment Sequence Diagram

AWS CDK and Solutions Constructs

AWS Cloud Development Kit (AWS CDK) and AWS Solutions Constructs make it easier to consistently create well-architected infrastructure applications. All AWS Solutions Constructs are reviewed by AWS and use best practices established by the AWS Well-Architected Framework.

In addition to the AWS Solutions Constructs, the solution uses AWS CDK directly to create infrastructure resources.

Customizing the Module

Prerequisites

Required For Local Development Only:

MacOS Installation Instructions

Pyenv Github Repository

brew install pyenv
pyenv install 3.12

Pipenv Github Repository

pip install --user pipenv
pipenv install --dev

NVM Github Repository

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

NPM/Node Official Documentation

nvm install 18
nvm use 18

For local development:

brew cask install docker
brew install docker-compose

Clone the Repository

git clone https://github.com/aws-solutions/connected-mobility-solution-on-aws.git
cd connected-mobility-solution-on-aws/source/modules/backstage/cdk/

Install Required Dependencies

make install

Unit Test

After making changes, run unit tests to make sure added customization passes the tests:

make test

Build the Module

The build script manages dependencies, builds required assets (e.g. packaged lambdas), and creates the AWS Cloudformation templates.

make build

Upload Assets to S3

make upload

Deploy on AWS

Deployment should be done via the ACDP module deployment. This deployment creates a CodePipeline instance that deploys Backstage.

If manual deployment is desired, ensure ACDP is deployed and the proper environment variable configs are present and valid via the Backstage Makefile. Understand there is risk of unsuccessful config and deployment.

make deploy

Delete

make destroy

Local Development

After installing dependencies, you can run backstage locally. Note: All commands assume the PWD is [git_root]/source/modules/backstage

Start the postgres instance, backstage backend, and backstage frontend:

make run-backstage-local

There are Make targets available to separately run each component when required. Refer to the Makefile for these targets.

Usage

S3 Buckets

Definitions

  • Global Solution Assets
    • CloudFormation templates. Unique templates for each CMS module.
  • Regional Solution Assets
    • Regional assets which support CloudFormation deployments. This is most often Lambda assets such as lambda layers and source code, but may also include other assets depending on the AWS services in use.
  • Backstage Assets
    • Assets necessary for populating the initial Backstage catalog, and support deploying CMS modules from Backstage. This includes software templates, buildspecs to define deploy, update, and teardown, and techdocs assets for each module.
  • Backstage Catalog Items
    • Templates which define Backstage catalog entities. This includes, the initial Catalog entities, such as the software templates, as well as entities generated during Backstage usage such as components and users. See the referenced Backstage catalog documentation for more details.

Public / Published Solution Assets

S3 Bucket Description Usage / Content
Solutions Global Reference Bucket Public, global, AWS Solution's reference bucket. Global solution assets.
Solutions Regional Reference Bucket Public, region specific, AWS Solution's reference bucket. Regional solution assets and Backstage assets in the form of a Backstage zip. Backstage assets are not used from this location, but are included here to be copied into the Local Asset Bucket.
Local Asset Bucket Backstage Catalog bucket created during deployment. Backstage assets and Backstage catalog entities. Initially populated by copying the Backstage assets zip from the Solutions Regional Reference Bucket.

Local Solution Assets

S3 Bucket Description Usage
acdp-assets-<account_id>-<aws_region> Private bucket required to be created and populated to support Backstage local deployment. Global and regional solution assets. Populated by building and uploading local assets. Also includes Backstage assets in the form of a Backstage zip. Backstage assets are not used from this location, but are included here to be copied into the Local Asset Bucket.
Local Asset Bucket Backstage Catalog bucket created during deployment. Backstage assets and Backstage catalog entities. Initially populated by copying the Backstage assets zip from the acdp-assets-<account_id>-<aws_region> bucket.

Cost Scaling

Cost will scale depending on the amount of templates and assets used, network traffic, and number of deployments.

For more details, see the implementation guide.

Collection of Operational Metrics

This solution collects anonymized operational metrics to help AWS improve the quality and features of the solution. For more information, including how to disable this capability, please see the implementation guide.

License

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.