# I would like to avoid setting up a Linux Server



## IT_Architect (Jan 12, 2018)

I would like to avoid setting up a Linux Server, but I have a requirement for a project that distributes its database drivers, app broker, and web server, as Linux binaries only.  These are not Open Source.  I haven't touched Linux in 10+ years.  Any thoughts?

Thanks!


----------



## scottro (Jan 12, 2018)

A small Linux VM in VirtualBox or Bhyve?   Do these apps require a specific distribution of Linux?  VoidLinux is nice and small--actually so is Arch.  Even if it requires CentOS or Fedora, you can do a minimal install, avoiding X if not needed.


----------



## herrbischoff (Jan 12, 2018)

IT_Architect said:


> database drivers, app broker, and web server, as Linux binaries only



There you have it. Basically all the essential components require Linux. You could of course try to run everything manually on FreeBSD, hoping the Linux binary emulation layer does its magic for you. I would strongly recommend against it though, you'll probably run into much more pain trying to troubleshoot this setup than it's worth it to avoid Linux.

Here's what I would do: run a bhyve virtual machine with the vendor's preferred Linux distribution for all the components that absolutely require it on a FreeBSD host. For other components that may not require Linux, run them directly on the host. I have successfully set up several applications/installations this way, effectively treating the Linux guest as a "virtual appliance", auto security patches enabled and all. Usually I don't need to touch the Linux VM and can happily continue to run FreeBSD servers.

Under certain circumstances this may not be an option, like software that leverages hardware optimizations or needs direct GPU access. If it's a general application, you should be fine. In my case, one example would be a proprietary mail server software running on Debian 8 as a guest with its actual mail storage being accessed via NFS from the FreeBSD host.


----------



## SirDice (Jan 15, 2018)

IT_Architect said:


> but I have a requirement for a project that distributes its database drivers, app broker, and web server, as Linux binaries only. These are not Open Source.


This basically means you don't have much choice. 


herrbischoff said:


> Basically all the essential components require Linux. You could of course try to run everything manually on FreeBSD, hoping the Linux binary emulation layer does its magic for you. I would strongly recommend against it though, you'll probably run into much more pain trying to troubleshoot this setup than it's worth it to avoid Linux.


I can only agree. I would also add support to that. It's quite likely that running those binaries on FreeBSD would mean you won't get support. Stick to whatever Linux distribution they recommend.


----------



## azathoth (Jan 16, 2018)

IT_Architect said:


> I would like to avoid setting up a Linux Server, but I have a requirement for a project that distributes its database drivers, app broker, and web server, as Linux binaries only.  These are not Open Source.  I haven't touched Linux in 10+ years.  Any thoughts?
> 
> Thanks!


linux binaries?


----------



## Terry_Kennedy (Jan 17, 2018)

SirDice said:


> I can only agree. I would also add support to that. It's quite likely that running those binaries on FreeBSD would mean you won't get support. Stick to whatever Linux distribution they recommend.


It might be worth asking the software vendor if they would add support for FreeBSD. I did this with the vendor of a DEC Alpha emulator (EmuVM) and the author added a FreeBSD version at no additional charge. I provided porting advice and a channel to the relevant FreeBSD developers when FreeBSD issues were found (such as pr218572).

Depending on what other platforms are already supported, a FreeBSD port may produce other dividends such as an easier port to Mac OS X, which may be a helpful argument to make.


----------



## herrbischoff (Jan 17, 2018)

Terry_Kennedy said:


> such as an easier port to Mac OS X



Your points are good, except this one. As macOS is one of the last platforms one would run Linux-originated server software on, I don't think this would be a particularly effective argument.


----------



## sko (Jan 17, 2018)

The linux compatibility layer is nice, but for most applications that rely on specific 'linux-isms' (like some weirdness of the linux sysfs) it is a nightmare to a) get it working and b) keep it working over updates. I would not recommend this for a production environment.

If you have to run several other "linux-only" applications, you might take a look on SmartOS, which provides LX-zones. These zones feel and look like a "normal" linux system and can be provisioned e.g. with a pre-tailored alpine linux image.
These zones run on bare-metal, so there is no VM-overhead as compared to bhyve. A nice bonus is the ability to use dtrace inside the LX-zone.

If that software stack is available as a ready-to-run VM-image/appliance, I'd go with that any time regardless of the overhead. You essentially spare yourself any manual setup, administration and especially bugfixing of their software on your side and if something goes belly up it means their updates broke it, so they have to fix it (you have a support/maintenance contract, right?). From my experience, most proprietary linux software always comes without ANY proper documentation/manuals and includes a huge mess of setup- and "helper"-scripts that give you nightmares for weeks - avoid touching such software like the plague or you will be doomed to constantly putting out dumpster fires.


----------



## Terry_Kennedy (Jan 17, 2018)

herrbischoff said:


> Your points are good, except this one. As macOS is one of the last platforms one would run Linux-originated server software on, I don't think this would be a particularly effective argument.


I don't know - the supported platforms for EmuVM when I asked the author to add FreeBSD support were Linux and Windows. Apparently a lot of his customers run on Windows. So the FreeBSD port got him most of the way to OS X as well.

Apple doesn't seem to have been particularly consistent with their message about Mac OS X as a server platform - they discontinued and reinstated their Xserve rackmount server line a couple of times (once in the PowerPC era and once in the Intel era).


----------



## azathoth (Jan 17, 2018)

I say write you own software......to hell with vendors.

some cool stuff:
gnoga.com
happstack.com
aidaweb.si
gforth
lisp on lines
swi prolog appserver
picolisp
racket and continue
awful from chicken scheme


----------



## SirDice (Jan 18, 2018)

azathoth said:


> I say write you own software......to hell with vendors.


That's actually rarely an option. You need proper developers for that, and lots of time. Not to mention the inevitable maintenance and bug fixing. So in the end it's typically cheaper just to buy something off the shelf and get support for it. Especially if you run a business that has nothing to do with (software) development in the first place.


----------



## herrbischoff (Jan 18, 2018)

Not to mention that, following azathoth's recommendation, you would have to have developers on hand which are fluent in Haskell, Smalltalk, Lisp and other rather unusual languages. Languages which may be perfectly suited for the task, even preferable on technical merit alone, but are not common to the majority of coders. Another example where pesky reality interferes with an otherwise perfect theoretical plan.


----------



## azathoth (Jan 19, 2018)

SirDice said:


> That's actually rarely an option. You need proper developers for that, and lots of time. Not to mention the inevitable maintenance and bug fixing. So in the end it's typically cheaper just to buy something off the shelf and get support for it. Especially if you run a business that has nothing to do with (software) development in the first place.



I respectfully disagree.
I think with your own devs you can get just what you need, not some giant assumption pile that might lead to other sales ins.
but hey I am the kind of nut who thinks ha-proxy load balancer and servers with no SAN or virtualization are good.
Simple and horizontally scale!

raid 10 etc or hek check out mogileFS
I am also interested in werc.cat-v.org +mogileFS


----------



## azathoth (Jan 19, 2018)

herrbischoff said:


> Not to mention that, following azathoth's recommendation, you would have to have developers on hand which are fluent in Haskell, Smalltalk, Lisp and other rather unusual languages. Languages which may be perfectly suited for the task, even preferable on technical merit alone, but are not common to the majority of coders. Another example where pesky reality interferes with an otherwise perfect theoretical plan.



On no I meant pick one.
You want simplicity.
www.cat-v.org is a site I think that represents a lot of what I like.
skip virtualization agile scrum devops etc.
use shell and servers and load balancer
Show your developers that they need to code not be library monkeys and continuous integration junkies.


----------

