On Premise Deployment

The Nected On-Premise suite integrates frontend applications and backend services. The backend is a combination of core services supporting frontend applications and a dedicated service cluster for executing user-defined rules and workflows, triggered via APIs or cron schedules.

The Nected On-Premise suite integrates frontend applications and backend services. The backend is a combination of core services supporting frontend applications and a dedicated service cluster for executing user-defined rules and workflows, triggered via APIs or cron schedules.

By the end of this documentation, you will clearly understand the prerequisites, processes, and best practices for deploying Nected within your IT ecosystem. We aim to ensure that you can leverage the full potential of Nected's suite with confidence and efficiency, tailored to your organization's unique needs.

Current Tech Stack Versions:

The following table details the specific versions of the technology stack we’re currently on. So these specific versions are required for the On-Premise deployment of Nected:

CategoryTechnologyVersion

Platform Language & Compiler

React

~18.2

NodeJS

Latest LTS

Golang

~≥ 1.19

Python

~≥ 3.11

Database and Storage

PostgreSQL

~≥ 9.6

MongoDB

≥ 6

Cassandra

≥ 4.1.3

Elasticsearch

7 or 8

Redis

Latest LTS

Infrastructure, Packaging, and Distribution

Docker

v25

Kubernetes

≥ 1.24

Helm

v3

These versions are critical to ensure compatibility and optimal performance of the Nected On-Premise deployment. It is recommended to adhere to these versions specifically, as they provide the necessary features and stability required for a successful installation.

Infrastructure Requirement:

Below are the minimum infrastructure requirements to support a load of 10 RPS on the Nected execution engine with a response time below 500 milliseconds.

ServiceComponentsRequirementSizeApprox Monthly cost ($)

Frontend Apps

Console, Editor, Assets

single server deployment using nginx

One t3.small2 vCPU 2 GB

15

K8s Cluster

API Service - Main service pods

0.2 cpu 2 pods

One c6g.xlarge 4 vCPU 8 GB

100

API Service - SQL Linter (optional)

0.5 cpu, 1 pod

Router Service

0.2 cpu, 2 pod

Executer Service - Main Service pods

0.2 cpu, 2 pod

Executer Service - Executer-tp (optional)

0.7 cpu, 1 pod

Temporal: History

1 cpu, 1 pod

Temporal: Frontend

0.25 cpu, 2 pod

Temporal: Matching

0.25 cpu, 2 pod

Redis

ElasticCache t3.small

35

Postgres

RDS t3.medium

40

MongoDB

MongoCloud Serverless

15

To set up on-premise in your systems, please get in touch with our solution expert at assist@nected.ai to get it set up. It will take 3-5 days effort to set up things. You can find steps to set up below for your information. If you have any different tech stack or need any further customization, our solution expert can help you with the same.

Frontend Application Deployment:

The deployment of Nected's frontend applications is a crucial step in setting up an accessible and efficient user interface. This section guides through deploying the Main Console Application, Editor, and Assets, offering methods for both server-based setups with Nginx and cloud-based delivery using AWS S3 and CloudFront. Each approach is tailored to meet specific deployment needs, ensuring a smooth and secure user experience.

Option 1: Deployment Using a Single Server with Nginx

Deploying Nected's frontend applications on a single server using Nginx caters to both efficiency and security. This detailed guide covers the process for setting up the Main Console Application, Editor, and Assets on a t3.small instance or an equivalent server, accommodating both macOS and Linux environments.

Step 1: Server Preparation

  1. Provision a Server: Begin by provisioning a t3.small instance or any suitable server that meets the minimum requirements for hosting the Nginx web server and the frontend applications.

  2. Install Nginx:

    • Linux: Use your server's package manager to install Nginx. For example, on Ubuntu, you would use:

      sudo apt-get update
      sudo apt-get install nginx
    • macOS: Assuming you have Homebrew installed, run:

      brew install nginx
    • Secure Your Server: Implement security measures, such as setting up a firewall and configuring SSH access. The steps for this will vary based on your server's operating system and your security requirements.

