I was recently tasked with building out some infrastructure for a few PHP based web applications. This is at a place that runs Linux and Docker in production (yuk?), and of course like every other naive organization out there they use cloud services such as AWS and advertise to the world they run 'containers'.
Normally this is a super easy task. I'd get a few EC2 instances launched with the latest copy of FreeBSD, provision the jails, install PHP/Apache on each, configure different listening ports, deploy the code, then configure the AWS load balancer as needed. It's all very simple and straight forward.
With Linux I was baffled by how complicated things got. I'm no stranger to Linux or it's vast ecosystem of containerization solutions. The world strongly associates "Linux" and "Containers", but when you really get into it, that is far from the truth. Out of the box (unless you are a kernel developer) you really have no accessibility to the supposedly "built-in" containerization technology that everyone boasts about.
In Linux (depending on your 'distro'), you need to setup a 3rd party package repository, then install the container run-time, the tools, along with a ton of other dependencies. All to just get the basic functionality that's available in FreeBSD's base system. To make matters worse, many of these 'open source' 'solutions' are commercial or freemium that ask you to give up your privacy. As if that wasn't enough to deal with, you also have massive variations in configuration methods, functionality, and bugs. Even just across different versions.
In the end, what would have taken me just under a half-hour on FreeBSD took me close to 3 hours on Linux (not because of a learning curve). You also end up with something that in my opinion is sub-par when compared to the elegance of doing it on FreeBSD. Why do people accept this? Maybe they just don't know that something better exists?
We take our FreeBSD for granted, that's for sure.
Normally this is a super easy task. I'd get a few EC2 instances launched with the latest copy of FreeBSD, provision the jails, install PHP/Apache on each, configure different listening ports, deploy the code, then configure the AWS load balancer as needed. It's all very simple and straight forward.
With Linux I was baffled by how complicated things got. I'm no stranger to Linux or it's vast ecosystem of containerization solutions. The world strongly associates "Linux" and "Containers", but when you really get into it, that is far from the truth. Out of the box (unless you are a kernel developer) you really have no accessibility to the supposedly "built-in" containerization technology that everyone boasts about.
In Linux (depending on your 'distro'), you need to setup a 3rd party package repository, then install the container run-time, the tools, along with a ton of other dependencies. All to just get the basic functionality that's available in FreeBSD's base system. To make matters worse, many of these 'open source' 'solutions' are commercial or freemium that ask you to give up your privacy. As if that wasn't enough to deal with, you also have massive variations in configuration methods, functionality, and bugs. Even just across different versions.
In the end, what would have taken me just under a half-hour on FreeBSD took me close to 3 hours on Linux (not because of a learning curve). You also end up with something that in my opinion is sub-par when compared to the elegance of doing it on FreeBSD. Why do people accept this? Maybe they just don't know that something better exists?
We take our FreeBSD for granted, that's for sure.