News for hackers. Stuff that matters.
Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by agentultra on Monday March 11, 2019 @11:06AM (#19359478)
I largely agree... but to offer more nuance you need to know what the right amount of automation versus toil is right for your project. It's worth reading the Google SRE [0] books, especially the workbook, if you're thinking about running and operating a service.

Complexity is the enemy in software engineering as much as it is in operations engineering. Sustainable reliability is about doing as little as you can get away with to achieve the reliability results that make your customers happy. That does mean following the advice of TFA and avoiding going straight to k8s for a small indie site that could be deployed with a simple Ansible/Puppet script. However it also means defining what your targets are and having indicators so that you're not relying on your gut instincts either: aim for 60% toil, 40% automation at first. Whatever the right balance is review it regularly as you scale your project up.

You can do a lot with a couple of beefy VPSs and a solid database these days.

[0] https://landing.google.com/sre/books/

Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by lostphilosopher on Monday March 11, 2019 @11:08AM (#19359493)
"Simplicity is a necessary precondition for reliability." - Edsger W. Dijkstra (handwritten annotation to EWD498)
Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by heymijo on Monday March 11, 2019 @07:40PM (#19363996)
If one is looking to triangulate here's that same tenet in systems theory known as Gall's Law [0].

"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system."

[0] Systemantics by John Gall https://books.google.com/books/about/Systemantics.html?id=ql...

Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by ken on Monday March 11, 2019 @12:11PM (#19360042)
Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by lostphilosopher on Monday March 11, 2019 @02:24PM (#19361407)
Ok, maybe you can help settle this for me. I know that phrasing appears in EWD1175, but years ago I came across this[1] which claims it was originally a handwritten annotation to EWD498. So that's how I've always cited it (I prefer Dikstra's phrasing to Hoare's.)

Some searching today found a wikiquote page[2] which led me here[3] also claiming an EWD498 handwritten annotation as the source.

Do you know definitively whether the annotation appears in EWD498?

(I thought at one time I actually found an image with the handwritten annotation, but I can't find it at the moment... Maybe I dreamed that...)

1. http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html 2. https://en.wikiquote.org/wiki/Talk:Edsger_W._Dijkstra 3. http://web.archive.org/web/200011201643/http://www.cbi.umn.e...

Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by kokokokoko on Monday March 11, 2019 @02:28PM (#19361441)
My rule has always been: "write down the entire manual process". Follow the steps and do a deployment and time it. Do you have that much time? Are you likely to make an error? If not, just do it manually. If so, break out the easiest parts and automate that. Then reassess.

Automation should follow the same rule as other things in a business. Only automate when it becomes painful not to. Or if it is trivially simple to.

Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by rakoo on Monday March 11, 2019 @04:11PM (#19362328)
Reminds me of an article I saw sometime back on HN: "Manual work is a bug" (https://queue.acm.org/detail.cfm?id=3197520). Just like you, the author's advice is to go iteratively, with the first step being documentation. As documentation improves you act more as a cpu running instructions, at which points automation becomes clearer, and so on. Not everything can or should be automated, but we definitely could do more.
Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by JohnFen on Monday March 11, 2019 @12:55PM (#19360526)
> Complexity is the enemy in software engineering

For decades, I've been saying this a bit differently: "Software engineering is primarily an exercise in complexity management".

Re:You Don’t Need All That Complex/Expensive/Distracting Inf... by combatentropy on Monday March 11, 2019 @06:29PM (#19363509)
"Controlling complexity is the essence of computer programming." --- Brian Kernighan, 1976