Skip to content

Highly available Design deployment

#week_Thirteen&Fourteen - Higly available Application & Database deployment utilizing CircleCI CI/CD & Terraform IaC


duration: 2 weeks

ForgTech company wanna test your ability to type down a clean code by Deploying the structure of resources. This will help you to build a good reputation.

The FrogTech Architecture team requested implementing a highly available application and database in The Private VPC that had been created last lab.

The design Should follow:

  1. Deploying a Highly available application Using an Auto-scaling group considering each server in a different availability zone.
  2. Provision RDS Multi-az.
  3. Building a simple application (i.e. using Python, etc.. View resources below) ensuing successful communication between the App and Database.

As well as Build a personal document consisting of what you learn with deep details and resources i.e. this will assist you in getting back and refreshing your knowledge later.

By following The ForgTech deployment policy, you should deliver this deployment in an automated pipeline using CircleCI and follow the DevOps Team pipeline structure standards as The Pipeline stages should be as follows:

  1. Preparation stage: This includes the installation and preparation steps (i.e. install AWS CLI, Terraform, and Terraform Initialization) the installation must be done by Commands map.
  2. Plan Stage: This includes the terraform validation and plan commands; The plan must done by using the output file (i.e. tfplan file,) and Then Saving the output plan file using CircleCI workspace to use it in another step.
  3. Manual approval: Pause the pipeline until Reviewed & Approved by the checker engineer.
  4. Terraform apply: This includes attaching the output plan saved file in the plan stage and then Starting provision resources.


Consider the below requirements specifications.

  1. Resources must be created at the us-east-1 region.
  2. Store state file backend into HCP | S3.
  3. Resources must have common tags combination as below:
  4. Common tags:
    • Key: “Environment”, Value: “terraformChamps”
    • Key: “Owner”, Value: <“Your_first_name“>

Bonus

  1. Build an Architecture diagram of the deployment resources.
  2. Append an extra step command of the Plan stage reviewing specific parts of attributes using jq command.
  3. Crafting multiple HCP workspaces.


References: