为什么软件公司会考虑项目开发中的系统可扩展性?

为什么软件公司会考虑项目开发中的系统可扩展性?

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