Deployment in Microsoft Azure Cloud

Along with the Azure Kubernetes Service, GoodData.CN requires the following Azure Services:

  • Azure Cache for Redis
  • Azure Database for PostgreSQL

These services should be accessible from the AKS cluster. Make sure to read their specific networking documentation.

Azure Cache for Redis

See the official documentation.

An example of the provisioning service can be seen with the az tool.

az redis create --location westeurope --name gooddata-cn-redis-cache \
  --resource-group gooddata-cn-resource-group --sku Standard \
  --vm-size c4 --enable-non-ssl-port

You can retrieve the required connection properties (host and port) from the service description:

az redis show --resource-group gooddata-cn-resource-group \
  --name gooddata-cn-redis-cache --query '{host:hostName,port:port}' -o json

The following code snippet is an example of the command output. The contents of your output will be different:

{
  "host": "gooddata-cn-redis-cache.redis.cache.windows.net",
  "port": 6379
}

The Redis service is created with authentication enabled and generates two random passwords. You can use either password. Use the following command to retrieve the passwords that were generated from Azure:

az redis list-keys --name gooddata-cn-redis-cache --resource-group gooddata-cn-resource-group

The following code snippet is an example of the command output. The contents of your output will be different:

{
  "primaryKey": "Og0wl1FTsIIxjgzxQ0F0kpSzeykSPStRTWFPSS6nbF4=",
  "secondaryKey": "GN4QFKx8577IksizhGJubfdXH11jgICnst17+f9eRDE="
}

Azure Database for PostgreSQL

See the official documentation.

An example of the provisioning service can be seen with the az tool.

az postgres server create --resource-group gooddata-cn-resource-group \
  --name gooddata-cn-pg --location westeurope --version 11 \
  --admin-user postgres --admin-password <PG_ADMIN_PASSWORD> \
  --sku-name GP_Gen5_4 --public Enabled --ssl-enforcement Disabled

You can retrieve the required host from the service description. The default port is 5432.

az postgres server show --resource-group gooddata-cn-resource-group \
  --name gooddata-cn-pg --query '{host:fullyQualifiedDomainName}' -o json

The following code snippet is an example of the command output. The contents of your output will be different:

{
  "host": "gooddata-cn-pg.postgres.database.azure.com"
}

For more details about this example, see the Azure documentation.