/aws-saas-boost

Primary LanguageJavaApache License 2.0Apache-2.0

AWS SaaS Boost

Overview

AWS SaaS Boost provides organizations with ready-to-use core software elements for successfully running SaaS workloads in the cloud. Software builders can focus on preserving core intellectual property by removing the complexities of building SaaS solutions using AWS SaaS Boost.

SaaS Boost provides tenant management, deployment automation, analytics dashboards, billing and metering, an administrative web interface, and more out-of-the-box. This environment reduces development and experimentation time, allowing you to get your software into the hands of your customers faster.

Jump to the Getting Started Guide to start working with AWS SaaS Boost today!

Repo Rundown

Directory Description
client/web Admin web application
docs Documentation
docs/images Images/graphics for docs
functions "Helper" Lambda functions
functions/core-stack-listener Callback from CloudFormation -> SNS to trigger a CloudFormation Macro that dynamically creates resources for your application services
functions/ecs-service-update Used by CodePipeline to make sure ECS deploys at least 1 task
functions/ecs-shutdown-services Optional functionality to shutdown tenant ECS services for costs savings in non-production environments
functions/ecs-startup-services Optional functionality to startup tenant ECS services that have been shutdown
functions/onboarding-app-stack-listener Callback from CloudFormation -> SNS to trigger post provisioning flows for each of your application servces
functions/onboarding-stack-listener Callback from CloudFormation -> SNS to trigger post tenant provisioning flows
functions/system-rest-api-client REST client used by services to invoke API of other services
functions/workload-deploy Listens for changes to ECR and Onboarding Service to trigger CodePipeline for tenants
installer Command line installer
layers Lambda layers (i.e. shared libraries)
layers/apigw-helper Used by the REST client to invoke API Gateway endpoints. Supports SigV4 request signing for the private system API
layers/cloudformation-utils CloudFormation Utility functions
layers/utils Utility functions
metering-billing Optional billing and metering module
metering-billing/lambdas Billing Service
metrics-analytics Optional analytics module
metrics-analytics/deploy Kinesis Firehose JSONPath to write to Redshift
metrics-analytics/metrics-generator Example test script to create and push metrics
metrics-analytics/metrics-java-sdk Sample Java library to build and push metrics payloads to SaaS Boost
resources CloudFormation resources
resources/custom-resources CloudFormation custom resources
resources/custom-resources/app-services-ecr-macro CloudFormation Macro to dynamically generate ECR repositories and supporting infrastructure for each defined application service
resources/custom-resources/cidr-dynamodb Populates a DynamoDB table with the available CIDR blocks for tenant VPCs
resources/custom-resources/clear-s3-bucket Deletes all versions of all files and delete markers from S3 buckets so CloudFormation can remove the bucket on stack delete
resources/custom-resources/fsx-dns-name Retrieves the DNS entry for the hosted FSx file system
resources/custom-resources/rds-bootstrap Executes your SQL file to bootstrap empty databases during tenant onboarding
resources/custom-resources/rds-options Caches the available RDS engines, versions, and instance types for the current region and account
resources/custom-resources/redshift-table Bootstraps the RedShift database for the optional analytics module
resources/custom-resources/set-instance-protection Disables AutoScaling instance protection when we update or delete stacks
samples Example workloads that can be deployed as an application to SaaS Boost
samples/java Linux example monolithic app using Java Spring Framework Web MVC
samples/dotnet-framework Windows OS example monolithic app using .Net Framework 4.x ASP.NET MVC (not .NET Core)
services SaaS Boost micro services
services/metric-service Metrics Service supports the operational insights dashboards in the admin web app
services/onboarding-service Onboarding Service orchestrates tenant creation, infrastructure provisioning, workload deployment and billing setup
services/quotas-service Quotas Service checks AWS Account service quotas before onboarding new tenants
services/settings-service Settings Service maintains SaaS Boost environment configuration and your application configuration
services/tenant-service Tenant Service manages your tenants and their unique attributes
services/tier-service Tier Service manages tiers for packaging your offering. You can define application configurations per tier.
services/user-service User Service manages system users (users of the admin web app, not users of your application)

Cost

You will be billed for the various services leveraged by AWS SaaS Boost. Provisioned resources are tagged with "SaaS Boost" and each tenant's resources are also uniquely tagged to help you with cost allocation.

Each tenant you onboard into an AWS SaaS Boost environment will provision more infrastructure and will increase your costs.

Note that the optional Analytics and Metrics module will provision a Redshift cluster.

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License. See the LICENSE file.