Live data from Hacker News

Simple Systems Have Less Downtime (2020)

gkogan.co

31–40 of 220 posts

Re: Simple Systems Have Less Downtime (2020)

#31

To add a point: "simple" can also mean "standardized". Self-hosted or cloud-hosted Kubernetes is a highly complex system. But using it to power your internal tooling (e.g. Jira, Confluence, GitLab, Jenkins, whatever) over classic, manually-installed-on-VMs deployment has the advantage that you can drop in anyone with experience in Kubernetes to manage your workloads.

I would go one level up and ask "do we actually need Jira, Confluence, GitLab, Jenkins, whatever on premise?". The question then is not "K8s or manual way", but "Do we actually need K8s?"

Re: Simple Systems Have Less Downtime (2020)

#32
post #18

Earlier quoted context omitted.

While what you’re saying is, of course, fair, the other side is also true: people often choose to complex a technology “because it’s future-proof!”, while they need just a simple system. There are tons of examples: CQRS over simple databases, Hadoop while a single server suffices, or even people choosing JIRA over a simple trello board. As such, the obvious answer is “it depends”, and making the right trade-off is ra…

> a single server suffices A genuine question that I wonder about: How does a single server protect you against someone in your DC pulling a plug by mistake or your cloud provider being unreliable? If it’s a database it seems like a huge potential for going out of business. I guess if you are running single-server databases you better have a good backup strategy anyway, but is that a risk people and businesses just a…

I think what you are missing is that simple databases in a well run data-centre are surprisingly reliable.

The tradeoffs involved in avoiding some of the simple "the cleaner unplugged the DB server" introduce complexities which may themselves cause outages which are much harder to solve.

Re: Simple Systems Have Less Downtime (2020)

#33
post #25

When people face a new problem they intuitively try to find something they can add as a solution, not thinking about what they can remove to prevent the problem from occurring in the first place. This becomes apparent in the way marketing works. You sell products by promising they will solve a problem. You don't sell things by telling people what they really need to hear, that they just need less of everything. Simpl…

The other side of the coin is that complexity creates jobs because you need individual who guide you through it.

Lawyers and bureaucrats careers are based on this complexity of criminal justice systems and government administration, respectively.

Re: Simple Systems Have Less Downtime (2020)

#34
post #27
post #25

When people face a new problem they intuitively try to find something they can add as a solution, not thinking about what they can remove to prevent the problem from occurring in the first place. This becomes apparent in the way marketing works. You sell products by promising they will solve a problem. You don't sell things by telling people what they really need to hear, that they just need less of everything. Simpl…

Corporate America rewards higher budgets and adding new anything, in all practicality Corporate America rewards complexity. There's no glory in simplicity.

Because then you can employ more of your lawyer buddies to consult on the complexity.

Re: Simple Systems Have Less Downtime (2020)

#35

People don't go out of their way to build complex systems. What happens is that it starts simple and becomes complex as more features are added often with limitations attached e.g. time, money etc. So yes this guy migrated from Marketo to Hubspot and it was simple. But the idea it will simply remain that way is laughable.

You can started from a complex system by using hyped (popular) technologies X, Y, Z. They may be good, but not necessary in every single case. People like complex tools because they look good on CV. And when everyone around uses them it feels like you are doing thing wrong if you have a simpler solution.

Just add K8s to the mix and you are starting from a relatively complex system.

Re: Simple Systems Have Less Downtime (2020)

#36

“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.” – Edsger W. Dijkstra

I think every talk on complexity is meaningless, without taking into account the difference between accidental and essential complexity.

There are problem domains where there is simply a minimal complexity required implicitly. You can’t write an insanely simple program that will render vector fonts, simply because the problem inherently has to have a fixed amount of complexity. Anything more (accidental complexity) is of course bad, and “clean” code or whatever should try to minimize its amount, but it is harmful in my view if we keep believing that it could be made simpler. One really bad example is this list: http://harmful.cat-v.org/software/

Re: Simple Systems Have Less Downtime (2020)

#37
post #15

It should really say "overcomplicated system tend to break more frequently". It is not simplicity that makes for less downtime, it is unnecessary complication that does the opposite. I spend time to complicate my applications a little bit to make sure there is no downtime, something pretty important when one of the largest banks on Earth will stop along with your application. The simplest solutions would typically no…

Indeed. Ships contain redundancy. Should this complication be removed to reduce downtime?

Over-engineering does not mean "making the thing worse". It does if your engineers don't know what they're doing. If they do then the added complexity increases reliability.

Re: Simple Systems Have Less Downtime (2020)

#38
post #18

Earlier quoted context omitted.

While what you’re saying is, of course, fair, the other side is also true: people often choose to complex a technology “because it’s future-proof!”, while they need just a simple system. There are tons of examples: CQRS over simple databases, Hadoop while a single server suffices, or even people choosing JIRA over a simple trello board. As such, the obvious answer is “it depends”, and making the right trade-off is ra…

> a single server suffices A genuine question that I wonder about: How does a single server protect you against someone in your DC pulling a plug by mistake or your cloud provider being unreliable? If it’s a database it seems like a huge potential for going out of business. I guess if you are running single-server databases you better have a good backup strategy anyway, but is that a risk people and businesses just a…

If you have a single server pulling of a plug (or even any HW failure which cannot be fixed quickly) is a very rare even (unless you use cheap desktop hardware instead of a decent server with ECC RAM, hot-swap HDD, redundant PSU e. t. c.).

If instead of using this single server (with manual fail-over in case it would fail) you'll start to create complex HA cluster from multiple servers not having enough people to properly design, test and maintain it you can end up having a less reliable system.

Re: Simple Systems Have Less Downtime (2020)

#39

To add a point: "simple" can also mean "standardized". Self-hosted or cloud-hosted Kubernetes is a highly complex system. But using it to power your internal tooling (e.g. Jira, Confluence, GitLab, Jenkins, whatever) over classic, manually-installed-on-VMs deployment has the advantage that you can drop in anyone with experience in Kubernetes to manage your workloads.

Kubernetes is a complex solution but it solves a very complex problem. It could have been made slightly simpler (and slightly less flexible too) but it's a really good solution IMO. The structure is mostly straight forward and intuitive (at least to me as a developer).

Re: Simple Systems Have Less Downtime (2020)

#40
post #36

“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.” – Edsger W. Dijkstra

I think every talk on complexity is meaningless, without taking into account the difference between accidental and essential complexity. There are problem domains where there is simply a minimal complexity required implicitly. You can’t write an insanely simple program that will render vector fonts, simply because the problem inherently has to have a fixed amount of complexity. Anything more (accidental complexity) i…

Would turning that font rendering into a web service an accidental complexity, or an essential one?
Post reply on HN