我们需要创建一个供校园和行业使用的招聘门户网站,以帮助学生就业。该门户网站将处理大量的数据和登录用户,大约有1000名用户同时在线。
我们应该使用什么技术?PHP带有CakePHP作为框架、Ruby on Rails、ASP.NET、Python,还是应该选择云计算?哪种性价比最高?
- 解决方案
解决方案1:
任何一种技术都可以,这实际上取决于你了解哪一种。如果你熟悉Python,可以使用Django。如果你喜欢Ruby,那就使用ROR。这些现代框架天生具备可扩展性,假设你不会开发像Facebook规模的应用程序,那么这些框架就应该足够了。
我个人推荐使用nginx作为你的主服务器来托管静态内容,并可能反向代理到Django/mod_wsgi/Apache2。
另一个重要的方面是缓存,确保使用memcached之类的东西,并确保框架具有某种插件或很容易附加。
解决方案2:
语言选择很重要,因为你必须选择你和你团队最熟悉的语言,因为你们必须开发中大型的应用程序。当然,如果使用Python,那么框架必须是Django,如果使用ASP.NET,那么框架是.NET或MVC.NET,如果你更熟悉Ruby,那就选择ROR,如果使用PHP,那么可用框架很多。
1000名同时在线用户并不是很多,这在很大程度上取决于用户将要做什么。如果用户将获取大量数据,那么最好使用任何缓存引擎进行缓存。你需要设计应用程序,以便可以在真实的数据库调用和缓存调用之间轻松切换。为此,可以使用数据对象,例如对于登录,创建一个对象数组,当然如果你需要的话。当用户登录时在cookie中保存一些信息,例如他的上次登录、他想要更改时的密码、电子邮件等,这样你将减少对数据库的读取模式调用(select查询)。
为图片、js和css文件等静态内容使用无cookie域。在这个域上设置你可以使用最简单的服务器获得的最快系统,可能是基于Linux的系统。
对于服务器,最好的建议是获取一台大型计算机,并在其上使用虚拟机或其他基于Linux的解决方案设置Virtual Boxes,或获取几台服务器,这更好,因为如果大型服务器宕机,你将失去所有内容,如果其中一台宕机,你仍然可以做一些事情。特别是如果你设置了铁路模式。铁路模式很简单,你在一台服务器上设置应用程序服务器(IIS或Apache)并使其成为主服务器,同时在同一台服务器上设置SQL并使其成为从服务器。在另一台服务器上,你将SQL设置为主服务器,并将应用程序服务器设置为从服务器。因此,服务器1提供IIS/Apache服务,另一台服务器提供SQL服务,如果一台服务器宕机,你只需要更改host.etc中的行来将某些东西设置在其他地方(我不知道如何在Linux中执行此操作)。
最后,再有一台服务器用于静态内容。
无论你是否想要,你都将使用云计算。你将与某些应用程序共享资源,例如Google API用于jquery和jqueryUI,但你创建的应用程序是唯一的,我并不认为基于云计算构建应用程序的核心会有任何好处。充分利用大型网站的CDN。