Versions Compared

Key

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

Background

The requirement initial from RESTful API Binary Provisioning Agent which provide interface to operator to upload image objects.

There are 3 key functionality for RESTful API Agent:

  1. Image provisioning (upload)
  2. REST API (POST/PUT/PATCH/DELETE etc)
  3. Support resumable upload

And backend storage is needed, the relationship as following chart.

Image Added

Backend Storage Solution

Also we have several considerations for the backend storage solution:

  1. Data reliability: some mechanism like replication to make sure the data can be recovered.
  2. Cloud native: Support docker or Kubernetes deployment.
  3. Amazon S3 API compatible: Support S3 API which is factual standard.
  4. Multipart upload is better: which can speed up or resume when upload thread is break.

Solution 1: GrideFS

Image Added

Solution 2: MinIO

Image Added

Image Added

So the better solution is MinIO, which can provide Cloud Storage service for Local Controller.d

MinIO Client plugin for RESTful API Agent

dImage Added

MinIO Server and storage service

...

MinIO server deploy by Kubernetes, which has 2 modes: Standalone and Distribute.

The volume of MinIO export also can be used for HTTP server.d