Services Overview
Omniverse comes with a built-in microservices framework based on Omniverse Kit and its extensions. Its aim is to provide the tooling required to easily and quickly build services, that can leverage the power of any of the Kit Extensions. The services framework has been build in such a way that services can be deployed within a Kit instance, distributed local on a machine, across servers and virtual machines as well as more advanced infrastructures such as the cloud and Kubernetes.
Depending on the use case and the requirements of the service, the developers can choose the environment that they would like to run the service in and in the future migrate to different infrastructure if they so require without the need to change the service itself. All components are loosely coupled and the abstractions allow them to be put together as building blocks to build the set up that is right. These reusable components are used internally to expose features like databases, logging, collection of metrics and monitoring progress updates, and offering them publicly for others to use makes it possible to kickstart the development of your tools and features. The extensive use of these components in key pillars of the Omniverse platform such as Farm have shown that iteration cycles can be shortened thanks to the reusability of these features, and promotes flexibility by ensuring loose coupling is maintained between them.
The ultimate goal is to allow the developer to build an application and, as the demand and functionality increases, to easily take some of the services out of the application and distribute these without the need to change the code of the service itself. This will eventually help building a web of services that can use the power of the datacenter to gracefully scale and empower an application and not be limited by a single machine while the user of the application is fully unaware about these changes.