Visit Azul.com Support

Cloud Native Compiler Architecture Overview

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

Cloud Native Compiler (CNC) is shipped as a Helm chart and a set of docker images to be deployed into a Kubernetes cluster. Depending on the use case, different components will be deployed.

Cloud Native Compiler Deployment Overview

With the default AWS setup (values-aws.yaml), the setup is divided into three node types (four if you also want to use the optional monitoring stack). Each node has a role label used to set the affinity for the nodes. If you set up your cluster on AWS EKS using the Azul-provided cluster config file, nodes are created with these labels.

Note
Make sure that the instances you run your Cloud Native Compiler on have enough CPU to handle your requests. For example, for AWS m5.2xlarge instances can be used, and on Google Cloud Platform c2-standard-8 instances.

The nodes in a Cloud Native Compiler instance are as follows:

  • Compile Broker - Performs JIT compilations.

    • AWS node type: role=cncserver

    • System Requirements: CPU 8, RAM 32GB, HDD 100GB

  • Cache - Stores information about the JVM that the compiler needs to perform compilations.

    • AWS node type: role=cnccache

    • System Requirements: CPU 8, RAM 32GB, HDD 100GB

    • There is one pod per Cache node. To scale up, create more replicas.

  • Infrastructure - Provides supporting functionality.

    • AWS node type: role=cncinfra

    • System Requirements: CPU 8, RAM 32GB, HDD 100GB. Make sure the disk connection is fast (use SSD) and that the storage volume is persistent between runs.

    • The pods included in this node are:

      • db

      • gateway

      • storage

  • Infrastructure - Non-CNC supporting functionality, such as monitoring.

    • AWS node type: role=infra

    • System Requirements: CPU 8, RAM 32GB, HDD 100GB.

    • Pods included in this node:

      • grafana

      • prometheus

Architecture Overview

Full Installation

In a full installation, all CNC components are available and gateway, compile-broker, and cache will be scaled when needed.

Full installation diagram

Profile Log Service Only

When only the Profile Log Service is needed, a reduced set of CNC components is deployed in the Kubernetes cluster.

Profile log service only diagram