Posted by lhoff 7 hours ago
every now and then open source is suggested as superior, because being free. Zero comment on code quality, who wrote it, why it came to be in the first place.
Even the argument that a host running open source makes delivery more trustworthy is super biased - major cognitive dissonance is that services based on open tech are very often not open, neither auditable.
There’s a lot of open source being controlled by same large corporations and the part that is not, does not constitute a service on its own.
Then we must admit it takes a lot of care taking care of services nobody else cares about (by means of support).
While open source is important for academia, I think open results are more important for government. Like I don’t care what somebody used to cater to this geospatial data, or that image. I care about the data that went in and went out. Open data is much more important in the era of open weights and closed sources training sets.
The general public is often misled to equate open source to free beer. Well that is also not entirely correct given plethora of not so free licenses. Asp not correct as costs are greater when you put the personnel running that service in the equation. I can see how this argument does not fly well with socialist ideologies, but that’s problem of ideology, not of costs or technology.
Even if we consider only those open projects which are also free - these come with less guaranties than a pair of second hand shoes bought from random store.
Don’t get me wrong - open source is great and we use it daily, but comparing means of distribution with quality of service is really like comparing ябълки и круши (apples and pears in Bulgarian). So it’s indeed time to stop blindly waving the open source flag, but actually try to understand the benefits and challenges it comes with.
Most of my Compose files contain 2 services (1 for app + 1 for database), but some contain 3 and some contain 1. It's incredibly easy to install new software and incredibly easy to shut it down temporarily if you don't need to use it all day.
I'd even argue that some companies would benefit more from using Swarm than Kubernetes. There is a lot of things to take into account when using Kubernetes (let alone setting it up for GitOps), but Docker Swarm can be managed by 1 person.
[1]: A joke, obviously, but it really isn't popular at all
I found setting up gitops via flux quite easy, apart from order of operations, like installing controllers and custom resource definitions before resources that need those CRDs etc.
What were you thinking of things to take into account for k8s over swarm?
The main difference for me is k8s needs a hell of a lot more boilerplate yaml for doing basically anything.
I'll admit I've never used K8s outside of work very much, so I can't really argue on that!
> What were you thinking of things to take into account for k8s over swarm? The main difference for me is k8s needs a hell of a lot more boilerplate yaml for doing basically anything.
I think that's a big one, yes. Stateful services (i.e. volumes) are also much easier to setup and understand with Docker Swarm - which is the same as Compose. The routing mesh[1] is also lovely. I didn't use the Kubernetes routing mesh at work because the infrastructure department didn't allow us to, why is one a reason I was arguing against it; we used a very powerful and complex system without profiting from one of its most powerful feature.
Imagine if you had to compete producing widgets in a market landscape where some hyper-conglomerate would source and distribute all power, define and install all plug standards and, in addition, produce and rent any widgets that saw consumer traction. For decades this is what has come to pass as normal in this domain.
Openness (of varying degrees), standards-adherence, interoperability and competitive markets are connected attributes. In this context open source is an extreme productivity multiplier. Maybe the most potent such development in modern human history. Entities that adopt open source would collectively out-compete in innovation and usefulness any proprietary offering. But for this mechanism of sharing knowledge to thrive and reach its full potential there has to be a real market for digital technology.
On paper this sounds really good but there's a lot of overhead when it comes to maintenance. "Yeah, it's just one more docker-compose.yml, big whoop"(yes kubernetes is pointless overkill if you are the sole user). I've said that too many times and it's not true cause it only takes one small thing that you overlooked and you have to spend a day or two to put everything back up together.
Another thing worth mentioning is that open source can be a good alternative but open source does not mean free or cheap. For instance, I've gotten really into drones and radio communications lately. Take hackrf and the baby brother that is flipper zero - they are both completely open source but neither of them is cheap. In fact, they are really expensive - they are effectively open source ASIC's. I'm willing to bet that north of 80% of the cost is down to the software and not the hardware - because polishing a piece of software to the point where you can pick up a product and use it without effort or a steep learning curve, involves a ton of work on behalf of developers and UX/I people.
And you can't really cut off all big tech - open source phones are BAD, you don't really have a good alternative to google maps and waze, you still heavily rely on search engines and a few dozen services if you start digging deeper. There are also a number of services which do not have an even half-decent open source alternative. Also not everyone has the skills to set up and run these things.
I think the big case in favor of self-hosting whatever you can is that while open source is far from immune to leaks, if it resides in your private network(which it should) without access to the rest of the world, those holes will eventually be patched and you can take action in the meantime - stop the service, block a few ports, etc. The odds of you personally getting affected are pretty low. Now if a leak happens in big tech, there's nothing you can do about it and by the time you learn about it, it's often too late. Honestly, this is the number one reason I'm doing this to myself.
Because it is risky. The more esoteric the knowledge gets, the further it moves away from your core business, the more in-demand the skills are. As an example, maintaining your own metrics and timeseries storage. It takes quite a few skilled hands to do this in house and probably only feasible for larger companies anyway. Or you can simply hand this problem over to DataDog. While they are pricey, it is potentially pricier to build your own internal DataDog-like system, especially if you consider the opportunity cost of pulling your most skilled engineers to build it instead of building your product that your customers are paying for. Companies are perfectly willing to pay a premium to not worry about something, and that includes not worrying about your very skilled engineers leaving and then needing to scramble because no one else understands what has been built.
1. You aren't average. Market forces might not align with your use case. The pricing model might change, or it might happen that you find out later it doesn't scale well for your business.
2. They might leave you suddenly. For example, all the google "products" (quotes because there is actually only one--ads) that have disappeared over the years. Even when an open source dependency suffers a cataclysmic licensing event, you can still fork it and carry on, provided you've both chosen your dependencies wisely and hired the people capable of maintaining them.
3. By choosing a vendor you're making a commitment to ossifying a part of your stack. The observability example is a good one here. At the companies I've worked for who do all their logging, metrics, alerting, etc in-house, developers aren't afraid to use the tools. The tools adapt to the requirements, whether it's cost efficiency, features, whatever. At the companies where we've used vendors everyone's perpetually afraid of increasing the monthly bill, and nobody has a say in deciding what goes on the product roadmap. To be clear, this might be the right trade.
If you need more anxiety, just think about the hottest technology right now that is capable of relating massive amounts of data instantly :-)
SQL isn't ready for AI.
I prefer privately hosted web and mail servers. Before "the cloud", the economy worked just fine and companies had enough money for in-house IT.
By using the nextcloud example, the author of the article is asking the wrong question.
Open source is about licensing, big tech is about scale.
You can use Google docs for free so it takes some dedication to self host that and pay for the server.
Now if big tech charged for everything things would be more like the old days where you might use small tech, such as a local hosting provider that does open source installs.