Overview
This document introduces:
1. The necessity and principle of project deployment
2. The introduction, applicable scenarios, and components of a standalone project and a multi-node cluster, as well as differences between them
3. The deployment schemes and the role of FineOps
Local Deployment and Server-Based Deployment
Question:
You may wonder why you need to deploy the project on a server since you can install and use FineBI and FineReport Designer on your computer.
Answer:
The personal trial version of FineBI or FineReport Designer downloaded from the official website has a built-in Tomcat server, making it usable right after installation.
Each downloaded trial version of FineBI or Designer corresponds to a local project that cannot be shared with others.
For formal enterprise projects, it's necessary to allow multiple operators to connect to the same project and enable viewers to access the same project from different computers.
Therefore, you need to deploy the project on the server to ensure that operators and viewers can access the same project from their computers.
Containerized Deployment and Traditional Deployment
Reasons for FanRuan Adopting Containerized Deployment
Instead of using the traditional project deployment scheme that requires installing the middleware and JDK, FanRuan opts for containerized deployment with FineOps.
Containerized deployment involves packaging application software with all the elements needed to run in any computing environment as an isolated container using containerization technologies such as Docker.
Compared with traditional deployment, containerized deployment significantly reduces both maintenance and resource costs for customers.
Project Life Cycle | Traditional Deployment | FineOps-Based Deployment | |
---|---|---|---|
Environment preparation | Operating system Hardware configuration | The check of the operating system version and the hardware configuration is missing. Crashes may occur due to low operating system versions, and insufficient disk space or memory size. | The operating system version, memory size, and disk space of the deployment environment are checked mandatorily to ensure the server is suitable for deployment. |
Cluster component Configuration database O&M component | You need to prepare and install the components, and connect them to the project manually after successful project deployment. | 1. FineOps provides various components for the project and supports one-click deployment of the project and these components. 2. You can also use self-prepared highly available components by connecting them to the project during project deployment. | |
Project deployment | Port inspection Network inspection | The project port cannot be specified when you install the project and can only be modified after successful project deployment. Manual troubleshooting is required if the port is occupied or inaccessible. | You can modify the port used by each component when deploying the project. FineOps inspects the port used by each component and network connectivity and displays the prompt. |
Permission inspection | You can guarantee the permission to upload files to the server only, and cannot verify the permission of the server user who starts the project. Issues with project running or functionality may occur due to insufficient permission. | FineOps verifies the permission of the user you are using during project deployment and provides the prompt. This can prevent issues arising from insufficient user permission. | |
Parameter configuration | The container, JVM parameters, the Glibc, the memory allocation, and other parameters are not manually configured and will not be reviewed or modified unless specific project issues occur. | These common parameters have been configured in the image used in FineOps. | |
Project deployment | You must use a terminal to remotely access the server for file uploads, extraction, and execution. | You can complete all deployment operations visually in FineOps. | |
Project registration | You need to choose from various provided registration methods based on the environment. Registration via inappropriate methods may become invalid following project restarts or changes in network conditions. | You can register the project via container private cloud authentication through visual operations, which is simple and fast and ensures long-term registration validity. | |
Project O&M | Project upgrade | You are required to replace the JAR package and stop and start the project manually. Rollback is unsupported. If the upgrade fails, you can only manually replace JAR packages with the old ones to revert the project to its former state. | You can replace the image package on the page to facilitate upgrades. Pre-upgrade backup is supported, which enables fast rollback if the upgrade fails. |
Project backup | Only the critical configuration, JAR packages, and plugins are backed up. Other content requires manual backup. | One-click backup and automatic backup are supported. You can back up the project to the FineOps server. The backup content includes project components, configuration components, cluster components, and dependent images. | |
Project restoration | The Restoration function on the platform is only available when the project is started. Manual file replacement is required to restore projects that cannot be started. | You can click the xx icon in FineOps to restore projects, including inoperable projects. FineOps allows for specifying a new node for an inoperable server during restoration. | |
Project O&M | The feature is not provided or the O&M scope is limited. | Project O&M is supported. The provided functions include but are not limited to:
|
Relationship Between FineKey, FineOps, and the O&M Project
Product/Function | Description |
---|---|
FineKey and FineOps | FineKey is an easily deployed CLI tool used to: 1. Initialize the deployment environment: You can use FineKey to create the Docker environment and perform container networking. 2. Deploy FineOps: You can deploy FineOps with images pulled from FineKey or the cloud. 3. Upgrade FineOps within an intranet environment: FineOps within an intranet environment cannot pull images from the cloud, so the offline version of FineKey is required to update the images. |
FineOps and the O&M Project | FineOps is a comprehensive operation and maintenance management tool for FanRuan projects. 1. You can use FineOps to deploy and connect to single-node and multi-node O&M projects, including FineReport, FineBI, and FineDataLink projects. 2. The O&M project deployed via FineOps includes the FanRuan project, the supporting external configuration database, cluster components, O&M components, and so on. 3. You can connect multiple O&M projects to the same FineOps for management. 4. FineOps allows you to perform a full range of O&M operations on the connected O&M project such as starting, stopping, registering, upgrading, inspecting, and monitoring the project, as well as configuring the alert notification. |
Single-Node Application and Multi-node Cluster
Single-Node Application
A single-node application is a deployed project.
Multi-node Cluster
A cluster is a group of identical projects that are centralized to provide the same service. Each project is a node of the cluster.
A cluster can be scaled horizontally, based on which you can increase the node quantity to achieve linear growth in concurrency.
Furthermore, you can create cluster backups on multiple nodes to avoid system crashes caused by single node failure, which may lead to disruption to business and data or template loss, thus ensuring the system operates stably 24/7.
Benefits of Clustering
High-availability clusters have better performance with easier management and stronger security compared with standalone projects. Together with the ability to flexibly scale, clusters are suitable for enterprise-level report generation and management.
With clusters, enterprises can efficiently manage report data, including storage, generation, distribution, and more.
Advantage | Description |
---|---|
High reliability | A FanRuan cluster consists of multiple nodes that work collaboratively with a load balancer, a state server, and other components. These nodes share the load of processing requests. When a cluster node fails, the load balancer automatically forwards requests to other available nodes, ensuring stable system operation. |
High concurrency | The FanRuan cluster enables parallel processing of multiple dashboard generation and data calculation tasks by distributing tasks among nodes. You can increase the number of cluster nodes to accelerate data calculation and dashboard generation, thus enhancing the overall performance. System concurrency improves as the number of nodes increases. |
Easy management | The FanRuan cluster provides a comprehensive management platform for deploying, configuring, monitoring, and automatically fixing cluster nodes. It greatly reduces the difficulty and risk of cluster operation and maintenance and helps enterprises better manage and maintain their systems.
|
Strong scalability | Based on sound architectural design, the FanRuan Web cluster exhibits excellent horizontal scalability (as the linear growth in concurrency can be achieved by increasing the number of cluster nodes), enabling the system to handle a large number of concurrent requests and traffic fluctuations effectively. |
Advantages of a Project Cluster over a Standalone Project
To better understand the differences, you can liken a project to a fleet of taxis. A project cluster has advantages over a standalone project in the following aspects
Load Capacity
A standalone project is like a single taxi that can accept passengers' orders but may be unable to handle too many orders. A standalone project may encounter performance bottlenecks when faced with many requests as well.
To address this, you need multiple taxis (projects) to share the order (request) processing workload. These taxis (projects) can be organized into a taxi fleet (cluster).
This approach allows passengers to be distributed across different vehicles and sent to their destinations at the same time, enhancing efficiency.
Reliability
Increasing the number of vehicles can indeed solve high-load issues, but it may pose challenges to reliability.
You need a robust fleet management system to ensure each vehicle operates smoothly and provides consistent services and customer experience.
Similarly, when designing a cluster, you need to combine multiple servers with components such as the load balancer, the configuration database, the state server, and the file server for the system to provide services stably.
Summary
The cluster has distinct advantages over a standalone project in resource sharing and node collaboration.
A cluster outperforms a standalone project in scalability and performance as the cluster enables communication, data sharing, and task distribution among multiple projects, whereas a standalone project consumes all resources, making it inherently unscalable.
To conclude, implementing a cluster can significantly improve the system's load capacity and availability while maintaining stable system operation.
Necessity of Various Components in a Cluster
The cluster must be well-designed to deliver efficient and stable services.
Component | Description |
---|---|
Project node | Think of each project node as a taxi. If a taxi breaks down, other taxis will be automatically arranged to take over its work, ensuring the normal operation of the entire fleet. There is no host node in the FanRuan cluster. The first node in a cluster is taken as the benchmark node. Each node provides services equally and is manageable. Each node is a runnable independent project that can process user requests such as report generation and component management. Cluster nodes communicate and collaborate through a series of network protocols and services. |
Load balancer | Similar to a dispatching center of the taxi fleet, the load balancer in a cluster distributes requests. It functions as a unified entrance for customers, saving their efforts on asking the driver which taxi should they take. In a cluster, the load balancer distributes tasks to various nodes to ensure high efficiency. It balances the load among all nodes, ensuring that each node is allocated sufficient tasks and remains busy. |
External database | It refers to the external configuration database FineDB, which is similar to the vehicle management office of the taxi fleet where the information about all vehicles and drivers is stored and maintained. It provides each driver with the same vehicle decoration, quotations, routes, and other details, ensuring that all vehicles deliver the same travel experience to customers. In a cluster, the configuration database is used to store and maintain the configuration and parameter settings of all nodes. These parameters must be set reasonably for cluster nodes to collaborate. |
State server | The state server is like a management center of the taxi fleet that monitors and maintains the overall status of the fleet, including the location of vehicles and drivers, as well as the service progress. The state server in a cluster monitors the running status of each node and the entire cluster, records logs and error information, and coordinates communication and task distribution among nodes. |
File server | A file server is similar to a warehouse of the taxi fleet. It stores all files related to the fleet, including vehicle maintenance records, insurance policies, vehicle location data, and so on. In a cluster, a file server is used to store and share the files and data resources needed by the cluster, ensuring that each node can access and use them. |