【发布时间】:2011-03-05 22:27:44
【问题描述】:
门户技术评估,我们将为校园和行业创建一个安置门户,以帮助安置学生。该门户将处理大量数据和登录用户,每天大约有 1000 个用户以并发模式。
我应该使用什么技术?以 CakePHP 作为框架的 PHP、Ruby on Rails、ASP.NET、Python,还是我应该选择云计算?其中哪一项最具成本效益?
【问题讨论】:
-
为什么都是大写字母?看起来你在大喊大叫。
门户技术评估,我们将为校园和行业创建一个安置门户,以帮助安置学生。该门户将处理大量数据和登录用户,每天大约有 1000 个用户以并发模式。
我应该使用什么技术?以 CakePHP 作为框架的 PHP、Ruby on Rails、ASP.NET、Python,还是我应该选择云计算?其中哪一项最具成本效益?
【问题讨论】:
这些都可以,这真的取决于你知道什么。如果您熟悉 Python,请使用 Django。如果您喜欢 Ruby,请选择 ROR。这些现代框架是为扩展而构建的,假设您不打算在 facebook 的规模上开发一些东西,那么它们就足够了。
我个人推荐 nginx 作为您的主服务器来托管静态内容,并可能反向代理到 Django/mod_wsgi/Apache2。
另一个重要方面是缓存,请确保使用类似memcached 的内容,并确保框架具有某种插件或易于附加。
【讨论】:
语言选择很重要,因为您必须选择您和您的团队最熟悉的语言,因为您必须开发中大型应用程序。当然用 Python 的框架必须是 Django,用 ASP.NET .NET 或 MVC.NET 随便你用 Ruby ROR 感觉更好,用 PHP 框架太多了。
1000 个并发用户并不多,尤其是取决于用户会做什么。用户将获得大量数据的地方最好使用您想要的任何缓存引擎进行缓存。您需要这样设计应用程序,以便您可以轻松地在真实数据库调用和缓存调用之间进行交换。为此,如果需要,请使用像登录这样的数据对象创建一个对象数组。当用户登录时将一些信息保存在 cookie 中,例如他的最后一次登录、密码以防他想要更改、电子邮件等,这样您在读取模式下对数据库的调用就会更少(选择查询)。
对图像、js 和 css 文件等静态内容使用无 cookie 域。在此域上设置最快的系统,使用最简单的服务器,可能基于 Linux。
对于服务器,最好的建议是要么获得大型机器并使用 vmware 或其他基于 Linux 的解决方案在其上设置 Virtual Box,要么获得更少的服务器,这更好,因为如果在大型服务器上出现故障,如果其中之一出现故障,您将失去一切你仍然可以做一些事情。特别是如果您设置铁路模式。铁路模式很简单,您在一台服务器上设置应用程序服务器(IIS 或 Apache)并使其成为主服务器,而您在同一服务器上设置 SQL 并使其成为从服务器。在其他服务器上,您将 SQL 设置为主服务器,将应用程序服务器设置为从服务器。因此,一台服务器服务于 IIS/Apache 和其他一台 SQL,如果一台服务器停机,您只需要更改 host.etc 中的行,以便在其他地方设置一些东西(我不知道如何在 Linux 中做到这一点)。 静态内容的最后一个服务器。
云计算,你想用就用。您将与一些应用程序共享资源,例如用于 jquery 和 jqueryUI 的 Google API,但是您创建了独特的应用程序,我不相信基于云计算制作应用程序的核心会有任何好处。永久使用大型网站的 CDN。
【讨论】: