2016-08-24

True Believers And Continuous Wheel Re-Invention

So I was reading this fictionalized discussion between a web developer and a True Believer. And I think I figured something out. Part of the reason why these True Believers are usually young is because they want to be a part of something. And if you get into something that's old -- say, eighteen or twenty-four months -- then that something has a community around it that is already organized in its hierarchy, has some real world experience, and probably has some problems identified with it. Whereas if you get in on the ground floor, there are no rules. Instead of being lectured to about "the correct way to do something", these True Believers can do the lecturing. Thus all the discussion about how "microservices are the shit" and "you have to use Docker" and all that bull. And because enthusiasm is infectious, impressionable young developers who frankly don't know any better get involved and end up re-inventing a whole whack of wheels that have been invented before, this time only slightly different and only directly addressing the weaknesses of the immediately-previous generation.

Containerization is a response to the issue that configuration management is hard. So instead of having to worry about being able to reproduce a particular environment, containers let you scoop the whole thing up and distribute it willy-nilly. It is an avoidance strategy, one that has all kinds of drawbacks of its own -- how many people have containers that still contain a broken version of glibc? -- but everyone sticks their heads in the sand because we've fixed this problem, dammit.

Orchestration solutions are better, in that you have a recipie for building the environment and that can be run again and again and again, and then modified to run in a different way. But it is slower, sure. For me, the trade-off is a no-brainer. It does push your problem down a bit, in that now you have to make sure you have local copies of anything that's going to get installed so that you can install that version again in the future. But like I said off the top -- err, off the middle -- configuration management is hard.

So, in conclusion: get off of my lawn.