Re:Updating Our macOS Open Source Offering
by nas on Friday September 22, 2017 @02:09PM
(#15314387)
I think the TLDR summary is that MacOS doesn't work very well in the datacenter. The hardware is not designed for rack mounting. The OS licensing is not friendly to running VMs. I wonder if this is going to bite Apple in the long run. Building datacenters that run Linux is so much easier and cheaper. Microsoft has been trying to up their game but Apple apparently has no interest or no clue. Maybe that's fine. They are awash in money from their iPhone hardware so why should they care.
But you're right, it needs to scale much better. I'm surprised how many people think macOS VMs are available at Amazon only to visit and see that's not the case. Maybe this is part of the reason for all the new Apple data centers...someday.
Re:Updating Our macOS Open Source Offering
by eridius on Friday September 22, 2017 @03:31PM
(#15315036)
The OS licensing is friendly to running VMs as long as the underlying hardware is Mac hardware.
Building datacenters that run Linux is easier and cheaper, but Apple is a hardware company, they want to sell you hardware, so there's not much incentive for them to allow people to virtualize macOS on non-Mac hardware.
Re:Updating Our macOS Open Source Offering
by boris on Friday September 22, 2017 @01:03PM
(#15313893)
Shameless plug for open source C/C++ projects: if you add support for the build2[1] build system, we will CI[2] your project on Mac OS (as well as Linux, Windows, and FreeBSD with various versions of GCC, Clang, and VC) for free and without any limits.
For those curious about the setup, we have our own infrastructure that runs a custom in-memory Linux-based OS called Build OS[3] that performs build tasks in throw-away VMs (KVM). This is used for all targets, including Mac OS (though we have to run Mac OS builds on a bunch of Mac Mini's due to Apple's licensing restrictions).
Re:Updating Our macOS Open Source Offering
by ksherlock on Friday September 22, 2017 @01:18PM
(#15314008)
I build travis CI jobs on Mac OS because that's the easiest way to get a reasonably modern c++ compiler. I'm glad somebody realizes there's life beyond c++-03
Re:Updating Our macOS Open Source Offering
by geofft on Friday September 22, 2017 @02:54PM
(#15314762)
Travis is still on Ubuntu 14.04, but that ships with clang 3.4 and gcc 4.8, both of which support C++11 just fine, so yeah, I'm confused why 'ksherlock needs macOS. clang 3.4 even supports C++14 (gcc needs version 5; also you might want gcc 5 for the C++11 ABI changes to std::string and std::list).
'ksherlock, if you really want a newer compiler, I'd use http://apt.llvm.org/ . Specifically do something like
Re:Updating Our macOS Open Source Offering
by cwyers on Friday September 22, 2017 @02:50PM
(#15314731)
Apple can't be unaware that this is a problem, right? They have to be one of the biggest users of such a solution for building and testing software on Macs and iOS devices. What do they do? And why aren't they (either themselves or in partnership with someone like IBM) offering a SaaS product for Mac/iOS developers to handle this sort of thing?
Re:Updating Our macOS Open Source Offering
by jdboyd on Friday September 22, 2017 @03:01PM
(#15314815)
It is possible to run macOS on beefier hardware (if you ignore the license) and run more VMs per host (again, if you ignore the license). In Apple's case, they don't have license issues to worry about and thus can do their SaaS/CI stuff in VMs on as many of the beefiest servers that make sense to buy instead of having to fight with Mini's or racking Mac Pros. I expect that most likely they are currently doing that on beefy machines from a cloud hardware vendor like Quantas or Dell.
Re:Updating Our macOS Open Source Offering
by cwyers on Friday September 22, 2017 @03:49PM
(#15315193)
Sure, but Apple has to know that about their license, right? So why haven't they (either directly or with a cloud vendor) provided a SaaS product like this?
Re:Updating Our macOS Open Source Offering
by winter_blue on Friday September 22, 2017 @01:31PM
(#15314101)
Is there any service like Travis CI or CircleDI that lets you add your own slaves? Jenkins let's you turn a box into a slave by running a simple jar file.
It would be nice if CircleCI or Travis CI offered as that would mean not having to pay them for instances and instead turning AWS instances into CircleCI/Travis slaves at a lower per-instance cost. I'd still be happy to pay for their website and for their system managing the slaves.
Re:Updating Our macOS Open Source Offering
by favorited on Friday September 22, 2017 @02:09PM
(#15314382)
It has always been avoided in Jenkins-based systems for security purposes. Traditionally, slaves could request that masters do pretty much anything, as Jenkins treated the master/slave relationship as one large system rather than isolated and restricted nodes.
This has gotten slightly better over time, but the default is still "slave is just another process alongside the master" – you need to setup any whitelisting of slave filesystem or execution permissions yourself.
Re:Updating Our macOS Open Source Offering
by rdli on Friday September 22, 2017 @03:35PM
(#15315076)
We use Travis for Mac & Linux builds of OSS projects (e.g., https://www.telepresence.io). What's frustrating is that even the paid service for Mac is just as bad. We're on the East Coast, so we can use Travis for Mac in the morning, but it's terrible by lunchtime.
Fun fact: before Travis had multi-stage builds, we were able to get multi-stage builds in Travis by using the fact that mac builds were ALWAYS slower than Linux. So we could have our Linux builds create artifacts that were then used by Mac builds ...
Edit: photo of goofy setup here https://www.macstadium.com/datacenters/
But you're right, it needs to scale much better. I'm surprised how many people think macOS VMs are available at Amazon only to visit and see that's not the case. Maybe this is part of the reason for all the new Apple data centers...someday.
Building datacenters that run Linux is easier and cheaper, but Apple is a hardware company, they want to sell you hardware, so there's not much incentive for them to allow people to virtualize macOS on non-Mac hardware.
That said, since they don't make appropriate hardware for this, I'm not sure I'd want to tax a Mac mini with more than 2 VMs anyway ;)
For those curious about the setup, we have our own infrastructure that runs a custom in-memory Linux-based OS called Build OS[3] that performs build tasks in throw-away VMs (KVM). This is used for all targets, including Mac OS (though we have to run Mac OS builds on a bunch of Mac Mini's due to Apple's licensing restrictions).
[1] https://build2.org
[2] https://cppget.org/?builds
[3] https://git.build2.org/cgit/buildos/tree/
'ksherlock, if you really want a newer compiler, I'd use http://apt.llvm.org/ . Specifically do something like
which will get you the latest nightly build of the not-yet-released clang 6.Alternatively I think you can do it like this without sudo: required:
but clang-6.0 isn't on their whitelist https://github.com/travis-ci/apt-package-whitelist . Maybe send in a PR!It would be nice if CircleCI or Travis CI offered as that would mean not having to pay them for instances and instead turning AWS instances into CircleCI/Travis slaves at a lower per-instance cost. I'd still be happy to pay for their website and for their system managing the slaves.
This has gotten slightly better over time, but the default is still "slave is just another process alongside the master" – you need to setup any whitelisting of slave filesystem or execution permissions yourself.
Self hosted: Gitlab
Fun fact: before Travis had multi-stage builds, we were able to get multi-stage builds in Travis by using the fact that mac builds were ALWAYS slower than Linux. So we could have our Linux builds create artifacts that were then used by Mac builds ...