Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Open Distributed Infrastructure Management (ODIM) framework provides a way to manage heterogeneous infrastructure resources using a single, standardized interface and data model. The plugins currently use the Kafka message bus to propagate mainly the events from managed resources to ODIM. This is seen as consuming a lot of memory for memory and compute restricted deployments of ODIM

Solution

Image Removed



ODIM RA will add support for using Redis streams as a replacement to Kafka in constrained environments. Note we are not removing support for Kafka. ODIM has an message bus interface for abstracting the actual message bus being used. The current implementation has only a Kafka driver. The proposed implementation will have a Redis driver added. It is easy to add code that lets ODIM switch between message bus implementation at startup time.

Redis streams can support similar functionality to that of Kafka in terms of message delivery semantics. The only significant difference is that Kafka persists messages to the file system by default. Whereas Redis stores data including messages online only. This is not a severe restriction as we can also configure Redis to persist online database onto an on disk store as well.

Image Added

In addition to consuming lesser memory and file system on the host/container this solution also reduces the number of 3rd party components that need to be managed in an ODIM deployment. The current change does not propose support for new languages. Supporting a new language will need us to define a similar message bus interface in the new language, add a driver layer that uses the topic pub/sub semantic in the new language for each of the message bus supportedis on the ODIM RA side only. Plugin side changes will be taken up later with a new proposal.

References

  1. Apache Kafka documentation
  2. Redis Streams