3 ms·
I once talked with someone who was opposed to something like Let's Encrypt or even scripts for renewing a web server's TLS certificates because: "Automating thi
by KronisLV 4y ago
I once talked with someone who was opposed to something like Let's Encrypt or even scripts for renewing a web server's TLS certificates because: "Automating things makes you forget how to do them." That was an... interesting argument.
Especially because even when I don't use Let's Encrypt or another ACME provider, such tasks are very easily automated by Ansible. Better yet, you can automate reminders and alerts towards any tasks that need to be initiated manually (e.g. provide the new certificate in some Ansible repo directory, let the automation care about actually deploying it).
Furthermore, doing things manually is an excellent way to end up with wildly inconsistent states, be it configuration, code style, database migrations, service deployments or anything else, really: https://blog.kronis.dev/articles/my-journey-from-ad-hoc-chaos-to-order-a-tale-of-legacy-code-services-and-containers https://blog.kronis.dev/articles/my-journey-from-ad-hoc-chao...
At the same time, however, I recognize that some things just aren't easy to automate (e.g. front end testing in some stacks, or integration tests that need a DB instance when you can't just easily launch and migrate Oracle with a bunch of test data in containers, even with Oracle XE; in projects that don't use MySQL/MariaDB/PostgreSQL or something more suited for that) and that sometimes wasting time on those isn't a worthy pursuit.
> But I do not always strive to automate the task at hand entirely.
In other words, I largely agree with this - automate everything that is easy to automate (e.g. unit tests, server config deployments, CI/CD builds and so on) and only consider all of the hard stuff a must if you really need to (e.g. compliance or requirements).
- maliker 4y agoIf the automation script is commented well, it also becomes the documentation for the procedure. So in that sense it helps you remember as well.
- someone_eu 4y ago> "Automating things makes you forget how to do them." That was an... interesting argument. Let me put it differently: Automating things significantly increases the cost of changing them. While you are doing it manually, you have the knowledge, the flexibility and the power to change and adjust if needed. When automated, you lose knowledge, flexibility and control over the task. It can be good or bad depending on the situation. When we talk about strictly defined actions with a high risk of human error, the automation is indeed necessary. Its power of resisting the change is helping us. When you automate a fuzzy, volatile, complex decision-making logic, it becomes a curse rather than a blessing. It is almost impossible to do it correctly, with test coverage and verification and debugging and covering all of the corner cases.. (How often do you see proper QA for the infrastructure glue?) And even if you do invest enormous amount of resources, then you put all that knowledge of the process in a black box and lose the key. Which leads to the situations, where to change the process hidden in a box, people choose to create new layers of automations around it rather than look inside. Refactoring a mess of a process is hard. But refactoring a mess, which has been automated, is simply impossible. (Not saying this justifies the argument against Let's Encrypt though)
- perrygeo 4y ago> Automating things significantly increases the cost of changing them. I've described this as the difference between traveling by train vs car. When you're manually driving a car, you can go anywhere your tires are capable of driving. You have full freedom, full optionality, to change direction. When you're sitting on a train (traveling by automation), there's a set schedule, set stations and pre-built tracks. There's no option to deviate from your itinerary at all. Moving train tracks takes too much time. By laying the tracks up front, automation reduces control/visibility and ossifies your decisions in a way that limits future options. The tradeoff of is that you can sit back and read a magazine while a machine does the work. People generally don't like to hear this - they immediately see the benefits but are very likely to ignore or brush off the additional complexities and contraints that automation adds.
- dceddia 4y ago> Automating things makes you forget how to do them I understand this anxiety and have definitely felt it before. In most of those cases it turned out that once I automated the thing, it was actually a relief, because now not only do I not have to remember the specific details, I also have a script that I can pull up and read if I need to remember those details. Automation can be great documentation sometimes. (big emphasis on sometimes though)