spec icon indicating copy to clipboard operation
spec copied to clipboard

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

Open iHuangYaoshi opened this issue 4 years ago • 3 comments

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.

iHuangYaoshi avatar Nov 21 '19 17:11 iHuangYaoshi

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

wonderflow avatar Nov 22 '19 02:11 wonderflow

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).

resouer avatar Nov 22 '19 19:11 resouer

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:

  • workload type: what's being executed (container, process, function...)
  • workload execution: how it's being executed (server, worker, task...)

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

vturecek avatar Dec 02 '19 23:12 vturecek