Production Environment

Production Infrastructure

📃 See the Production Infrastructure Terraform Configuration file →

EKS Cluster

The EKS Cluster contains sets of Nodes (more commonly called Node Groups) and a control plane responsible for controlling Kubernetes Master Nodes. The current EKS Cluster is at Kubernetes version 1.22.

EKS Node Group

A Node Group is the set of Nodes (also called Worker Nodes) in which Kubernetes pods are deployed. The current configuration deploys a single Node group with Nodes using EC2 t3.small instances that can scale between 2 and 10 Nodes depending on the workload, with a desired size of 6 Nodes.

Deploy to Production

📃 See the Deploy to Production Terraform Configuration file →

Kubernetes Service

A Kubernetes Service is deployed, and is in charge of providing access to the application by providing a Load Balancer. There is no need to create the Load Balancer since the Kubernetes Service generates it automatically.

Generated Load Balancer

The automatically generated Load Balancer has the same function as the one in the Review environment:

  • Giving access to the application to users by letting them access the application through three key ports: 80 (HTTP), 443 (HTTPS) and 5000 (API);
  • Providing an SSL connection to users accessing the website.

Kubernetes Deployment

The Kubernetes Deployment creates a Replicaset which is in charge of creating pods containing the application containers. The current configuration asks the Deployment to provide two replicas of the application in order to have a spare replica if the other one falls.

The great advantage of using a Deployment is its capacity to create multiple Replicasets, which is incredibly useful when updating the application or performing a rollback since it brings zero downtime to the application. This is perfect for high availability.

Route 53 Record

Once the application is deployed on the Production environment, a Route 53 Record is created to allow access to the application via a URL by pointing the URL to the Load Balancer hostname.

🌐 See the Application Website on Production →