对我来说,它将包括:
stream量通过防火墙路由,然后通过负载均衡器连接到N + 1(Web)服务器。 Web服务器连接到它们后面的群集SQL服务器群集,并通过分布式状态服务运行状态。 这提供了防火墙的安全性,连接冗余(NLB)和数据冗余(集群SQL)。
在任何有经验的系统pipe理员的经典话语:它取决于。 拥有该网站的组织的目标是什么? 如果这个网站是由我哥哥的女友侄女经营的一个爱好论坛,作为她的电脑课的一个实验,那么N + 1负载平衡任何事情都将被认为是极端的矫枉过正,并超出她的预算。
我想说,理想的环境就是满足网站所有者或组织的需求和期望。
对于基本上是电子手册的小型网站来说,办公室内连接到电缆或DSL线路的NAT路由器后面的单个networking服务器可能就足够了。 对于任务关键型网站或电子商务应用程序来说,如果成本合理,让所有东西都具有自动故障转移冗余可能是理想的。
所以,这取决于客户的需求。
理想的networking托pipe环境是这样一种环境,它提供了最初的成本效益,最小的持续维护费用,正在交付的应用程序/站点的适当性能,所有者愿意资助的安全性(包括冗余),以及扩展能力以某种方式提供费用和性能的粒度增加。
这不是一回事
例如,你提出的build议没有地理上的冗余(它确实提出了冗余的networking连接,但是一个妥善安置的龙卷风会照顾到这一点)。 对于某些应用程序来说,这是不可接受的(广告支持的社交网站),但对于其他应用程序则不会(信用卡商家处理服务,金融服务,托pipe的业务线应用程序)。
一些商业上的担忧根本不需要任何的冗余水平,否则将无法负担得起。 具有Web服务器,数据库服务器和SSH服务器的单个虚拟服务器实例是一些网站所需要的。
这不是一个技术问题,真的。 这是一个财务和pipe理问题。 如果pipe理层有钱,我们技术人员可以做任何事情。
我可能添加到这个列表的两件事情:
您可能会考虑将您的networking内容从实际的networking服务器中分离出来。 我们有2个冗余的内容服务器,并通过nfs在networking服务器和开发者机器上安装内容。 这有安全的好处,因为面向公众的机器没有额外的用户帐户或服务运行,并且你可以防止对nfs的root级别访问。 它也消除了保持你的networking服务器同步的需要,因为只有一个共享内容源。
一个理想的环境还必须包括某种站点可用性/响应时间监视。 这可以在本地使用nagios或类似的东西来完成 – 但是更好的解决scheme是监视事物,因为全世界都在使用第三方分布式服务(如mon.itor.us