Step 2: Application Build

  1. Prepare the Environment: Install NodeJS on your server, ensuring the version aligns with the requirements of the React applications you are deploying.

  2. Build Applications:

    • Transfer your frontend application source code to your server.

    • For each application (Main Console Application and Editor), navigate to its directory. Then, install dependencies and build the application using the following commands:

      npm install
      npm run build

    These commands are universal and work on both macOS and Linux.

Step 3: Nginx Configuration

  1. Configure Server Blocks: Create a server block in Nginx for each application. This involves editing Nginx configuration files, typically located in /etc/nginx/sites-available on Linux or /usr/local/etc/nginx/servers/ on macOS.

  2. Set Up Locations:

    • Define a location block within your server configuration to point Nginx to your built application files. An example configuration might look like this:

      server {
          listen 80;
          server_name example.com;
      
          location / {
              root /path/to/your/app/build;
              try_files $uri /index.html;
          }
      }
    • Replace /path/to/your/app/build with the actual path to your application's build directory.

  3. Enable the Configuration:

    • Linux: Enable your new server block by linking it in the /etc/nginx/sites-enabled directory, then reload Nginx:

      sudo ln -s /etc/nginx/sites-available/yourconfig /etc/nginx/sites-enabled/
      sudo systemctl reload nginx
    • macOS: Directly edit the main Nginx config file or include your server block file from /usr/local/etc/nginx/nginx.conf, then restart Nginx:

      brew services restart nginx

Step 4: Testing

  1. Access the Applications: Open a web browser and navigate to your server's domain name or IP address to access the Main Console Application or Editor, based on your setup.

  2. Debugging: If the applications are not accessible, check the Nginx error logs for troubleshooting. These are typically located at /var/log/nginx/error.log on Linux or /usr/local/var/log/nginx/error.log on macOS.

  3. Security Enhancements: To ensure encrypted connections, consider setting up HTTPS. This involves obtaining SSL certificates (e.g., from Let's Encrypt) and configuring Nginx to use them.

Following these steps, you'll successfully deploy Nected's frontend applications on a single server using Nginx, tailored for both macOS and Linux environments. This setup provides a robust and secure foundation for your on-premise deployment of Nected.

Option 2: Deployment Using AWS S3 and CloudFront

Deploying Nected's frontend applications using AWS S3 and CloudFront offers scalability, reliability, and global distribution. This method leverages Amazon S3 to host static website content, while CloudFront provides a content delivery network (CDN) service that speeds up distribution. Here's how to accomplish this setup:

Step 1: S3 Bucket Setup

  1. Create S3 Buckets: Log in to the AWS Management Console and create a new S3 bucket for each of the frontend applications (Main Console, Editor, Assets). Ensure the bucket names are unique and DNS-compliant.

  2. Enable Static Website Hosting:

    • Navigate to the Properties of each bucket.

    • Select "Static website hosting" and choose "Use this bucket to host a website". Enter index.html as both the index and error documents.

  3. Bucket Policy:

    • Under the Permissions tab, edit the bucket policy to allow public read access to the bucket. This is necessary for CloudFront and users to access the content. An example policy:

      {
        "Version": "2012-10-17",
        "Statement": [{
          "Sid": "PublicReadGetObject",
          "Effect": "Allow",
          "Principal": "*",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }]
      }
      
    • Replace YOUR_BUCKET_NAME with the actual name of your bucket.

Step 2: Building and Uploading

  1. Build Applications: On your local machine, navigate to each application's directory, run npm install followed by npm run build to generate the production build of your applications.

  2. Upload Content:

    • Use the AWS Management Console or the AWS CLI to upload your build files to the respective S3 buckets.

    • Ensure the build folder's contents are uploaded directly to the root of the S3 bucket.

Step 3: CloudFront Distribution

  1. Create CloudFront Distribution:

    • Go to the CloudFront service in the AWS Management Console and create a new distribution.

    • Select "Web" distribution and configure the origin settings using your S3 bucket's static website hosting endpoint as the origin domain name.

  2. Configure Distribution Settings:

    • Set the Viewer Protocol Policy to "Redirect HTTP to HTTPS" for security.

    • Optionally, configure additional settings such as caching behavior and distribution name.

  3. SSL and Custom Domain:

    • Use AWS Certificate Manager (ACM) to provision an SSL certificate for your domain.

    • Configure the CloudFront distribution to use this certificate, enabling HTTPS for your domain.

  4. Deployment:

    • Once configured, deploy the CloudFront distribution. It may take some time for the distribution to be deployed and for changes to propagate.

Step 4: DNS Configuration and SSL

  1. DNS Update:

    • After the CloudFront distribution is deployed, note the distribution's domain name (e.g., d1234.cloudfront.net).

    • Update your domain's DNS settings to create a CNAME record pointing to your CloudFront distribution domain name.

  2. Enable HTTPS:

    • Ensure the SSL certificate is correctly associated with your CloudFront distribution to secure your application access.

Step 5: Verification and Testing

  1. Access Applications:

    • Once DNS changes propagate, access your applications via the custom domain. The applications should be served over HTTPS through CloudFront, leveraging global distribution and caching.

  2. Debugging:

    • If you encounter issues, verify your S3 bucket policies, CloudFront distribution settings, and DNS configurations. AWS provides logs for both S3 and CloudFront that can help diagnose issues.

Deploying Nected's frontend applications using AWS S3 and CloudFront not only enhances performance through effective content delivery but also ensures scalability and reliability for on-premise deployments. This setup allows users worldwide to access your applications with low latency and high transfer speeds, providing an optimal user experience.

Backend Services Deployment

Deploying Nected's backend services efficiently requires setting up a Kubernetes cluster, configuring a load balancer, managing DNS and SSL certificates, and packaging services using Docker and Helm. This section outlines the detailed process to deploy API Services, Router Service, Executer Service, and the Temporal Cluster for a robust on-premise solution.

Step 1: Kubernetes Cluster Creation

  1. Provision the Cluster:

    • Use a cloud provider like AWS EKS, Google GKE, or an on-premise solution like Kubernetes The Hard Way to create your Kubernetes cluster. Ensure the cluster meets the hardware and performance requirements of your Nected deployment.

  2. Configure kubectl:

    • Configure kubectl, the Kubernetes command-line tool, to communicate with your new cluster. This typically involves downloading a configuration file from your Kubernetes provider and setting the KUBECONFIG environment variable.

Step 2: Load Balancer Setup

  1. Provision a Load Balancer:

    • Utilize your cloud provider's load balancer service or an on-premise load balancer to distribute incoming traffic to your backend services. Configure the load balancer to forward traffic to the appropriate Kubernetes services.

  2. Health Checks:

    • Set up health checks in your load balancer configuration to ensure traffic is only routed to healthy instances of your services.

Step 3: DNS Mapping and SSL Certificate

  1. DNS Configuration:

    • Create a DNS record that points to your load balancer. This will be the public entry point to your backend services.

    • Use services like AWS Route 53 or Google Cloud DNS if you're in the cloud, or configure your DNS record with your domain registrar for on-premise solutions.

  2. SSL Certificates:

    • Obtain an SSL certificate from a certificate authority (CA) or use Let’s Encrypt for free certificates.

    • Configure your load balancer to use the SSL certificate, ensuring that all traffic between the client and your backend services is encrypted.

Step 4: Docker Packaging

  1. Containerize Your Services:

    • Package each backend service (API Services, Router Service, Executer Service, and the Temporal Cluster) into Docker containers. Ensure each Dockerfile correctly specifies the environment, dependencies, and startup commands for the services.

  2. Build and Push Containers:

    • Build your Docker containers and push them to a container registry like Docker Hub or Amazon ECR. Ensure your Kubernetes cluster has access to pull these images.

Step 5: Helm Charts for Kubernetes Deployment

  1. Helm Setup:

    • Install Helm, a package manager for Kubernetes, to simplify the deployment and management of your backend services.

    • Create Helm charts for your services. Each chart should include templates for deployments, services, and any other Kubernetes resources needed by your service.

  2. Deploy Services:

    • Use Helm to deploy your backend services to the Kubernetes cluster. For example, run helm install my-service ./my-service-chart to deploy a service.

Step 6: Deployment Using YAML Files

  1. Prepare YAML Files:

    • deploy.yaml: Defines the deployment configuration, including the Docker image to use, the number of replicas, and resource limits.

    • service.yaml: Specifies how the Kubernetes service is exposed within the cluster or externally.

    • ingress.yaml: Manages external access to the services through the Kubernetes Ingress, routing traffic from the load balancer to the services.

    • config.yaml: Contains environment-specific configuration data that your application can use.

    • secrets.yaml: Holds sensitive information, like database passwords and API keys, securely.

  2. Apply YAML Files:

    • Use kubectl apply -f <filename>.yaml to create or update the resources defined in your YAML files. Ensure these files are applied in an order that respects dependencies between resources.

Step 7: Monitoring and Maintenance

  1. Set Up Monitoring:

    • Implement monitoring and logging solutions like Prometheus, Grafana, and ELK Stack to keep an eye on your backend services' health and performance.

  2. Regular Maintenance:

    • Plan for regular updates and maintenance of your Docker images, Kubernetes resources, and Helm charts to ensure security and efficiency.

Deploying Nected's backend services in an on-premise environment using Kubernetes, Docker, and Helm offers scalability, high availability, and robust performance. By following these steps, you ensure a secure and efficient deployment process, laying the groundwork for a resilient backend infrastructure.

To set up on-premise in your systems, please get in touch with our solution expert at assist@nected.ai to get it set up. It will take 3-5 days effort to set up things. You can find steps to set up below for your information. If you have any different tech stack or need any further customization, our solution expert can help you with the same.

By the end of this documentation, you will clearly understand the prerequisites, processes, and best practices for deploying Nected within your IT ecosystem. We aim to ensure that you can leverage the full potential of Nected's suite with confidence and efficiency, tailored to your organization's unique needs.

Current Tech Stack Versions:

The following table details the specific versions of the technology stack we’re currently on. So these specific versions are required for the On-Premise deployment of Nected:

CategoryTechnologyVersion

Platform Language & Compiler

React

~18.2

NodeJS

Latest LTS

Golang

~≥ 1.19

Python

~≥ 3.11

Database and Storage

PostgreSQL

~≥ 9.6

MongoDB

≥ 6

Cassandra

≥ 4.1.3

Elasticsearch

7 or 8

Redis

Latest LTS

Infrastructure, Packaging, and Distribution

Docker

v25

Kubernetes

≥ 1.24

Helm

v3

These versions are critical to ensure compatibility and optimal performance of the Nected On-Premise deployment. It is recommended to adhere to these versions specifically, as they provide the necessary features and stability required for a successful installation.

Infrastructure Requirement:

Below are the minimum infrastructure requirements to support a load of 10 RPS on the Nected execution engine with a response time below 500 milliseconds.

ServiceComponentsRequirementSizeApprox Monthly cost ($)

Frontend Apps

Console, Editor, Assets

single server deployment using nginx

One t3.small2 vCPU 2 GB

15

K8s Cluster

API Service - Main service pods

0.2 cpu 2 pods

One c6g.xlarge 4 vCPU 8 GB

100

API Service - SQL Linter (optional)

0.5 cpu, 1 pod

Router Service

0.2 cpu, 2 pod

Executer Service - Main Service pods

0.2 cpu, 2 pod

Executer Service - Executer-tp (optional)

0.7 cpu, 1 pod

Temporal: History

1 cpu, 1 pod

Temporal: Frontend

0.25 cpu, 2 pod

Temporal: Matching

0.25 cpu, 2 pod

Redis

ElasticCache t3.small

35

Postgres

RDS t3.medium

40

MongoDB

MongoCloud Serverless

15

To set up on-premise in your systems, please get in touch with our solution expert at assist@nected.ai to get it set up. It will take 3-5 days effort to set up things. You can find steps to set up below for your information. If you have any different tech stack or need any further customization, our solution expert can help you with the same.

Frontend Application Deployment:

The deployment of Nected's frontend applications is a crucial step in setting up an accessible and efficient user interface. This section guides through deploying the Main Console Application, Editor, and Assets, offering methods for both server-based setups with Nginx and cloud-based delivery using AWS S3 and CloudFront. Each approach is tailored to meet specific deployment needs, ensuring a smooth and secure user experience.

Option 1: Deployment Using a Single Server with Nginx

Deploying Nected's frontend applications on a single server using Nginx caters to both efficiency and security. This detailed guide covers the process for setting up the Main Console Application, Editor, and Assets on a t3.small instance or an equivalent server, accommodating both macOS and Linux environments.

Step 1: Server Preparation

  1. Provision a Server: Begin by provisioning a t3.small instance or any suitable server that meets the minimum requirements for hosting the Nginx web server and the frontend applications.

  2. Install Nginx:

    • Linux: Use your server's package manager to install Nginx. For example, on Ubuntu, you would use:

      sudo apt-get update
      sudo apt-get install nginx
    • macOS: Assuming you have Homebrew installed, run:

      brew install nginx
    • Secure Your Server: Implement security measures, such as setting up a firewall and configuring SSH access. The steps for this will vary based on your server's operating system and your security requirements.

Step 2: Application Build

  1. Prepare the Environment: Install NodeJS on your server, ensuring the version aligns with the requirements of the React applications you are deploying.

  2. Build Applications:

    • Transfer your frontend application source code to your server.

    • For each application (Main Console Application and Editor), navigate to its directory. Then, install dependencies and build the application using the following commands:

      npm install
      npm run build

    These commands are universal and work on both macOS and Linux.

Step 3: Nginx Configuration

  1. Configure Server Blocks: Create a server block in Nginx for each application. This involves editing Nginx configuration files, typically located in /etc/nginx/sites-available on Linux or /usr/local/etc/nginx/servers/ on macOS.

  2. Set Up Locations:

    • Define a location block within your server configuration to point Nginx to your built application files. An example configuration might look like this:

      server {
          listen 80;
          server_name example.com;
      
          location / {
              root /path/to/your/app/build;
              try_files $uri /index.html;
          }
      }
    • Replace /path/to/your/app/build with the actual path to your application's build directory.

  3. Enable the Configuration:

    • Linux: Enable your new server block by linking it in the /etc/nginx/sites-enabled directory, then reload Nginx:

      sudo ln -s /etc/nginx/sites-available/yourconfig /etc/nginx/sites-enabled/
      sudo systemctl reload nginx
    • macOS: Directly edit the main Nginx config file or include your server block file from /usr/local/etc/nginx/nginx.conf, then restart Nginx:

      brew services restart nginx

Step 4: Testing

  1. Access the Applications: Open a web browser and navigate to your server's domain name or IP address to access the Main Console Application or Editor, based on your setup.

  2. Debugging: If the applications are not accessible, check the Nginx error logs for troubleshooting. These are typically located at /var/log/nginx/error.log on Linux or /usr/local/var/log/nginx/error.log on macOS.

  3. Security Enhancements: To ensure encrypted connections, consider setting up HTTPS. This involves obtaining SSL certificates (e.g., from Let's Encrypt) and configuring Nginx to use them.

Following these steps, you'll successfully deploy Nected's frontend applications on a single server using Nginx, tailored for both macOS and Linux environments. This setup provides a robust and secure foundation for your on-premise deployment of Nected.

Option 2: Deployment Using AWS S3 and CloudFront

Deploying Nected's frontend applications using AWS S3 and CloudFront offers scalability, reliability, and global distribution. This method leverages Amazon S3 to host static website content, while CloudFront provides a content delivery network (CDN) service that speeds up distribution. Here's how to accomplish this setup:

Step 1: S3 Bucket Setup

  1. Create S3 Buckets: Log in to the AWS Management Console and create a new S3 bucket for each of the frontend applications (Main Console, Editor, Assets). Ensure the bucket names are unique and DNS-compliant.

  2. Enable Static Website Hosting:

    • Navigate to the Properties of each bucket.

    • Select "Static website hosting" and choose "Use this bucket to host a website". Enter index.html as both the index and error documents.

  3. Bucket Policy:

    • Under the Permissions tab, edit the bucket policy to allow public read access to the bucket. This is necessary for CloudFront and users to access the content. An example policy:

      {
        "Version": "2012-10-17",
        "Statement": [{
          "Sid": "PublicReadGetObject",
          "Effect": "Allow",
          "Principal": "*",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*"
        }]
      }
      
    • Replace YOUR_BUCKET_NAME with the actual name of your bucket.

Step 2: Building and Uploading

  1. Build Applications: On your local machine, navigate to each application's directory, run npm install followed by npm run build to generate the production build of your applications.

  2. Upload Content:

    • Use the AWS Management Console or the AWS CLI to upload your build files to the respective S3 buckets.

    • Ensure the build folder's contents are uploaded directly to the root of the S3 bucket.

Step 3: CloudFront Distribution

  1. Create CloudFront Distribution:

    • Go to the CloudFront service in the AWS Management Console and create a new distribution.

    • Select "Web" distribution and configure the origin settings using your S3 bucket's static website hosting endpoint as the origin domain name.

  2. Configure Distribution Settings:

    • Set the Viewer Protocol Policy to "Redirect HTTP to HTTPS" for security.

    • Optionally, configure additional settings such as caching behavior and distribution name.

  3. SSL and Custom Domain:

    • Use AWS Certificate Manager (ACM) to provision an SSL certificate for your domain.

    • Configure the CloudFront distribution to use this certificate, enabling HTTPS for your domain.

  4. Deployment:

    • Once configured, deploy the CloudFront distribution. It may take some time for the distribution to be deployed and for changes to propagate.

Step 4: DNS Configuration and SSL

  1. DNS Update:

    • After the CloudFront distribution is deployed, note the distribution's domain name (e.g., d1234.cloudfront.net).

    • Update your domain's DNS settings to create a CNAME record pointing to your CloudFront distribution domain name.

  2. Enable HTTPS:

    • Ensure the SSL certificate is correctly associated with your CloudFront distribution to secure your application access.

Step 5: Verification and Testing

  1. Access Applications:

    • Once DNS changes propagate, access your applications via the custom domain. The applications should be served over HTTPS through CloudFront, leveraging global distribution and caching.

  2. Debugging:

    • If you encounter issues, verify your S3 bucket policies, CloudFront distribution settings, and DNS configurations. AWS provides logs for both S3 and CloudFront that can help diagnose issues.

Deploying Nected's frontend applications using AWS S3 and CloudFront not only enhances performance through effective content delivery but also ensures scalability and reliability for on-premise deployments. This setup allows users worldwide to access your applications with low latency and high transfer speeds, providing an optimal user experience.

Backend Services Deployment

Deploying Nected's backend services efficiently requires setting up a Kubernetes cluster, configuring a load balancer, managing DNS and SSL certificates, and packaging services using Docker and Helm. This section outlines the detailed process to deploy API Services, Router Service, Executer Service, and the Temporal Cluster for a robust on-premise solution.

Step 1: Kubernetes Cluster Creation

  1. Provision the Cluster:

    • Use a cloud provider like AWS EKS, Google GKE, or an on-premise solution like Kubernetes The Hard Way to create your Kubernetes cluster. Ensure the cluster meets the hardware and performance requirements of your Nected deployment.

  2. Configure kubectl:

    • Configure kubectl, the Kubernetes command-line tool, to communicate with your new cluster. This typically involves downloading a configuration file from your Kubernetes provider and setting the KUBECONFIG environment variable.

Step 2: Load Balancer Setup

  1. Provision a Load Balancer:

    • Utilize your cloud provider's load balancer service or an on-premise load balancer to distribute incoming traffic to your backend services. Configure the load balancer to forward traffic to the appropriate Kubernetes services.

  2. Health Checks:

    • Set up health checks in your load balancer configuration to ensure traffic is only routed to healthy instances of your services.

Step 3: DNS Mapping and SSL Certificate

  1. DNS Configuration:

    • Create a DNS record that points to your load balancer. This will be the public entry point to your backend services.

    • Use services like AWS Route 53 or Google Cloud DNS if you're in the cloud, or configure your DNS record with your domain registrar for on-premise solutions.

  2. SSL Certificates:

    • Obtain an SSL certificate from a certificate authority (CA) or use Let’s Encrypt for free certificates.

    • Configure your load balancer to use the SSL certificate, ensuring that all traffic between the client and your backend services is encrypted.

Step 4: Docker Packaging

  1. Containerize Your Services:

    • Package each backend service (API Services, Router Service, Executer Service, and the Temporal Cluster) into Docker containers. Ensure each Dockerfile correctly specifies the environment, dependencies, and startup commands for the services.

  2. Build and Push Containers:

    • Build your Docker containers and push them to a container registry like Docker Hub or Amazon ECR. Ensure your Kubernetes cluster has access to pull these images.

Step 5: Helm Charts for Kubernetes Deployment

  1. Helm Setup:

    • Install Helm, a package manager for Kubernetes, to simplify the deployment and management of your backend services.

    • Create Helm charts for your services. Each chart should include templates for deployments, services, and any other Kubernetes resources needed by your service.

  2. Deploy Services:

    • Use Helm to deploy your backend services to the Kubernetes cluster. For example, run helm install my-service ./my-service-chart to deploy a service.

Step 6: Deployment Using YAML Files

  1. Prepare YAML Files:

    • deploy.yaml: Defines the deployment configuration, including the Docker image to use, the number of replicas, and resource limits.

    • service.yaml: Specifies how the Kubernetes service is exposed within the cluster or externally.

    • ingress.yaml: Manages external access to the services through the Kubernetes Ingress, routing traffic from the load balancer to the services.

    • config.yaml: Contains environment-specific configuration data that your application can use.

    • secrets.yaml: Holds sensitive information, like database passwords and API keys, securely.

  2. Apply YAML Files:

    • Use kubectl apply -f <filename>.yaml to create or update the resources defined in your YAML files. Ensure these files are applied in an order that respects dependencies between resources.

Step 7: Monitoring and Maintenance

  1. Set Up Monitoring:

    • Implement monitoring and logging solutions like Prometheus, Grafana, and ELK Stack to keep an eye on your backend services' health and performance.

  2. Regular Maintenance:

    • Plan for regular updates and maintenance of your Docker images, Kubernetes resources, and Helm charts to ensure security and efficiency.

Deploying Nected's backend services in an on-premise environment using Kubernetes, Docker, and Helm offers scalability, high availability, and robust performance. By following these steps, you ensure a secure and efficient deployment process, laying the groundwork for a resilient backend infrastructure.

To set up on-premise in your systems, please get in touch with our solution expert at assist@nected.ai to get it set up. It will take 3-5 days effort to set up things. You can find steps to set up below for your information. If you have any different tech stack or need any further customization, our solution expert can help you with the same.

Last updated