Question from a student taking DO370:
"How multi-cloud object gateway (openshift-storage.noobaa.io) is different from ceph rados gateway (ocs-storagecluster-ceph-rgw)? if they both provide s3 compatible object storage, could you let us know how each one are different and when to use what? What will be their use cases?"
OpenShift Data Foundation (ODF) includes two object storage services, with different feature sets and usage scenarios: the Multicloud Object Gateway (MCG), based on the NooBaa open source project, and Rados Gateway (RGW) from Ceph.
The RADOS object storage services are at the core of Ceph, with its block and file services (RBD and CephFS) being internally implemented over RADOS. RGW is an API layer that allows accessing RADOS services using the popular S3 API from Amazon AWS.
Unfortunately the S3 API is not a standard It is not formally defined. There are not compatibility nor interoperability tests. It's a proprietary technology from Amazon which changes it at will. When any storage vendor's claims of compatibility with S3 they do not mean 100% compatibility with AWS implementation of S3. That doesn't stop S3 from being considered the "popular choice" for object storage access by applications.
If you just need fast and reliable object storage services, just pick RGW.
MCG as its name implies is a gateway to other object storage services. It is possible to deploy the MCG backed by traditional block or file based storage services but that is not recommended for production. This is supported only for very limited scenarios such as providing object storage for a Quay container registry or an MTC migration plan.
The MCG is a front-end to multiple backing storage services. These could be cloud providers storage such as AWS S3 or ODF own storage such as RGW.
So if you deploy ODF on an OpenShift cluster running on a cloud provider, the MCG uses that cloud object storage services as its default backing storage. If you deploy ODF on an OpenShift cluster running in physical servers or an hypervisor, that doesn't provide object storage services, MCG uses RGW as its default backing storage. In any case ODF administrators can configure any number of additional backing storage services they wish.
The MCG isolates applications from the connection and availability details of on-premise and cloud-based object storage services and adds features such as replication. You use the MCG when you want to deploy an application into multiple clouds and have all data available for all clouds for locality optimization or disaster recovery.
Some cloud providers may offer a subset of MCG's features, for example you can pay extra for replicating AWS S3 data over different AWS regions, but cloud providers services usually don't work across cloud providers nor across cloud and on-premises.
With the MCG you could have the same application deployed into an OpenShift cluster in your datacenter and also in another OpenShift cluster in a cloud provider, and all data available to both clusters so users could switch between them. Your application would connect to the MCG instance of its cluster and not care about where its data actually resides.