Welcome to Helix Xchange

The Helix Xchange application is built on a microservices architecture, leveraging Kubernetes for scalability and resiliency. This document provides an overview of the architecture, prerequisites, and deliverables needed for the installation of the Xchange application.

Architecture Overview

The application components run in Kubernetes pods, while the data layer is managed at the VM level. The architecture ensures scalability, resilience, and efficient management of the application's microservices. Based on cloud and custom requirements, basic components in the architecture can be adapted.

Architecture

Key Components

  • Application Gateway: Manages public endpoints and provides Web Application Firewall (WAF) security.
  • Kubernetes Cluster (AKS or GKE): Orchestrates the deployment, scaling, and management of containerized applications.
  • Ingress Controller: Utilizes NGINX ingress controller to route public traffic to Kubernetes pods.
  • Postgres Database/Kafka Cluster/MongoDB: Installed on a set of 3 virtual machines for high availability.
  • Container Registry: Required if the image repository is hosted in your cloud environment.

Pre-requisites & Deliverables

For the installation of the Xchange application, the following prerequisites and deliverables are required:

Prerequisites

  1. Kubernetes Cluster: Ensure you have a running Kubernetes cluster (AKS, GKE, etc.).
  2. Helm: Helm should be installed on your local machine for deploying Helm charts.
  3. Terraform: Terraform should be installed for infrastructure provisioning.
  4. Ansible: Ansible should be installed for VM configuration management.
  5. DNS Configuration: Access to modify DNS records to configure ingress and application gateway.
  6. Container Registry Access: Ensure access to the container registry where application images are stored.

Deliverables

  1. Terraform Scripts: For provisioning the necessary cloud infrastructure.
  2. Ansible Scripts: For configuring and installing software on virtual machines.
  3. Xchange Prerequisite Helm Chart: Contains necessary dependencies and configurations for the Xchange application.
  4. Xchange Image Repo Secret: Secrets required to pull images from the private container registry.
  5. Airflow Custom Values: Configuration values for deploying Airflow within the Kubernetes cluster.
  6. Xchange Application Helm Charts: Helm charts for deploying the Xchange application components.
  7. Logging Helm Chart: Helm chart for setting up the logging infrastructure (ELK stack).
  8. Monitoring Helm Chart: Helm chart for setting up monitoring tools (Prometheus, Grafana).