Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support different volume sources for container workload #91

Open
hongchaodeng opened this issue Aug 15, 2019 · 5 comments
Open

Support different volume sources for container workload #91

hongchaodeng opened this issue Aug 15, 2019 · 5 comments

Comments

@hongchaodeng
Copy link
Member

An app usually needs some volume of storage, and the storage could be on host (hostPath) or remote (NAS, EBS).

This is usually provided in the app configuration. I would propose to add a Volume abstraction just like what k8s provides and have container volumeMounts section.

@technosophos
Copy link
Contributor

I think when we discussed this months ago, the feeling was that infrastructure operators are typically the ones who decide which storage backs which things. Again, I'm not sure how infrastructure-neutral this is, but will ask around to see.

@vturecek
Copy link
Member

Yeah I remember discussing this and the general idea was:

The application developer needs to specify the mount path, which the developer's code depends on. Thus, the component schematic has a volume mount path setting.

The infrastructure operator needs to set up some backing storage for volumes, whether it's a network file system or a cloud storage solution. This is infrastructure-specific, and thus it is not done in the Hydra spec.

The application operator decides where volume data is stored based on the available storage solutions provided by the infrastructure operator. Since the storage solution may have platform-specific connection settings (URL, credentials, partition keys, etc.), the application operator would use a volume mapper trait that is specific to a runtime to connect the storage solution to the volume mount in a component.

@resouer
Copy link
Member

resouer commented Aug 22, 2019

"volume mapper trait " looks good to me.

Though developers may have app side requirements like "my awesome app require high performance storage" which could be defined as parameters of app. WDYT? @hongchaodeng

@mikkelhegn
Copy link
Contributor

    resources:
      storage:
        iops-required: 1.000
        read-required: 40 MB/sec
        write-required: 10 MB/sec

Don't put too much in to the numbers, but I think it's the right abstraction in the model.

@hongchaodeng
Copy link
Member Author

hongchaodeng commented Aug 31, 2019

Not sure if this feels intuitive, but in our case developers choose the volume size and storage type.

Specifying iops or performance requirements might sound favorable in building a modern platform, but we are not there yet. Our developers choose local or remote disk and setting the size.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants