本文介绍了当您真正搞砸了分布式系统的设计时该怎么办?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将尝试使这个问题相当笼统,以使其他人受益。

I'm going to try and make this question fairly general so it will benefit others.

大约3年前,我实施了集成的CRM和网站。因为我想打动客户,所以我实现了我能想到的最便宜的架构,该架构将中央数据库和网站托管在Web服务器上。我创建了一个桌面应用程序,该应用程序通过Web服务与Web服务器通信(该应用程序在其主办公室运行)。

About 3 years ago, I implemented an integrated CRM and website. Because I wanted to impress the customer, I implemented the cheapest architecture I could think of, which was to host the central database and website on the web server. I created a desktop application which communicates with the web server via a web service (this application runs from their main office).

事后看来,这很愚蠢,因为现在公司发展壮大后,每月的互联网连接速度越来越慢。现在,由于速度问题,台式机软件定期超时,客户​​剩下3个选择:

In hindsight this was rather foolish, as now that the company has grown, their internet connection becomes slower and slower each month. Now, because of the speed issues, the desktop software times out on a regular basis, the customer is left with 3 options:


  1. 购买更快的Internet连接。

  2. 将数据库(和网站)移动到内部服务器。

  3. 重新设计

第一种选择是最简单的,但肯定不是最便宜的术语。第二种选择;如果我们将网站移至内部托管,则客户必须解决诸如过载/不良/离线Internet连接,断电等问题。最后的选择是;客户不愿为我支付一整笔现金来重新设计和重新编码架构,而我负担不起免费这样做(我需要吃饭)。

The first option is the "easiest", but certainly not the cheapest long term. Second option; if we move the website to in-house hosting, the client has to combat issues like overloaded/poor/offline internet connection, loss of power, etc. And the final option; the client is loathed to pay a whole whack of cash for me to re-design and re-code the architecture, and I can't afford to do this for free (I need to eat).

当您搞砸了分布式系统的设计时,有什么方法可以恢复的,以至于所有选项都不起作用?还是减少损失并从错误中吸取教训?我感到很难解决这个问题。

Is there any way to recover from when you've screwed up the design of a distributed system so bad, that none of the options work? Or is it a case of cutting your losses and just learning from the mistake? I feel terrible that there's no quick fix for this problem.

推荐答案


  1. 您没有拧紧。客户想要最便宜的选择,您便给了他们,这就是他们推迟的成本。希望您不要对客户负责。如果他们责怪您,这是一个典型的例子,他们在想要一辆梅赛德斯轿车的同时花了雪佛兰雪。

  1. You didn't screw up. The customer wanted the cheapest option, you gave it to them, this is the cost that they put off. I hope you haven't assumed blame with your customer. If they're blaming you, it's a classic case of them paying for a Chevy while wanting a Mercedes.

为此,

您的客户需要就该做什么做出业务决策。您的工作是尽可能诚实和专业地向他们解释每个选择的后果,并让选择留给他们。

Your customer needs to make a business decision about what to do. Your job is to explain to them the consequences of each of the choices in as honest and professional a way as possible and leave the choice up to them.

请记住,您并没有搞砸!您为他们提供了可以满足他们多年需求的解决方案,他们对此感到满意,直到他们超出了系统的设计基础。如果他们不想在三年后再次维护系统的可伸缩性,那么他们将不得不愿意为此付出代价。软件不是魔术。

Just remember, you didn't screw up! You provided for them a solution that served their needs for years, and they were happy with it until they exceeded the system's design basis. If they don't want to have to maintain the system's scalability again three years from now, they're going to have to be willing to pay for it now. Software isn't magic.

这篇关于当您真正搞砸了分布式系统的设计时该怎么办?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 16:14