Updated 2021-02-21. Note, that I have mainly experience with Cortex and BentoML view is based on cursory overview of their documentation.
- both deploy and serve models via API
- both support major ML frameworks (TensorFlow, Pytorch)
- both have good documentation
|Language||fully Python - easier to modify?||Go & Python wrapper (Updated)|
|Deployment||Delegated to other tools: Docker, Kubernetes, AWS Lambda, SageMaker, GCP, Azule ML and more.||Works currently only with local Docker and AWS EKS, GCP (Updated)|
|Service configuration||from Python||from Python (Updated)|
|Service packaging and distribution||Can be packaged, saved via Python command to management repository with a web dashboard or PyPI||Packaging only via Docker images without explicit support|
|Horizontal scaling||Configured separately in other clustering tools. Working on an opinionated Kubernetes deployment.||Configurable in Cortex. May be less flexible (private cloud deploy may require custom scripts)|
|User interface||CLI, Web UI||CLI|
|Metrics||Prometheus metrics||Prometheus metrics (Updated)|
|User support||Responsive unpaid Slack Channel, but Slack is not the best tool for support||Very responsive Gitter and now Slack|
|Suggest anything else?|
My Experience with Cortex
Here is a blog post on Cortex use at GLAMI. It is a bit outdated take as Cortex now has its own wrapper. Consider using this Cortex client for Python, which is a Python wrapper around Cortex CLI that we use at GLAMI for MLOps. It has couple of extra features, that keep us using it for now.