3 ms·
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 limi
by threeseed 5y ago
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.
- stingraycharles 5y agoWhile 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 rarely properly captured in a single rule of thumb such as “always choose simple”.
- embik 5y ago> 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 accept?
- VBprogrammer 5y agoI 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.
- citrin_ru 5y agoIf 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.
- trasz 5y ago> How does a single server protect you against someone in your DC pulling a plug That’s why you have redundant power supplies with separate power cables.
- lrem 5y agoIn short: yes. The recent fire in a French DC saw serious disruption across all kinds of industries in many European countries. I know a sales engineer in a hardware manufacturing place, who was back to pen and paper until the IT provider figured out restores. But it wasn't that bad, as both the clients and competitors were decimated too.
- threeseed 5y ago> CQRS over simple databases, Hadoop while a single server suffices, or even people choosing JIRA over a simple trello board I've heard this from many engineers over the years. But what I've often found is that they were never involved in the decision making process and so aren't aware of all of the business requirements. Once they are made aware usually they agree with the choice. Common example being the business requirement to have high availability.
- cbushko 5y agoIt seems to me that the concepts of high availability, scalability and resilience are things that are just not taught or emphasized at most companies average at all. As Ops, this is a daily battle of education and prod readiness checklists. It is even the simplest things that are ignored such as: - what happens to your db query when you have 1 million records? - what happens when the cache goes away? - do you even use a cache? - why are you treating your cache as a DB? - can we run 2 copies of your service? - can your service scale up and down? - does your service have state? Kubernetes has been a boon for us in this department. Since pods can be moved/deleted at a moments notice we have had to make our software resilient and stateless. Yes, kubernetes is complex at first but it pays off hugely when you are no longer getting paged because 'server X hung and needs to be rebooted'.
- xtracto 5y ago> CQRS over simple databases, I've never understood the hype about CQRS. To me it looks like a nightmare for a tradeoff that you "may" only need at some point in time. Particularly given GDPR, HIPAA, PCI and other compliance frameworks that require you "the right to forget". All books about CQRS talk and talk about the wonders of it and when it comes to that detail they just limit themselves to say "yeah, you should consider it"... but the reality is that the implications are huge.
- lysecret 5y agoI think anything that is growing and is new has a tendency to become complex. Simplicity is a constant balance. You have to allow end endure the complexity to get anywhere new and then re-integrate it by creating order. Such is coding and such is life haha.
- LAC-Tech 5y agoI've yet to see something in the wild that starts simple. Usually it starts too complicated and just gets worse over time.
- locallost 5y agoThat's not always true. Developers like to well, develop, and so they like to implement all of these things irrespective of the fact if those things are actually needed.
- mrweasel 5y agoThat happens way more often that people think. Developers do indeed like to develop things. We frequently run into customers who want to implement some feature or system, which really should just be handled by their load balancer, database system or some standard Unix tool. I currently work with a customer who have an... interesting approach to api-gateways. We already ripped out 75%, because it either does NOTHING or have been replaced by rules in ha-proxy, which we use anyway. The last bit of code can just be integrated directly into the single remaining service behind the gateway. The same client is running Redis, which seems innocent enough. Fairly simple, easy to manage, but it only hold ONE item. A 150kb JSON document... That's can just go in the memory of the signle process which needs it and which is responsible for refreshing the document anyway. Worst case is that it takes 60 seconds more to restart the service.
- citrin_ru 5y agoYou 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.
- moring 5y ago> People like complex tools because they look good on CV Is this really a thing? I have yet to see a single case of it. OTOH what I found more often than I could count is the belief that complex systems or tools are necessary because the problem is complex (it isn't) and the company's situation and requirements are so special (they aren't) -- not intentionally but simply due to lack of time and lack of contemplation of the problems and available solutions.
- citrin_ru 5y agoWell, I don't think anyone would openly tell what they prefer shiny X to boring Y because X would look good on CV. It's just an impression I'm getting sometimes. But what I've seen multiple times: someone is enthusiastic about a new technology and advocates for using it in a project at $job even when a simple, but equally or better suitable for the task option is available. It may sound offensive, but my impression is that many developers are like children - they like to play with new toys and quickly bored by old. And in software industry they have an opportunity to choose new toys and be paid for playing with them. Also I've seen many discussions on social networks where people talk that nowadays it is hard to find a good job if you don't have X, Y, Z on your CV so they may feel pressured to try these new tools even if they don't enthusiastic about them.