oam-dev / spec

Open Application Model (OAM).
https://oam.dev
Other
3.04k stars 246 forks source link

Must All Component Run In Container? How and when to support no container runtime? #268

Open iHuangYaoshi opened 4 years ago

iHuangYaoshi commented 4 years ago

How and when to support no container runtime like multicloud ecs or private cloud virtual machine ?

We must see that There are many workloads runing not in docker but based on other runtime framework like edas of alibaba which is provided by the middleware department of each company. It may run in a virtual machine in private cloud , or aws ec2, or alibaba ecs, or just some cgroup runtime(not oci) developed by themself several years ago. Therefore, there is an urgent need to support non container runtime.

wonderflow commented 4 years ago

In OAM spec, non-container requirements could be implemented by extended workloads. We are considering to implement some examples.

resouer commented 4 years ago

FYI, non-container workloads are first-class citizens in OAM by extended workloads, let's say, a Function.

We are adding implementations for extended workload as well (while not in spec repo).

vturecek commented 4 years ago

I would say non-container workloads are currently second-class citizens, and container workloads are first-class, given the container spec is baked directly into the component model and the core workload types apply directly to it. I think this makes OAM fundamentally container-focused.

It's most apparent with process workloads. Processes could benefit from the same core workload types (server, worker, task, and their singleton variants), but currently the only way to do that would be to define 6 separate extended workload types (server process, worker process, etc..).

It's possible that we may need to split the concept of "workload type" into two separate concepts:

Note that not all workload executions would apply to all workload types.