.. _section-deployment-scenarios: Observability Framework Deployments *********************************** This section describes deployment options for the |OBSERVABILITY| :ref:`components ` and supporting third-party software used for telemetry data storage and visualization. There are two deployment options: - :ref:`Evaluation Deployment `: This deployment is intended for initial product evaluation only. All |OBSERVABILITY| and third-party components are deployed and run in a single host. - :ref:`Production Deployment `: This deployment is intended for production use. |OBSERVABILITY| and third-party components are deployed separately. Before you Begin ================ Each deployment option requires the |MONITORINGLIBRARY2| component to collect telemetry data from |CONNEXT| applications. It is included with |PRO| as both a shared and a static library, named rtimonitoring2. Before deploying the other |OBSERVABILITY| components needed for your deployment scenario and use case, you must instrument your |Connext| applications with |MONITORINGLIBRARY2|. See the :ref:`section-monitoring-library-2` chapter for details on how to enable and configure it. .. _section-evaluation-deployment: Evaluation Deployment ===================== To evaluate |OBSERVABILITY|, |PRO| enables you to deploy and run |OCS| and third-party components Prometheus, Grafana Loki, Grafana, OpenTelemetry Collector (optional), and NGINX (optional) using Docker Compose™ in a single Linux® x86 host. This Docker Compose deployment allows you to evaluate both :ref:`use cases ` of the |OBSERVABILITY|: real-time remote debugging and operational monitoring. .. warning:: This deployment option is not intended for production use. It is intended for initial product evaluation only. Everything required to install and run |OBSERVABILITY| for evaluation is included in |PRO|. For installation details, see :ref:`section-installation`. For an example you can use to evaluate |OBSERVABILITY|, see the :ref:`section-getting_started`. An evaluation installation provides two deployment scenarios: one without OpenTelemetry Collector and one with OpenTelemetry Collector. Both deployments can be configured to be secure or non-secure and to work on a LAN or WAN. .. figure:: static/compose_promloki.png :alt: RTI Observability Framework without OpenTelemetry Collector :name: FigureDeploymentPromLoki :align: center :figwidth: 100% RTI Observability Framework without OpenTelemetry Collector .. figure:: static/compose_otel.png :alt: RTI Observability Framework with OpenTelemetry Collector :name: FigureDeploymentOTel :align: center :figwidth: 100% RTI Observability Framework with OpenTelemetry Collector .. _section-production-deployment: Production Deployments ====================== In a production environment, the |OBSERVABILITY| and supporting third-party components are deployed separately—potentially on different hosts or pods within a Kubernetes cluster. |MONITORINGLIBRARY2| is installed with |PRO|, and |OCS| must be installed separately from a Docker image. The third-party components Prometheus, Grafana Loki, Grafana, OpenTelemetry Collector (optional), and NGINX (optional) must also be installed separately, if using. The |OCS| component is distributed as a Docker image hosted in `Docker Hub `_. This is the same publicly available image used by the Docker Compose installation described in :ref:`section-evaluation-deployment`, and it requires a valid RTI license to run. For details on how to use the |COLLECTORSERVICE| Docker image, see the `Collector Service article `_ in Docker Hub. A production installation provides several deployment scenarios, described in the following sections. Each scenario notes the built-in configuration(s) required to deploy the |OCS| instances. For more information, see the :ref:`section-built-in-configurations` section. Single Collector Service Instance --------------------------------- This production deployment scenario is the simplest: a single |OCS| instance is deployed to collect telemetry data from multiple |CONNEXT| applications. The instance is configured to store telemetry data in Prometheus and Grafana Loki, and to provide remote debugging telemetry to |ADMINCONSOLE|. .. figure:: static/single_collector_service.png :alt: Single Collector Service :name: FigureSingleCollectorService :align: center :figwidth: 100% Single Collector Service Instance Single Layer of Collector Service Instances ------------------------------------------- This production deployment scenario includes multiple |OCS| instances in a single layer. Each |OCS| instance collects telemetry data from multiple |CONNEXT| applications and makes it available to Prometheus and Grafana Loki. This scenario is not well-suited for remote debugging because :link_tools_admin_console:`Admin Console ` can only connect to a single |OCS| instance at a time. .. figure:: static/single_collector_service_layer.png :alt: Single Layer of Collector Services :name: FigureMultipleCollectorService :align: center :figwidth: 100% Single Layer of Collector Service Instances Multiple Layers of Collector Service Instances ---------------------------------------------- This deployment scenario includes two layers of |OCS| instances. The first layer collects telemetry data from multiple |CONNEXT| applications and forwards it to the second layer containing a single |OCS|. The second layer is configured to store telemetry data in Prometheus and Grafana Loki, and to provide remote debugging telemetry to :link_tools_admin_console:`Admin Console `. The first layer can be horizontally scaled by adding more |OCS| instances to handle more applications or cover multiple geographically distributed sites. These instances forward their data to a smaller number of second-layer |OCS| instances—often just one—that aggregate and export the consolidated telemetry to external systems. .. figure:: static/multiple_collector_service_layers.png :alt: Multiple Layers of Collector Services :name: FigureMultipleCollectorServiceLayers :align: center :figwidth: 100% Multiple Layers of Collector Service Instances Multiple Layers of Collector Service Instances with OpenTelemetry Collector --------------------------------------------------------------------------- In this production deployment scenario, the |OCS| on the last layer is configured to forward telemetry data to an OpenTelemetry Collector. This scenario allows for integration with third-party observability backends other than Prometheus and Grafana Loki. The OpenTelemetry Collector can be configured to forward the telemetry data to an OpenTelemetry-compatible backend. .. figure:: static/multiple_collector_service_layers_otel.png :alt: Multiple Layers of Collector Services with OpenTelemetry Collector :name: FigureMultipleCollectorServiceLayersOTel :align: center :figwidth: 100% Multiple Layers of Collector Service Instances with OpenTelemetry Collector