JanitorTechnology / janitor

The fastest development system in the world.
https://janitor.technology
GNU Affero General Public License v3.0
127 stars 22 forks source link

Support OSX/macOS #23

Open Coder206 opened 8 years ago

Coder206 commented 8 years ago

It would be great if we could run a noVNC of an OSX machine.

jankeromnes commented 8 years ago

Thanks for the suggestion! Do you have any specific use cases or killer features in mind for OSX machines on Janitor?

Coder206 commented 8 years ago

@jankeromnes As a contributor to the Servo project, we often need to ask key people running OSX on their machines to verify things. Having support for OSX machines would eliminate this.

Also, the WebKit project would benefit from the Janitor project.

To add, staying on the cutting edge and allowing OSX machines running beta versions of OSX would also be beneficial.

Coder206 commented 8 years ago

@jankeromnes Can we make an OS wishlist like the #24?

etiennewan commented 8 years ago

Apart of running HackOS inside Docker (to fit into Janitor architecture) (is that even possible ? Some answers from StackOverflow are old but say no, it isn't), the only other possibility I see is to rent a macOS VM (mainly to have XCode). Some services exist but about pricing, it's another story.

@Coder206 So in fact, an OS wishlist would be limited to OSes with Linux kernel, because they have to run on top of Docker.

jankeromnes commented 8 years ago

I'm not sure an OS wishlist would be that useful at this point, because there aren't many OSes out there, and supporting them is tricky enough to justify dedicated issues.

Etienne is right about OSX and Windows not quite fitting into Janitor's Docker container architecture, which is the "magic" piece of technology that allows very efficient scaling (project environments can be as large as 30 GB, but with Docker's copy-on-write feature, you can allow 1000 developers to create many containers very cheaply). Supporting 1000 developers with 30 GB VMs each is another story.

While supporting non-Dockerized OSes will be tricky and expensive, I agree that it's valuable. The Janitor can support non-Docker back-ends, like VMs or even dedicated OSX/Windows servers, but we're not yet able to scale these efficiently and we need to figure out the costs. Maybe we won't have to do that work ourselves though, as services like SauceLabs already know how to run simulators and dedicated servers/devices efficiently (SauceLabs is already integrated with Cloud9, and they're free for Open Source. They focus mostly on cross-browser web testing, but I believe some companies can rent their simulators/servers for other purposes).

Coder206 commented 8 years ago

@jankeromnes @EtienneWan I see your point, I understand!

Coder206 commented 8 years ago

@jankeromnes @EtienneWan I was looking into this. I am trying to understand the difference between Docker for OSX and why it will not work for Janitor.

Despite this, I found something you might want to see, it's called boot2docker (http://boot2docker.io/). It's a lightweight VM for combining Windows and OSX with Docker compatibilities that seem to solve the challenges described above.

etiennewan commented 8 years ago

Boot2docker is a Linux VM which contains Linux binaries available for all Linux systems that are installed on top of B2D. Because macOS, or even BSD systems are based on UNIX kernel, they can't run on top of B2D.

Coder206 commented 8 years ago

@EtienneWan If I understand correctly, it is just a boot2docker is just a Linux distro running on an OSX machine?

etiennewan commented 8 years ago

In order to be more understandable : the server "already in production" for Janitor is running with a Linux system and a container system (Docker). This is the lower level of the architecture and won't change.

With Docker, you can install and run multiple Linux systems in parallels and only them (because Docker is designed this way, to be simple). Instead of using Vagrant (which could have given the possibility to install macOS or Windows in VMs, and to offer similar results), Docker is the only option to have many OS in parrallel without burning huge anmount of HDD.

etiennewan commented 8 years ago

@Coder206 Exactly. It gives the basis of Linux to run some more Linux on top of it, no matter the host is Windows or macOS.

Coder206 commented 8 years ago

@EtienneWan I understand! :) Thank you so much.

Coder206 commented 7 years ago

After reading this article (http://arstechnica.com/apple/2016/06/digging-into-the-dev-documentation-for-apfs-apples-new-file-system/), I am under the impression that Apple's new file system may allow having many portions of the OS running in parallel without additional storage.

Correct me if I read that wrong.

jankeromnes commented 6 years ago

Random note, this might help with hosting: https://xcloud.me/