Live data from Hacker News

How to Deploy All Day yet Deploy Nothing

mr.si

41–45 of 45 posts

Re: How to Deploy All Day yet Deploy Nothing

#41

Note, I'm definitely not a web developer. I've put static web pages together and fooled around with Rails & Heroku a little. So, as an outsider, I'm curious: How did you all (the web development community) make DEPLOYMENT so complicated? All these packages and environments and VMs and containers and environment variables. Shouldn't deploying something on the web be a few minutes of FTP and then go do something more p…

If you have a static website, maybe. If you have a web application with millions of users, several large and complex data stores, and lots of functionality, things get complicated fast. Most critically, it's not a direct relationship. If you double the number of pieces in your infrastructure, your problems become four times as hard if not more. You might have a database and a web app. But the database gets slow, so y…

Great summary and very recognizable points.

It would be useful if there was a guide on how to scale your app wisely. > So what are the basic steps you will go through? > What are caveats and best practices per step? > What are the important choices and when do you make them?

Could you recommend a resource for answers on these questions?

I took your comment and edited it a bit:

Start: database + web app

Slow database: adding caching layer

Need to backup: starting back up all your users' data

App gets complicated, deployments break: being able to roll back quickly

You have a dozen or more servers. If one goes down everything breaks: adding redundancy to each part of the system and improve backups and recovery.

You need search features: add another kind of database to index your primary database and add more app servers.

Now when things break, it becomes really hard to tell why things are broken: add monitoring and centralized logging. Those are two more kinds of databases and web applications to manage them.

Coordinate multiple pieces of the system for any change you make: add additional software to manage that.

You'll realize your original code was terrible: you take various pieces of your infrastructure and break them into microservices in new languages.

And...

Re: How to Deploy All Day yet Deploy Nothing

#42

Earlier quoted context omitted.

If you have a static website, maybe. If you have a web application with millions of users, several large and complex data stores, and lots of functionality, things get complicated fast. Most critically, it's not a direct relationship. If you double the number of pieces in your infrastructure, your problems become four times as hard if not more. You might have a database and a web app. But the database gets slow, so y…

Was there even a project in which a single person was responsible for all of this? It feels that if you're having scaling issues so bad you need to do all of the things you described, you're already big enough to have 20 people on payroll handling this.

I did all that for some projects two jobs ago. The company had ~50 people elsewhere but only three of us in Europe (and for every responsibility we wanted at least two of us to know about it).

None of it is hard, honestly - it's all well-documented things that a smart person can teach themselves how to do. And I honestly think that having one person take end-to-end responsibility for delivering one piece of functionality results in much higher quality than having twenty people specializing in a single layer as it applies to twenty different deliverables.

Re: How to Deploy All Day yet Deploy Nothing

#43

Note, I'm definitely not a web developer. I've put static web pages together and fooled around with Rails & Heroku a little. So, as an outsider, I'm curious: How did you all (the web development community) make DEPLOYMENT so complicated? All these packages and environments and VMs and containers and environment variables. Shouldn't deploying something on the web be a few minutes of FTP and then go do something more p…

> Shouldn't deploying something on the web be a few minutes of FTP It should be, but well... this is something if you're using PHP. If you're using anything hipster (ruby, iirc python, Java) you're out of luck with that.

FWIW, I used to deploy rails via FTP a decade ago, to unbit hosting (the guys who later did uwsgi).

Re: How to Deploy All Day yet Deploy Nothing

#44

Note, I'm definitely not a web developer. I've put static web pages together and fooled around with Rails & Heroku a little. So, as an outsider, I'm curious: How did you all (the web development community) make DEPLOYMENT so complicated? All these packages and environments and VMs and containers and environment variables. Shouldn't deploying something on the web be a few minutes of FTP and then go do something more p…

> Shouldn't deploying something on the web be a few minutes of FTP It should be, but well... this is something if you're using PHP. If you're using anything hipster (ruby, iirc python, Java) you're out of luck with that.

Tell me, how does uploading some files via FTP provision a database server and create the initial tables required by the application?

Re: How to Deploy All Day yet Deploy Nothing

#45

That's because most of these tools are built by people who are borderline psychos. I don't mean the murderous kind but the kind that is emotionally stunted, working under intense business pressures to deliver (which is really just another group of psychos higher up the hierarchy), and overworked. The best part is that there is nothing new. It's all just the same old stuff except now it's in the cloud and requires 10…

> Oh and there is also networking/NAT, user management, logging, artifact distributions, service discovery, etc. to worry about as well using tools that are just as half-baked. Oh the good old times when I was learning to program. Configuration was just a simple INI parser written in two hours from scratch. Networking was done by Apache, user management meant a database table, logging was done with a function wrappin…

> And somehow everything worked. It worked better and was infinitely more manageable, and was mostly dependency-free.

You and I apparently remember things very differently.

Post reply on HN