Overview
Seamless automates the deployment process from push to Prod
Seamless is a self-hosted, open-source, cloud-native CI/CD solution tailored for microservices. Seamless offers a low-configuration platform for automating the testing, building, and deployment of containerized microservice applications.
To learn more about Seamless read our case study.
Infrastructure
Seamless's core AWS infrastructure. The major constructs in Seamless's infrastructure are described below.
Resources Created
VPC
A single non-default Virtual Private Cloud.
EC2 Instance
An EC2 instance that hosts Seamless's backend Express server.
Step Functions
An AWS-native state machine that coordinates the logic of Seamless's CI/CD pipeline.
SNS Topic
An SNS topic for notifying our backend about pipeline status.
RDS Instance
A Postgres database hosted on RDS storing all pipeline data.
ElastiCache Redis Cluster
A Redis node hosted on ElastiCache for storing logs.
ECS Cluster on EC2
An ECS cluster used for running pipeline tasks.
Deployment Information
Prerequisites
To use Seamless the AWS CLI and AWS CDK is required. Additionally, Seamless presupposes a microservices application hosted on AWS Fargate. To install Seamless npm
is required.
Installing Seamless
- Create an OAuth app for Seamless. For now, put any input in the homepage and callback URLs. We will fill them out after deploying Seamless. Save your client ID and Secret.
- Run
npm install -g @seamless-cicd/seamless
to install the Seamless CLI - Run
seamless init
to provide the input needed for deploying Seamless, and to boostrap your AWS account. Provide your OAuth app client ID and secret when prompted. - Run
seamless deploy
to provision Seamless infrastructure in AWS. Upon completion a URL to the Dashboard GUI will be provided. Save this URL; it is the URL you will use to interact with Seamless. - Return to the settings for the OAuth app you used to setup Seamless, and copy the URL into the homepage URL and callback URL fields.
- You are ready to start using Seamless!
Uninstalling Seamless
- Run
seamless teardown
to remove all AWS infrastructure associated with Seamless. - Delete the OAuth app you created for Seamless.
The Team
Jason Wang Software Engineer • Los Angeles, CA
Ethan Weiner Software Engineer • Boston, MA
Ryan DeJonghe Software Engineer • Denver, CO