Docker-compose setup for GoodData.CN

  • 29 April 2021
  • 4 replies

  • Known Participant
  • 22 replies

Please consider an option to use docker-compose. You could just provide a single file with all the containers required for a typical setup.

K8s is so much an overkill for clients which do not use it in their cloud infrastructure!

For example, we don’t want to deal with it at all until we begin switching our own software to the micro-service architecture. Until then, it’s just not worth paying for it (resources + administration efforts).

With docker-compose, all customers can handle this easily with just a single config file! In case if auto-scaling is really necessary they can scale it manually and then switch to K8s.

It’s usually pretty easy to switch from docker-compose to K8s, but not vice versa :(

Regards, Nick.


Best answer by Robert Moucha 29 April 2021, 19:00

View original

4 replies

Userlevel 2

Hi Nick,

thank you for your proposal. While we use docker-compose for the development of GoodData.CN, this project has already grown out of capabilities that docker-compose can provide. To be more specific, some multitenancy features (like Organizations) are solely dependent on Kubernetes functionality (Custom resources, dynamic Ingress definition). Also when we consider other aspects of application management, like scalability, zero-downtime rolling upgrades, and monitoring, docker-compose and k8s are hardly comparable.

While I fully understand the benefits of a single-file configuration of the docker-compose solution, using it instead of k8s would limit the multitenancy of GoodData.CN.

For more information on how Organizations will be managed in Kubernetes deployment, see the documentation.

Okay, I guess if someone wants to use a single-tenant setup, he would have to dive into your architecture and write docker-compose file by himself :)

Not that I don’t need your K8s multi-tenant solution with out-of-the-box scaling, but it would be nice to have other options.

I have to return to this topic.

We’re providing SaaS for most of our clients. But some clients require on-premise installations. We currently have that as a single server like 4 CPUs and 16Gb RAM. I don’t think it’s appropriate to ask the client to deploy K8s with 3 nodes just for analytics/dashboards. Is there a chance we could have just 1 more server or better just upgrade existing server to add more CPUs and RAM and just have a simple docker-compose installation running?

Hi Nick,

there is a few reasons why we have decided to go this way of 3nodes, Mostly HA quorum and so on. Keep on mind that adjustments of deployment might cause some troubles in regards of capabilities mentioned above, but we do not limit our customers to adjust and modify deployments anyhow for their own purposes. 

We will consider adding simplified docker compose for the type of use cases you are describing with full set of release procedures - QA and so on. However we do not have this on the priority list for short term road-map.