DOCA Services
This section provides an overview of the various services provided by DOCA.
DOCA services are DOCA-based products, wrapped in a container for fast and easy deployment on top of the NVIDIA BlueField DPU. DOCA services leverage DPU capabilities to offer telemetry, time synchronization, networking solutions, and more.
Services containers can be found in the NGC catalog, labeled "DOCA" and "DPU", as well as the built-in NVIDIA platform option ("DOCA") in the container catalog.
The following services are not available in the NGC catalog:
DOCA Management Service
For information on the deployment of the services, refer to the DOCA Container Deployment Guide.
DOCA-based containers consist of two main categories:
DOCA Base Images: containerized DOCA environments for both runtime and development. Used either by developers for their development environment or in the process of containerizing a DOCA-based solution.
DOCA Services: containerized DOCA-based products
Development
Before containerizing a product, users must first design and develop it using the same process for a bare-metal deployment on the BlueField DPU.
This process consists of the following steps:
Identify the requirements for the DOCA-based solution.
Review the feature set offered by the DOCA SDK libraries, as shown in their respective programming guides.
Start the development process by following the best practices detailed in the Developer Guide.
Test the developed solution.
After development and testing, the product can be containerized.
Containerization
For this process, NVIDIA recommends using DOCA's base images, available on DOCA's NGC page.
There are three image varieties:
base-rt
– includes the DOCA runtime, using the most basic runtime environment required by DOCA's SDKfull-rt
– builds on the previous image and includes the full list of runtime packages, which are all user-mode components that can be found under thedoca-runtime
packagedevel
– builds on the previous image and adds headers and development tools for developing and debugging DOCA applications. This image is particularly useful for multi-stage builds.
All images are preconfigured to use to the DOCA repository of the matching DOCA version. This means that installing an additional DOCA package as part of a Docker file or within the development container can be done using the following commands:
apt update
apt install <package
name>,
For DOCA and CUDA environments, the images follow a similar pattern, and are combined with CUDA's images:
base-rt
(DOCA) +base
(CUDA)full-rt
(DOCA) +runtime
(CUDA)devel
(DOCA) +devel
(CUDA)
After development and testing, users can start profiling the containerized product in preparation for a production-grade deployment.
DOCA provides base images for both the DPU and the host. For host-related DOCA base images, refer to the image tag suffixed with "-host".
Profiling
As mentioned in the DOCA Container Deployment Guide, the current deployment model of containers on top of the DPU is based on kubelet-standalone. This Kubernetes-based deployment makes use of YAML files to describe the resources required by the pod such as:
CPU
RAM
Huge pages
NVIDIA recommends profiling your product to estimate the resources it requires (under regular deployments, as well as under stress testing) so that the YAML file includes an accurate "resources" section. This allows administrators to better understand the requirements for deploying your service, and also enables the Kubernetes infrastructure to ensure that the service is not malfunctioning after deployment.
After the profiling is complete, the containerized DOCA-based product is ready for the final testing and deployment in production environments.