zulip / zulip

Zulip server and web application. Open-source team chat that helps teams stay productive and focused.
https://zulip.com
Apache License 2.0
21.46k stars 7.78k forks source link

Is it feasible to store data on cloud services? #30112

Closed 2023peterV5 closed 4 months ago

2023peterV5 commented 5 months ago

pl redis memcache is connected to the cloud service, then the remaining part of zulip becomes a stateless service. When the number of users increases rapidly, automatic expansion can be performed. Is this idea feasible?

DhruvLamba commented 4 months ago

pl redis memcache is connected to the cloud service, then the remaining part of zulip becomes a stateless service. When the number of users increases rapidly, automatic expansion can be performed. Is this idea feasible?

Storing data on cloud services for Zulip is highly feasible and beneficial, offering scalability, cost-efficiency, and robust security. By integrating Redis and Memcached in the cloud, Zulip can maintain a stateless architecture, enabling seamless horizontal scaling and enhanced performance. Cloud services provide autoscaling and load balancing to handle rapid user growth effectively. This approach ensures high availability, compliance with data regulations, and optimal user experience, making it a strategic solution for Zulip's infrastructure needs.

timabbott commented 4 months ago

@DhruvLamba was that comment generated by AI?

DhruvLamba commented 4 months ago

@DhruvLamba was that comment generated by AI?

Nope. Actually I am specializing in cloud computing and virtualization , hence worked with many cloud providers like AWS, GCP , Azure. AWS provides with the following architecture: Amazon ElastiCache: Fully managed Redis or Memcached service. Amazon RDS: Managed relational database service. Amazon EC2: Scalable virtual servers. AWS Elastic Load Balancing (ELB): Distributes incoming traffic across multiple targets. AWS Auto Scaling: Automatically adjusts the number of EC2 instances in response to load.

timabbott commented 4 months ago

OK. Well in any case, it is feasible to use cloud services, though not an option that we recommend, because it's more work to set up. You can see documentation here:

Or look at docker-zulip if you prevent that style of splitting up systems.

However, there are some algorithms/data flow issues that do not make it trivial to scale to millions of users, especially in a single organization through such techniques, so don't expect that just doing those things will dramatically change Zulip's scaling characteristics.