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.
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.
Core Architecture Overview
Nected's architecture is fundamentally designed to optimize task execution in a no-code/low-code environment. This section breaks down the platform's key components, offering a clear view of how each contributes to overall performance and scalability.
The architecture of Nected is structured to efficiently manage and execute backend logic flows. It comprises several critical services, each playing a unique role in the system:
1. Overall Architecture:
Fundamental Approach: Nected adopts a task-oriented approach where backend logic flows, created through the Nected console, are executed as a chain of tasks. These tasks, ranging from simple CRUD operations to complex user segmentations, can be executed independently by any worker within the system.
Execution Engine: At the core of Nected is its execution engine, responsible for carrying out the backend logic flows at scale. This engine is pivotal in ensuring the platform's scalability and high-performance capabilities.
2. Core Components:
Router Service:
Functionality: This lightweight GoLang service handles API / webhook triggers for backend logic flows. It is responsible for validating requests, applying throttling, and authenticating incoming requests. Upon validation, it triggers execution using a temporal framework and response.
Accessibility: The Router Service is the entry point to the cluster, with all other services being internal. It is the only service that can be accessible through Load Balancer / API Gateway from the outside network.
Task Manager:
Technology: We have used Temporal, an open-source durable execution framework, to manage tasks and task queues.
Role: The Task Manager interfaces with a Temporal cluster, which uses Cassandra as a persistent store, facilitating efficient task execution and management.
Executor Service:
Functionality: Another lightweight GoLang service, the Executor Service is responsible for fetching and executing tasks. It independently scales to maintain high scalability and is tasked with executing the backend logic for both rules and workflows.
Scalability: Configured to scale as required, it contributes to the overall flexibility and adaptability of the Nected platform.
3. Deployment and Fault Tolerance:
Deployment on Kubernetes: All services within Nected are deployed on a Kubernetes cluster. This choice of infrastructure underlines the platform's emphasis on scalability and reliability.
Fault Tolerance: Each service is designed to be fault-tolerant, ensuring the platform's resilience and uninterrupted operation.
4. Performance Benchmarking Setup:
Objective: The aim was to benchmark a Kubernetes cluster capable of handling ~300rps throughput with specific Cassandra configurations.
Configuration Details: The Router Service was configured with a minimum of 2 and a maximum of 8 pods, each provisioned with 200m CPU and 512MB memory.
Detailed load testing and performance metrics can be found in our performance benchmarking blog.
In conclusion, the Nected platform’s architecture is a well-orchestrated system of services, each optimized for performance and scalability. This architecture not only enables efficient execution of backend logic flows but also ensures high availability and resilience, making Nected a reliable solution for various no-code/low-code backend applications.
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:
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 to 150-300 milliseconds.
If you are facing any issues, please get in touch with our solution expert at assist@nected.ai to resolve your queries/issue. Further, if you have restriction around any of the above stack mentioned in the pre-requisite, our solution expert can help you with the same to customize the installations wherever possible
Deployment:
Deploying Nected on-premise can be done either locally or on the cloud. Below are the steps for both deployment methods:
Local Deployment
To deploy Nected locally follow the below guide:
Prerequisites
Before you begin, ensure that the following software is installed on your local machine:
Docker: Docker is essential for containerizing and running the Nected application. You can download and install Docker from the official Docker website.
Docker Compose: This tool simplifies the process of managing multi-container Docker applications, which you'll use to set up Nected. Docker Compose is usually included with Docker Desktop, but you can verify installation by running:
Git: Git is required to clone the Nected repository.
Step 1: Cloning the Nected Repository
Open your terminal (on Linux/Mac) or Command Prompt/PowerShell (on Windows).
Clone the Nected repository using Git:
Rename the directory: After cloning, rename the directory, like "nected".
Navigate to the newly cloned directory:
Step 2: Setting Up the Docker Containers
Ensure you are in the root directory of the cloned Nected repository.
Check for the presence of a
docker-compose.yml
file. This file contains the configuration needed to set up Nected.Start the Docker containers using Docker Compose:
Step 3: Configuring Environment Variables
Locate the
nectedconfig/nalanda.env
file in the repository. This file contains environment-specific configurations such as database connection details, API keys, etc.Open the
nectedconfig/nalanda.env
file with a text editor of your choice (e.g.,nano
,vim
, or a code editor like VS Code).Modify the environment variables according to your environment(only if you want to use your external database):
Save the
nectedconfig/nalanda.env
file after making the necessary changes.
Step 4: Accessing Nected on Your Local Machine
Once Docker Compose has successfully started the services, you can access Nected through your web browser.
Open a browser and navigate to:
If this is your first time running Nected, you may need to set up an admin account following the on-screen instructions in the video above.
Step 5: Using Nected
Login: Enter your credentials to log into Nected. If you haven’t set up an account yet, follow the initial setup steps prompted by the application.
Dashboard: Once logged in, you'll see the Nected dashboard. Here, you can manage rules, workflows, and other configurations according to your requirements.
Creating and Managing Workflows: Use the interface to create new workflows, manage existing ones, and configure rules as per your project needs.
Step 6: Stopping and Restarting Nected
Stopping: To stop the Nected services, run: This command stops and removes the containers, networks, and volumes defined in the
docker-compose.yml
file.Restarting: If you need to restart the services, simply run:
Cloud Deployment
Provision Cloud Resources:
Choose a cloud provider (e.g., AWS, GCP, Azure) and provision the necessary resources (compute, storage, networking).
Install Prerequisites:
Set up Docker and Kubernetes on your cloud instances.
Ensure your cloud infrastructure meets the required specifications.
Download and Configure Nected Charts:
Access the Nected Helm charts from charts.nected.io.
Adjust your Helm values file for cloud deployment, considering scalability and security.
Deploy Nected on the Cloud:
Use Helm to deploy Nected on your cloud-based Kubernetes cluster.
Continuously monitor the deployment and ensure all services are running efficiently.
For a detailed deployment guide, refer to the complete documentation.
Monitoring and Maintenance
Effective monitoring and maintenance are crucial for ensuring the ongoing security and performance of your Nected deployment. Follow these steps to maintain your system:
Regular Monitoring:
Use Kubernetes monitoring tools to track the health and performance of your deployment.
Set up alerts for any unusual activity or performance degradation.
Routine Maintenance:
Apply updates and patches promptly to keep your system secure.
Perform regular backups of your data and configurations.
Review and optimize resource allocation based on usage patterns.
Last updated