Architecture overview - Application Pattern Orchestrator on AWS

Architecture overview

Deploying this solution with the default parameters deploys the following components in your AWS account.

Architecture diagram

Application Pattern Orchestrator on AWS architecture diagram

Application Pattern Orchestrator on AWS architecture diagram

Note

AWS CloudFormation resources are created from AWS Cloud Development Kit (AWS CDK) constructs

The high-level process flow for the solution components deployed with the AWS CloudFormation template is as follows. The numbers below match the number designated in the architecture diagram.

  1. AWS WAF to protect the web UI and Amazon API Gateway endpoints against common web exploits and bots that may affect availability, compromise security, or consume excessive resources.

  2. An Amazon CloudFront distribution to serve the optional UI. Amazon CloudFront delivers low latency, high performance, and secure static web hosting. An Amazon Simple Storage Service (Amazon S3) web UI bucket hosts the static web application artifacts.

  3. Amazon Cognito to provide authentication mechanism for both the static content hosted in S3 bucket for the web UI and API Gateway endpoints. Amazon Cognito also manages federating and storing users from external identity providers (IDPs).

  4. Amazon API Gateway to expose a set of RESTful APIs. API Gateway processes HTTP requests issued by the users to manage the lifecycle of application patterns and their attributes.

  5. A Pattern Portal AWS Lambda function to process the validated requests from the API Gateway. This Lambda function encapsulates the solution's business logic, receiving REST requests from the user via the API Gateway, validating them and storing these requests, and retrieving data to and from the database.

  6. AWS CodeCommit to store the pattern’s source code.

    Note

    To configure GitHub or GitHub Enterprise as your pattern’s source code repository instead, deploy the solution using AWS CDK by following the instructions in the solution README.

  7. A pattern pipeline builder AWS CodeBuild to provision the CI/CD pipeline for the patterns.

  8. AWS CodePipeline to provide the CI/CD pipeline to publish a pattern to its target pattern store.

  9. Amazon DynamoDB to store and retrieve pattern’s metadata, publish data and attributes.

  10. Automated security check AWS CodeBuild to perform security scan on the pattern’s CloudFormation template which gets initiated automatically when the pattern’s developer raises a pull request. On completion of the security check, the results are published on the pull request page for the security admin to review. Once approved and the pattern’s code changes merged into the main branch of the pattern’s code repository, the CI/CD pipeline is automatically initiated to publish the pattern.

  11. A Pattern’s artifacts store to store the published artifacts to Service Catalog (for CloudFormation-based patterns) and to AWS CodeArtifact (for CDK-based patterns).

  12. Amazon SNS topic to receive the published pattern data from the pattern’s publishing pipeline to start the email notification mechanism.

  13. An email notification AWS Lambda function to receive the pattern’s published data from Amazon SNS topic, get the list of subscribers from AWS DynamoDB and invoke Amazon SES to send email notification about the pattern’s publishing to the subscriber list.

  14. Amazon SES to send email notification to the pattern’s subscriber list whenever a new pattern’s version is published.

  15. Amazon EventBridge rule to periodically initiate the pattern attribute sync process.

  16. Amazon EventBridge initiates a Timed Synchronizer AWS Lambda function to pull the pattern attributes from Amazon DynamoDB and push them to the Amazon SQS queue for performing the sync attribute operation.

  17. Amazon SQS queue to receive the attributes data and send it to the AppRegistry Updater AWS Lambda function to update the attribute groups in Service Catalog AppRegistry.

  18. An AppRegistry Updater AWS Lambda function to sync the pattern attributes with Service Catalog AppRegistry.

  19. Service Catalog AppRegistry to store the attributes data in the form of attribute groups synced from Amazon DynamoDB.