当网站进入社交书签/共享网站时,系统/网络管理员必须担心哪些技术考虑因素?

时间:2020-03-05 18:53:19  来源:igfitidea点击:

我问的原因是堆栈溢出已被Dugg,Slashdotted和Redditted。

首先,这对为网站提供动力的服务器有什么样的影响?其次,系统管理员可以采取什么措施来确保其站点保持最佳运行状态?

解决方案

回答

不幸的是,如果我们尚未计划进行此操作,那可能为时已晚,并且用户体验会很差。

可伸缩性是头等大事。我们可能开始获得的每秒点击数比每月获得的点击数更多。第一道防线是好的编程和设计。确保我们没有做任何愚蠢的事情,例如对每个请求多次从数据库中重新加载数据,而不是对其进行缓存。在出现峰值之前,我们需要进行一些相当实际的负载测试,以查看瓶颈在哪里。

对于非常高的流量,请考虑将一些动态页面切换到静态页面的能力。

具有可扩展的服务器体系结构也有帮助。共享主机通常无法扩展。一台专用机器通常无法扩展。使用诸如Amazon EC2之类的主机进行托管会有所帮助,尤其是如果我们从一开始就计划服务器集群(即使集群是一台计算机)。

我们接下来要关注的是安全性。对于那些坏蛋,我们突然变成了一个更大的目标。确保我们已经制定了良好的安全计划。这是我们应该始终拥有的东西,但是随着使用量的增加,它变得越来越重要。

回答

首先,请问我们是否真的想花数周的时间和数千美元来计划可能甚至不会发生的事情,如果确实发生,则持续大约5个小时。

最简单的解决方案是拥有一种仅允许注册即可切换到页面的好方法。人们会注册,并且风暴过后我们可以给他们发送电子邮件。

更复杂的解决方案依赖于能够快速扩展。首先是软件问题(我们可以连接到另一台服务器上的数据库吗,可以进行负载平衡)。其次,托管解决方案需要支持快速扩展。我想到了Amazon EC2,或者也许是slicehost。通过这两种服务,我们可以轻松启动新实例("将数据库移至其他服务器")并扩展实例("将数据库服务器升级至4GB RAM")。

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

回答

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

我们想尽可能减少瓶颈。我们还希望设计环境,以便无需太多工作即可按需扩展该环境。设计先做好后,当我们遇到麻烦时,就可以减少头痛。

回答

一些想法(关于我在过去和当前项目中使用的想法):
为了提高性能(如果需要),我们可以在服务器前放置反向代理,缓存鱿鱼。当然,仅当我们没有会话密钥并且页面有些静态时才有效(意味着:它们每小时仅更改一次左右)并且没有个性化。
借助鱿鱼,我们可以增强像typo3这样的ated肿且缓慢的CMS,从而在拥有CMS舒适性的同时获得静态网站的性能。

我们可以将大文件外包给Amazon S3之类的外部服务,以节省服务器的带宽。

如果我们能够花一些钱(每月三位数),我们也可以使用内容交付网络。这样一来,我们就可以自动为用户提供扩展性,高可用性和低延迟。当然,页面必须是可缓存的,因此会话密钥和个性化页面是禁止的。如果精心设计并考虑CDN,则我们至少可以缓存某些内容,如图片,视频和静态内容。

回答

正如其他答案所提到的,负载在增加。

我们还会从无聊的人中大量涌入新用户/博客评论/投票,这些人只对破坏行为真正感兴趣。对于允许完全匿名评论的博客而言,这主要是一个问题,在博客中将输入一些令人恐惧的内容。该博客平台可能具有足以阻止它的垃圾邮件过滤器,但是经常需要手动干预才能清理剩余的碎片。

甚至即使没有验证也要求输入用户名或者电子邮件地址,即使有一点进入障碍,也将大大减少恶意破坏的数量。