Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔮[RFC #0007] Cluster Deployment for OpenIMSDK #1002

Closed
cubxxw opened this issue Sep 4, 2023 · 0 comments · Fixed by #1055
Closed

🔮[RFC #0007] Cluster Deployment for OpenIMSDK #1002

cubxxw opened this issue Sep 4, 2023 · 0 comments · Fixed by #1055
Assignees
Labels
enhancement New feature or request feature Categorizes issue or PR as related to a new feature. RFC Project design proposal
Milestone

Comments

@cubxxw
Copy link
Contributor

cubxxw commented Sep 4, 2023

RFC #0007 Cluster Deployment for OpenIMSDK

Meta

📇Topics

Summary

This proposal aims to provide a streamlined approach for deploying OpenIMSDK in a cluster environment, considering multiple deployment strategies, including but not limited to helm, sealos, and k3s.

Definitions

  • Cluster: A set of computers that work together to run a set of applications.
  • Kubernetes (K8s): An open-source system for automating deployment, scaling, and management of containerized applications.
  • Helm: A package manager for Kubernetes.
  • Sealos: An efficient Kubernetes installer.

Motivation

  • To streamline and standardize the OpenIMSDK deployment in various cluster environments.
  • To leverage the scalability, redundancy, and high availability offered by cluster deployments.
  • To provide clear documentation and guidance for deploying OpenIMSDK in a cluster.

What it is

This feature aims to provide a guideline and tools required to deploy OpenIMSDK in a cluster. Target personas include OpenIMSDK developers, platform operators, and users who wish to deploy OpenIMSDK in a scalable and efficient manner.

How it Works

  1. K8s Environment Setup: Choose the desired cluster setup tool, such as k3s, sealos, or helm. Set up the cluster according to the respective tool's documentation.
  2. Service Deployment: Deploy OpenIMSDK server components followed by chat components using the respective Kubernetes configurations.
  3. Configuration & Environment Variables: Adjust configuration files and environment variables based on the deployment environment and requirements.
  4. Scaling & Load Balancing: Based on demand, scale the services either manually or automatically using Kubernetes' horizontal pod autoscaler.
  5. Monitoring & Logging: Use tools like Prometheus and Grafana to monitor the health and performance of the services.

Migration

Users currently running OpenIMSDK in non-clustered environments can migrate their data to the new cluster environment. Detailed steps will be provided, including backup, transfer, and restore procedures.

Drawbacks

  • Increased complexity in setup and maintenance.
  • Requires expertise in Kubernetes and the chosen cluster deployment tools.

Alternatives

  • Continue to support traditional non-cluster deployments.
  • Explore other cloud-native deployment tools beyond the mentioned in this proposal.

Prior Art

Several contributors and even the official team have previously provided cluster deployment solutions:

Unresolved Questions

  • Which deployment strategy is the most efficient and reliable for OpenIMSDK?
  • How do we ensure a seamless migration experience for users transitioning from a non-clustered to a clustered environment?

Spec. Changes (OPTIONAL)

There may be a need to introduce new configurations or environment variables specific to clustered deployments. This section will be updated as these changes are identified during the implementation phase.

History

Fix Issue:

@cubxxw cubxxw added enhancement New feature or request feature Categorizes issue or PR as related to a new feature. RFC Project design proposal proposal labels Sep 4, 2023
@cubxxw cubxxw changed the title 🔮[RFC #0007](https://github.com/OpenIMSDK/community/edit/main/RFC/0007-openim-cluster-deployment.md) Cluster Deployment for OpenIMSDK 🔮[RFC #0007] Cluster Deployment for OpenIMSDK Sep 4, 2023
@cubxxw cubxxw added this to the v3.3 milestone Sep 4, 2023
@cubxxw cubxxw self-assigned this Sep 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature Categorizes issue or PR as related to a new feature. RFC Project design proposal
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant