you are viewing a single comment's thread.

view the rest of the comments →

[–]fschmidt[S] 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (6 children)

Well I don't know what that means. What is "CI" and why do modern people use meaningless acronyms for everything? What is an "infrastructure build"? I write programs, not infrastructure. My applications are in Luan so there is nothing to build. All the code is in Mercurial, of course. Releasing it is just a command in the shell which pushes the code to the server. Why is anything else needed?

[–]ID10T 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (5 children)

Lol ok. The benefits of writing infrastructure as code are massive. Last place I worked at, had some asshole who took 3 days to build a new server from scratch whenever we needed to scale our platform. I wrote scripts to build all our infrastructure, and scaling to meet traffic surges became as easy as a few button clicks. You ever deal with load balanced server clusters? Lambdas? Cloud networking? You have an application that has 10k requests per second on a given API endpoint, you have to deal with that.

[–]fschmidt[S] 2 insightful - 1 fun2 insightful - 0 fun3 insightful - 1 fun -  (4 children)

So by "infrastructure" you just mean setting things up to run? Look at my Mercurial hosting service and look at its source. This includes Luan code and Nginx configuration. Just clone the repo and run the "update.sh" script and everything is configured. So is this a "scripted infrastructure build"?

[–]ID10T 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (3 children)

Sure, if your infrastructure consists of a single server, that would be most of it. Obviously it can get massively more complex if you're building a large platform like Twitter.

Like here's a quick tutorial on setting up an Elastic Container Service that connects to MySQL RDS on AWS with Terraform (sorry about the acronyms lol): https://medium.com/warp9/get-started-with-aws-ecs-cluster-using-terraform-cfba531f7748

Note that it configures all the networking on AWS, putting the containers in a Virtual Private Cloud, configuring security groups, etc...

Working on larger platforms, it's mandatory that there is little to no manual configuration of anything. As when shit goes south and needs to be rebuilt, you have to be able to do it quickly, and can't rely on what's in the brain of 1 or 2 devops engineers. The bus factor alone makes scripting your infrastructure a necessity.

[–]fschmidt[S] 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (2 children)

Obviously it can get massively more complex if you're building a large platform like Twitter.

How many programmers deal with this level of scale? At least 90% of cases are fine with a single server in which case the effort to get down to zero manual configuration isn't worth it.

[–]ID10T 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (0 children)

Not sure what the percentage is. I've had to deal with a pretty massive scale at the last two companies I was at, over ten years now. I think as builders of things, we all hope that our things will become popular. If they do, then you have to be able to scale to meet the demand.

It's been really fun learning how to build an application that can handle tens even hundreds of thousands of requests a second. It's perhaps not a common challenge for most, but it's wild to set up a whole infrastructure that can do that and see it working is highly satisfying.

[–]jingles 1 insightful - 1 fun1 insightful - 0 fun2 insightful - 1 fun -  (0 children)

I used to write my websites in C language.

Twitter is not a complicated website.