4 ms·
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, wor
by dkarapetyan 11y ago
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 layers of configuration being held together by heroic manual effort. I know you think chef, ansible, salt, puppet, etc. helps. Nope, tried them all, same thing applies and I'm no longer in the mood to learn yet another DSL for shell scripting.
It's not just AWS. This is pretty much true of every infrastructure/cloud as a service company. They either have too many knobs with all sorts of unintended interactions and half-baked integrations or they abstract away way too much and you have no control over anything and can only deploy a nodejs or django application that follows a very specific rigid structure. Oh and did I mention most of this stuff is insecure by default and if you want to do anything in a secure way then your n-layer configuration nightmare is now 10x worse (probably why most places are looking for 10x programmers). 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.
- vonklaus 11y agoIs there a hello world version of this? I have been trying to pick up IaaS (insanity as a service) and it has been really difficult. At what point does it make sense to use docker? Is it worth learning all of the above crazyness if you have less than 10K people using your service and are 1 person?
- dkarapetyan 11y agoNo, it's all just terrible software managed by even more terrible software. It's all very aesthetically unpleasant and when I look for good software I look for a certain "coherence" that I have not found in any of the cloud providers. If you do things right and stage your artifacting and deployment process properly then that is 90% of the battle I think because none of the cloud providers are magic. Any service they have that promises to abstract away your deployment and configuration pipeline is a bold-faced lie. Heck, they don't even have a way for automating the network topology configuration that isn't a nightmarish maze of JSON (I'm speaking of course of cloud formation). So even if you are using docker, that is in no way a solution to a proper deployment pipeline with properly versioned artifacts and dependencies.
- vonklaus 11y agoso just to be clear, you are a huge fan of bundled cloud services then? can't really praise them enough? Cheers, will stick with getting better at developing software and not worry about the container craze yet. thanks.
- dkarapetyan 11y agoYa, there is no substitute for fundamentals. If you don't have that down then docker is not gonna help. Like C++ it just makes it easier to shoot yourself in the foot harder.
- vinceguidry 11y agoCan't harp on fundamentals enough. The thing to realize is that everything you do in an automated fashion can also be done manually. If you haven't worked out how to do it manually, then when your automated solution fails to work, it's going to be much easier to troubleshoot if you know the basics. Hence why I prefer things like OOCSS over Bootstrap, Capistrano over Docker. Bootstrap forces your markup to conform to your framework, drowning you in incoherent class names that are going to flee your mind the second you have to remember why you put them there. OOCSS makes you treat your markup and CSS holistically, so that when it comes time to troubleshoot a browser bug, you can easily apprehend what your markup was supposed to do and why you did it that way. Docker automates things that don't really need to be automated, unless you've got the kind of problem that really could make use of Docker's abstractions. People think they need Docker when they don't, then get surprised when Docker doesn't magically solve the problem they were hoping it would solve. Make things work in the simple case, and then iterate towards the complex. If you ignore this, then you will eventually find yourself in the situation where you have a deadline to meet that you simply won't be able to meet because you're writing technical checks that your skills won't be able to cash.
- TeMPOraL 11y ago> 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 wrapping over fprintf(), "artifact distributions" meant res/ folder, service discovery was done on paper. And somehow everything worked. It worked better and was infinitely more manageable, and was mostly dependency-free. I can see how the above would cause problems for e.g. Google. But 99% of companies and open-source projects are not Google. Web development is insane.
- jacques_chester 11y ago> 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.