GoodData Architecture
GoodData.CN is designed as a cloud-native platform, composed of microservices that operate in a Kubernetes environment. These microservices collaborate to provide a scalable and flexible analytics solution. For a detailed breakdown of the microservices and their roles, see GoodData Microservices.
Beyond the core microservices, GoodData.CN relies on several essential components to ensure full functionality:
- NGINX is typically used as an ingress controller to manage incoming HTTP traffic.
- Apache Pulsar serves as the message broker for inter-service communication.
- PostgreSQL is used as the primary database for various purposes.
- Redis is used for caching.
- Persistent storage is handled either through external object storage (cloud-based bucket storage) or local network file system (NFS).
- OpenID Connect (OIDC) identity provider is used for authentication.
Most of these components are included within GoodData.CN’s Helm chart and run as Kubernetes-managed services. However, NGINX Ingress Controller and Apache Pulsar must be installed and configured separately. A minimal out-of-the-box installation might resemble the following setup:
In this configuration, all components are co-located within the same Kubernetes cluster.
In most production environments, however, you will likely integrate external components, such as existing OIDC providers, external PostgreSQL databases, or cloud-based object storage (e.g., AWS S3). A more typical production deployment might look like this:
In this configuration, GoodData.CN interacts with external services for a more distributed and scalable setup.
The configuration of your GoodData.CN installation is defined in its Helm chart, which can be customized before installation. For more details, see GoodData.CN Installation Configuration Options.