← Back to context

Comment by dash2

5 years ago

> In order to deploy your app outside of Minerva you now need to know something about k8s, or Cloud Formation, or Terraform. This is a skillset so distinct from that of a normal programmer (let alone a financial modeller) that there is no overlap.

This rang a bell. How did deployment become such an arcane skill?

There are too many factors here.

One of them is you don't own where your code runs anymore.

This might scare some people until they realize they can get high availability without waiting 3 months for some server to arrive, but it makes deployment harder.

I still believe the main reason people adopt CI/CD today is that "suddenly" deployment in a complex environment becomes easy and software gets tested. A lot.

  • > One of them is you don't own where your code runs anymore.

    That's not new. The first money I earnt from computers was making websites. We didn't own the webservers; we rented webspace from some company. To deploy it, we literally just uploaded PHP files to a place using an FTP client. It was that simple and it worked.

1. Sysadmins had to find new careers after cloud providers destroyed their livelihood.

2. cloud providers try very hard to lock you in, by offering all sorts of advanced goodies. They tend to come with a learning curve, and they all accumulate. Sooner or later someone comes up with cross-provider solutions, and they too have learning curves.

3. inventing new ecosystems means creating new work for advocates and ninjas. You don't become a rockstar by diligently doing what has been done before, but by finding (or inventing) a niche and becoming a guru.

4. some problems are indeed hard to solve, and the more products try to do that, they more they get complex.

5. everyone thinks they will have Facebook-scale problems, even when they never will.

It is not in the value stream.

Our job as sold by the zeitgeist is to write code for features. Fix bugs. And run production.

The logistical part in the middle, how to get the code from commit to prod, is owned by noone and is not considered worth a budget.

There lie the reason we have tools to configure prod, but nearly no tool to deploy code. Even docker and k8s dodge that.

> How did deployment become such an arcane skill?

Prior to industry wide "solutions" such as Docker, or rather linux namespaces and cgroups, there was no obvious process isolation, so "deployment" was copying tarballs or using Windows installers.

Also, investment banks want "support" from vendors, so hardware was either Windows servers (mostly for Exchange and AD), or Sun Solaris boxes.

So although linux cgroups came around 2006 (?) and namespaces in 2001 (?), banks didn't do too much with linux until after 2005 (when Redhat were providing the aforementioned 'support'). I don't think the 'industry' widely recognised the potential of cgroups and namespaces.

Nahh mate you want to talk to the facilities team, they deal with that sort of stuff.