当网站进入社交书签/分享网站时,系统/网络管理员必须担心哪些技术问题?

问题描述:

我问的原因是堆栈溢出已经Dugg,SlashdottedRedditted当网站进入社交书签/分享网站时,系统/网络管理员必须担心哪些技术问题?

首先,这对网站的服务器有什么影响?其次,系统管理员可以做些什么来确保他们的网站尽可能保持正常运行?

不幸的是,如果在发生这种情况之前您还没有计划好,那可能就太晚了,您的用户会有一段糟糕的经历。

可扩展性是您的首要关注点。您每秒可能会获得比每月更多的点击次数。你的第一道防线是好的编程和设计。确保你没有做任何愚蠢的事情,例如每次请求多次从数据库重新加载数据而不是缓存它。在发生峰值之前,您需要做一些相当实际的负载测试以查看瓶颈的位置。

对于荒谬的高流量,考虑将某些动态页面切换到静态页面的能力。

拥有可缩放的服务器体系结构也有帮助。共享主机通常不会扩展。单个专用机器通常不能缩放。使用诸如亚马逊的EC2之类的东西来托管可以提供帮助,特别是如果您从一开始就计划安装一组服务器(即使您的集群是单台计算机)。

你下一个主要关心的是安全性。你突然成为坏人的一个更大的目标。确保你有一个好的安全计划。这是你应该始终拥有的东西,但在高使用率的情况下它变得更重要。

首先,问你是否真的想花几周甚至几千美元计划一些甚至不可能发生的事情,如果确实发生了,可以持续约5个小时。

最简单的解决方案是有一个很好的方法来切换到一个页面,只是允许注册。人们将注册并在风暴过去后通过电子邮件发送给他们。

更精细的解决方案依赖于能够快速扩展。这首先是一个软件问题(你可以连接到另一台服务器上的数据库,你可以做负载平衡)。其次,您的托管解决方案需要支持快速扩展。想起Amazon EC2,或者也许是slicehost。使用这两种服务,您可以轻松启动新实例(“让我们将数据库移至其他服务器”)并展开实例(“让我们将数据库服务器升级至4GB RAM”)。

如果将所有数据保存在数据库(包括会话)中,则可以轻松拥有多个前端服务器。对于数据库,我通常会尝试使用具有最高可用资源的单个服务器,但仅仅是因为我没有使用数据库复制,并且过去很难做到这一点,至少在使用mysql时是如此。事情可能已经改善。

应用程序设计人员需要考虑扩展(具有更多内核和更高性能的大型机器)和/或扩展(跨多个系统分配工作负载)。 IT人员需要研究如何最好地支持这一点。网络是你首先看到的,因为显然一切都在其上。从边界开始,这通常意味着由多个提供商提供服务的网络负载平衡器和冗余路由器。您还可以查看地理缓存服务和应用程序,如cachefly。

你想尽可能地减少你的瓶颈。您还希望设计环境,以便在不需要太多工作的情况下按需扩展。设计工作在前面,当你获得dugg时,它会减少头痛。

的一些想法(什么,我在过去和当前的项目使用): ,用于提高性能(如果需要的话),你可以把一个反向代理,鱿鱼缓存在服务器的前面。当然,只有当你没有会话密钥,并且页面有点静态(意味着:它们每小时只能更换一次)而不是个性化时,它才有效。 随着鱿鱼,你可以推动像typo3一样臃肿和缓慢的CMS,从而使静态网站的性能与舒适的CMS。

您可以将大文件外包给Amazon S3等外部服务,节省您的服务器带宽。

如果您能够花费一些(每月三位数)的钱,您还可以使用内容分发网络。如果那样的话,你的用户会自动扩展,高可用性和低延迟。当然,你的页面必须是可以缓存的,所以会话密钥和个性化页面是不可能的。如果仔细设计并考虑CDN,您至少可以缓存某些内容,如图片和视频以及静态内容。

负载上升,正如其他答案所述。

您还会吸引那些只对真正有意破坏行为感兴趣的无聊人士涌入新用户/博客评论/投票。对于允许完全匿名评论的博客来说,这主要是一个问题,其中会输入一些可怕的内容。博客平台可能有足够的垃圾邮件过滤器来阻止垃圾邮件,但通常需要手动干预来清理剩余的垃圾邮件。

即使没有进行验证,即使有一点进入障碍,如需要用户名或电子邮件地址,也会大大减少故意破坏的数量。