瘦弱:当Facebook / Twitter / Youtube(无论如何)从软件的基本理念变为......更大(可能是10万用户?)时,它们是如何发展的?
中型Web应用程序是否存在“最佳实践”增长途径?
真正的问题:在中型网络应用程序项目上指定或出价时,有哪些大问题?在这种情况下,我们将使用PHP框架,但似乎这些通常会推广到任何语言。
因此核心应用程序的程序员(对我来说)是最明显的部分。我们获得了用于管理应用程序的用户管理,用户界面和特殊类。然而,在我看来这不到实际项目的一半。
最终,随着良好的增长,基础设施和元UI问题将成为您的主要关注点,对吗?
1)基础设施:云应用程序空间,数据存储,多数据中心情况下的数据库同步。
2)语言和文化问题:让应用看起来“可爱”或至少在主要的“文化市场”中可用
3)数据索引问题
4)API /互操作性问题(无论是最终用户还是搜索引擎等主要参与者,都有嵌入式应用程序,无论是facebook还是数据的外部访问)。......所以,我很确定我错过了其中的一半,我不知道他们如何优先考虑。
接受的答案here是我寻求答案的一个很好的起点。
答案 0 :(得分:0)
扩展列表中的第一项似乎非常关键,它将帮助您确定您将面临哪种扩展问题,甚至对哪些类别的技术可能有用也不合理。这样做也会涉及第3项和第4项,因为这些是相互关联的。
下面是一大堆问题,可能有助于您在探索性思维集中扩展您的可扩展性思想,它不是您问题的直接答案,但希望是一个起点:
你的应用程序中的功能是什么样的?他们是读重还是写重,或者两者兼而有之? 当您查看数据时,它是否需要始终是最新的实时状态?或者可以延迟吗?它能延迟多远?缓存有帮助吗?缓存是一个简单的部分,也可以考虑如何扩展缓存,这就是硬件的内容。您使用的数据是什么样的?它是高度关系的,还是更像是单独的文档?
您的表现要求是什么? - 应用程序主要是在后台生成报告并通过电子邮件发送出去吗?或者它是否需要在Twitter发生时显示所有当前推文的完美实时地图?用户的更新是否需要立即传播给其他用户?每个用户还是只是其中的一部分?它有多快这么快?页面是否需要在300毫秒或2秒以下加载?
外部服务是否有任何类型的限制,可能是请求限制或速率限制?这意味着您需要对请求进行排队和批处理。您的某些外部数据提供商是否以比处理数据更快的速度向您发送数据?您可能需要对其进行排队,您可能需要使系统的这一部分可以自行扩展,并且可以使用可变数量的“工作人员”来上下移动。考虑将“可单独扩展”的主体应用于系统的其他部分,它会在大型安装中带来好处。
希望这有点帮助:)