Skip to content

AJ2O/bytesizelinks

Repository files navigation

Overview

A web app that converts any URL to a short "byte-link", which can easily be used and shared. Below are some examples:

Website: https://bytesize.link

Architecture

There are Terraform modules to deploy the web client, CI/CD pipeline, and infrastructure to AWS. These modules are found in tf_modules.

The Lambda functions can be found in the lambda_src directory.

Infrastructure Diagram

Architecture

Notes

Code Release Diagram

Architecture

Notes

  • CodePipeline is automatically triggered whenever it detects a change in this GitHub repository:
    1. The code is compiled with CodeBuild, and unit tests are executed against it.
    1. Once the code is built, and the unit tests pass, the build artifacts are stored in an S3 bucket.
    1. CodeDeploy uses the stored artifacts and deploys the updated app into the web servers.
  • CodeDeploy uses a Blue/Green Deployment, using two live environments:
    • Blue: Uses the existing code
    • Green: Uses the new code
    • After validating that the green environment works properly, I can choose to remove the blue environment
    • If the green environment has issues, I can quickly switch back to the blue environment