You should be using Terraform as your configuration management language. Please do not invent your own. Pretty much your yaml is a pseudo-configuration management language.
That will become one of the biggest blockers because of the amount of automation that already exists.
By leveraging Terraform, you will also have the added benefit of getting all the other pieces of AWS/GCP/azure components for free - and is rock stable and production tested.
Thanks for the feedback! We aren't trying to invent another infrastructure provisioning language, and I agree that Terraform would be the right choice if that was the case. Our YAML is more similar to the configuration of deployment tools like Netlify or CircleCI. We use CloudFormation and Kubernetes under the hood but our goal is to provide a much higher abstraction for data scientists / ML engineers.
You should be using an existing scripting language as your configuration language.
Seriously, Every single fucking stupid infrastructure-deployment-tool/"platform" whatever has it's own, dumb in-house language that winds up basically re-implementing the programming language the tool is written in badly.
- Puppet: Has a stupid ad-hoc config language.
- Terraform: Has a stupid ad-hoc config language.
- SaltStack: Has a stupid ad-hoc config language.
- Ansible: Has a stupid ad-hoc config language.
If you're even considering implementing a tool like this, use a goddamn existing language for your configuration files.
You don't need to use the entire language, but at least use the language's lexer/parser (cf. json/javascript). That way, all existing tooling for the language will work for the config files (ask me about how saltstack happily breaks their API because you're not "supposed" to use it, despite the fact that they have public docs for it). Additionally, people won't need to figure out all the stupid corner cases in your terrible piecemeal configuration language.
Additionally, by making your configuration language an actual language, you also simplify a lot of the system design, because the configuration can act directly against your API. This means using your tool from other tools becomes much more straightforward, because the only interface you actually need is the API.
My understanding is that Seldon and Kubeflow are more geared towards infrastructure engineers. Our goal is to hide the infrastructure tooling so that Kuberentes, Docker, or AWS expertise isn’t required. Cortex installs with one command, models are deployed with minimal declarative configuration, autoscaling works by default, and you don’t need to build Docker images / manage a registry.
[+] [-] sandGorgon|6 years ago|reply
That will become one of the biggest blockers because of the amount of automation that already exists.
By leveraging Terraform, you will also have the added benefit of getting all the other pieces of AWS/GCP/azure components for free - and is rock stable and production tested.
[+] [-] ospillinger|6 years ago|reply
[+] [-] fake-name|6 years ago|reply
Seriously, Every single fucking stupid infrastructure-deployment-tool/"platform" whatever has it's own, dumb in-house language that winds up basically re-implementing the programming language the tool is written in badly.
If you're even considering implementing a tool like this, use a goddamn existing language for your configuration files.You don't need to use the entire language, but at least use the language's lexer/parser (cf. json/javascript). That way, all existing tooling for the language will work for the config files (ask me about how saltstack happily breaks their API because you're not "supposed" to use it, despite the fact that they have public docs for it). Additionally, people won't need to figure out all the stupid corner cases in your terrible piecemeal configuration language.
Additionally, by making your configuration language an actual language, you also simplify a lot of the system design, because the configuration can act directly against your API. This means using your tool from other tools becomes much more straightforward, because the only interface you actually need is the API.
[+] [-] personjerry|6 years ago|reply
[+] [-] tixocloud|6 years ago|reply
[+] [-] scribu|6 years ago|reply
[+] [-] ospillinger|6 years ago|reply
- Deployments are defined with declarative configuration and no custom Docker images are required (although you can use your own if you want)
- You have full access to the instances, autoscaling groups, security groups, etc
- Less tied to AWS (GCP support is in the works)
- We are working on higher level features like prediction monitoring, alerting, and model retraining
- It's open source and free vs SageMaker's ~40% markup
[+] [-] jmcminis|6 years ago|reply
[+] [-] ospillinger|6 years ago|reply
[+] [-] hamolton|6 years ago|reply