为什么软件公司在项目开发中考虑系统可伸缩性?

为什么软件公司在项目开发中考虑系统可伸缩性?

* 来源: * 作者: * 发表时间: 2020-06-30 0:19:35 * 浏览: 35
从历史上看,软件公司一直认为整理其软件项目的所有开发细节过于繁琐。由于软件开发人员对可变技术和系统要求的复杂解释,软件开发公司发现此过程非常繁琐。因此,在系统可伸缩性方面,企业代表希望与软件开发人员讨论一般的业务需求,而不是讨论所有技术细节。如果企业主开始使用开发人员的语言,则系统的质量将提高一倍。特别是,这将有助于避免许多问题,同时开发人员可以创建基于服务器的复杂解决方案。企业如何与软件开发人员保持密切联系,以了解系统可伸缩性的详细信息?让我们考虑开发新系统的项目的开始。我们设计了五个问题,这些问题将有助于简化谈判并引导他们走上正确的道路。五个主要系统的可伸缩性。根据我们的经验,开发人员在谈论系统的可伸缩性时通常会提出五个主要问题:1.企业了解计划的系统的特征是什么? 2.系统用户的典型操作是什么? 3.系统中是否存在瓶颈?系统的哪一部分较重? 4.系统更重要:容错还是高性能? 5.对可伸缩性的需求在哪里出现?我们希望仔细研究这五个问题,并找出业务代表全面回答的好处。企业是否了解计划系统的功能?幕后:可伸缩性是系统通过升级现有硬件或添加其他新资源来应对不断增加的负载的能力。系统必须维护适当的体系结构以允许后者。换句话说,当后端开发人员开始系统开发时,他们需要知道将来是否有可能扩展系统,这意味着他们的操作功能会增加。因此,他们需要了解企业所有者针对系统特性和进一步开发的计划。示例:假设购买机票的在线服务的所有者将制定计划的网站流量时间表。时间表可以是一天,一周,一个月,一季度或一年。它可以涵盖系统响应所需的时间,包括用户类型和用户活动。使用该计划,开发人员可以揭示站点上的负载变得更加密集的时间。例如,可能临近周末。另外,代理可以在计划中包括高峰负荷点,例如假期,学校假期和促销活动。体系结构中的峰值负载不应影响系统性能,因此规划它们很重要。更好的方法之一是系统负载的图形显示。提示:设定明确的项目目标,制定计划或图表以预测网站流量。同时指出时间间隔。开发人员问有关系统功能的问题,不是因为他们只是好奇。他们必须预见服务器增长的机会。如果公司计划赢得世界,就必须明确说明其目标。假设当10,000个唯一身份访问者访问一个平均每天有300个用户的网站时,该系统必须生存。系统用户的典型动作是什么?幕后:预测典型操作使开发人员能够分析系统上的负载。这也是查看系统用户是否将上传大文件或需要实时聊天支持和其他功能的机会。如何在Web服务器之间分配功能取决于用户操作的典型过程。示例:我们可以参考启动移动应用程序的示例。用于安排会议的基于Web的移动应用程序包括上传照片的选项。开发人员使用中型用户照片加载测试。但是,应用程序启动后,用户便开始以其原始大小上传图片。当用户和图片的数量超过Web服务器的数据存储和处理能力时,系统将无法承受负载并开始崩溃。提示:如果要防止系统不稳定的不利影响,请详细描述典型的操作方案。应特别考虑两点:您希望用户如何与系统交互以及如何实现系统?有哪些瓶颈?系统的哪一部分较重?幕后:任何复杂的信息系统可能至少包含两个瓶颈。瓶颈是一个压力点,在特定时刻系统承受更高的负载。当开发人员知道系统中可能出现的瓶颈时,如果服务器崩溃,他/她可以调整系统的工作。这有助于避免高峰负载期间潜在的用户损失。查找瓶颈的问题与系统可伸缩性无关。但是,最好不要忘记。如果开发人员没有定义瓶颈所在,那么它可以在任何可伸缩性方面取得进步。即使在系统可伸缩性方面一切顺利,也有必要分析体系结构以防止出现瓶颈:入口点可能是瓶颈。例如,如果大量用户同时打开该网站,则他们承受不了高负载,并且没有人继续使用该网站。信息系统瓶颈另一个瓶颈示例是通道宽度不足。想象一下,照片商店中的其中一张照片很快就很受欢迎。成千上万的用户打开了这张受欢迎的照片,但Web服务器的容量不满足此要求。结果,上传的照片停滞不前并对用户产生负面影响。提示:只有有目的的测试才能详细解答瓶颈。但是,这并不意味着不可能评估潜在的瓶颈。列出系统的基本部分。根据您的经验,突出显示较脆弱的区域。与开发团队讨论清单。技术人员的经验可能会帮助您提供新的想法。对系统更重要:容错还是高性能?幕后:不同的系统需要不同的方法。开发人员需要知道主要任务是:容错或高性能,或两者兼而有之。容错问题非常严重,没有唯一的解决方案。它涉及系统每次服务器出现故障时作出响应的能力。换句话说,用户没有达到期望的结果。例如,他或她无法访问网站的其他页面,也无法通过该应用程序支付服务费用。如果不清楚发生了什么,用户很可能会再次拒绝使用该服务。为了避免用户丢失,对系统进行了更好的保护。例如,如果网站不响应用户的请求或会话中断,则可能向用户发送一条消息,其中包含有关事件的简短信息以及有关操作的建议。高性能涉及系统承受数千名用户的能力,同时显示出良好的响应时间。换句话说,系统速度很重要。如果用户花费大量时间填写表单,并且每次等待页面加载缓慢,都会对他们对公司的态度产生负面影响。示例:让我们假设一家银行运营商运行客户查询以接收贷款并填写系统中的数据。会话崩溃,系统同时停止响应操作员。数据丢失,操作员没有其他方法可以访问系统。因此,操作员要求客户等待系统在第二天恢复或返回。客户花了很多时间,现在对这种情况不满意。这意味着系统出现故障。客户忠诚度取决于系统对类似故障的抵抗力。容错能力如果预见到了容错能力,则可能会以不同方式解决可能出现的故障问题。例如,数据可以保存在系统的重复服务器上。然后,银行操作员可以简单地连接到备份服务器并继续工作。另一种方法是不保存数据,但是有机会开始新的会话。因此,银行运营商会向客户提供再次填写信息的信息。这些情况有数十亿种解决方案。确定会话期间的数据丢失是否重要或系统需要执行哪些任务要容易得多。提示:确定要紧的内容更为重要,因为它可以帮助开发人员提前知道应该首先考虑的内容。当开发人员明确其目的后,他们可以列出客户建议。在哪里需要扩展性?幕后:企业主希望开发人员拥有对他们的业务利基有很好的了解,并从一开始就了解他们的信息系统是否需要可伸缩性。通常这些期望是错误的。实际上,开发人员专注于软件项目的特定目标。他们想定义系统的可伸缩性需求出现的位置。它可以是大量数据,应在某个地方保存和处理,也可以是特定时刻所需的复杂计算过程和多阶段操作。示例:假设社交网络计划增加用户数量并开始在Internet上进行营销活动。社交网络代表看到他们需要考虑同时访问网络的次数并增加活动期间的负担。访问者数量的大量增加可能会影响系统性能。当需求的来源变得清晰时,开发人员可以转向特定的任务解决方案。提示:回答当前软件项目中的系统可伸缩性是什么意思?显着意义:基地拥有10,000名用户。您需要扩展服务器的数据存储容量。大约有10,000个用户同时访问您的网站。服务器需要扩展信息资源。您需要可伸缩性。您可以根据自己的回答选择更适合系统集群的方法。 。换句话说,软件开发人员可以根据业务需求在不同服务器之间分配负载。系统可伸缩性是解决随着业务增长而增加负载的问题的必要解决方案。此特定功能使用新的信息资源来扩展系统功能。实际上,可伸缩性可以支持响应速度以及用户系统越来越多的操作,交易或总体性能。对可伸缩性的需求激发了软件开发公司和开发人员寻找有效讨论的方法。如果是第二语言,那么他们对开发策略,功能增长和系统技术特性的增长有共同的理解。
扫描二维码关注我们
确 认