Romain, Docker, unlike selinux, solves a great number of tangible problems for us with IMO a relatively small tax. It does not have to be the only way. Some of the concerns you bring up along with possibilities were also discussed here: https://s.apache.org/beam-fn-api-container-contract. I encourage you to take a look.
Thanks, Henning On Fri, May 4, 2018 at 3:18 PM Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > > > Le 4 mai 2018 21:31, "Henning Rohde" <hero...@google.com> a écrit : > > I disagree with the characterization of docker and the implications made > towards portability. Graal looks like a neat project (and I never thought > I would live to see the phrase "Practical Partial Evaluation" ..), but it > doesn't address the needs of portability. In addition to Luke's examples, > Go and most other languages don't work on it either. Docker containers also > address packaging, OS dependencies, conflicting versions and distribution > aspects in addition to truly universal language support. > > > This is wrong, docker also has its conflicts, is not universal (fails on > windows and mac easily - as host or not, cloud vendors put layers limiting > or corrupting it, and it is an infra constraint imposed and a vendor > locking not welcomed in beam IMHO). > > This is my main concern. All the work done looks like an implemzntation > detail of one runner+vendor corrupting all the project and adding > complexity and work to everyone instead of keeping it localised > (technically it is possible). > > Would you accept i enforce you to use selinux? Using docker is the same > kind of constraint. > > > That said, it's entirely fine for some runners to use Jython, Graal, etc > to provide a specialized offering similar to the direct runners, but it > would be disjoint from portability IMO. > > On Fri, May 4, 2018 at 10:14 AM Romain Manni-Bucau <rmannibu...@gmail.com> > wrote: > >> >> >> Le 4 mai 2018 17:55, "Lukasz Cwik" <lc...@google.com> a écrit : >> >> I did take a look at Graal a while back when thinking about how execution >> environments could be defined, my concerns were related to it not >> supporting all of the features of a language. >> For example, its typical for Python to load and call native libraries and >> Graal can only execute C/C++ code that has been compiled to LLVM. >> Also, a good amount of people interested in using ML libraries will want >> access to GPUs to improve performance which I believe that Graal can't >> support. >> >> It can be a very useful way to run simple lamda functions written in some >> language directly without needing to use a docker environment but you could >> probably use something even lighter weight then Graal that is language >> specific like Jython. >> >> >> >> Right, the jsr223 impl works very well but you can also have a perf boost >> using native (like v8 java binding for js for instance). It is way more >> efficient than docker most of the time and not code intrusive at all in >> runners so likely more adoption-able and maintainable. That said all is >> doable behind the jsr223 so maybe not a big deal in terms of api. We just >> need to ensure portability work stay clean and actually portable and doesnt >> impact runners as poc done until today did. >> >> Works for me. >> >> >> On Thu, May 3, 2018 at 10:05 PM Romain Manni-Bucau <rmannibu...@gmail.com> >> wrote: >> >>> Hi guys >>> >>> Since some time there are efforts to have a language portable support in >>> beam but I cant really find a case it "works" being based on docker except >>> for some vendor specific infra. >>> >>> Current solution: >>> >>> 1. Is runner intrusive (which is bad for beam and prevents adoption of >>> big data vendors) >>> 2. Based on docker (which assumed a runtime environment and is very >>> ops/infra intrusive and likely too $$ quite often for what it brings) >>> >>> Did anyone had a look to graal which seems a way to make the feature >>> doable in a lighter manner and optimized compared to default jsr223 impls? >>> >>> >> >