谈谈用ASP.NET开发的大型网站有哪些架构方式(成本)

简介:

转自:http://www.cnblogs.com/ms0017/archive/2011/08/17/Microsoft-NET-Mono-MySQL-MVC-Linux-Large-WebSite.html

在上篇文章里(http://www.cnblogs.com/ms0017/archive/2011/07/26/2117676.html),列举了国内外用ASP.NET开发的大型网站有哪些。 最后提到了用.NET开发的大型网站和LAMP/JAVA平台的成本比较。其实在很多时候,收费的不一定就比免费的成本更高。因为开发一个网站要使用哪个 平台的技术更合适,需要考虑很多种情况(除了开发技术本身,还要考虑人工,开发效率,时间,后续的支持,维护等等),要综合计算成本才行。微软平台本身虽 然是收费的,但总体的成本并非一定比LAMP/JAVA高,上篇文章列举的国内外的那么多基于ASP.NET开发的大型网站就是例证。尤其是在开发效率上,无论是C#开发语言,还是免费的开发工具(Visual Studio Express,或者MonoDevelop),.NET明显比其他两个平台更胜一筹。而这一点正是互联网企业所需要的。效率就是生产力。并且,由于有Mono(http://mono-project.org/)这个开源框架的存在,.NET技术也可以在linux/FreeBSD等开源服务器上使用。使.NET完全可以实现跨平台应用。据此,我们可以分windows/linux两种方式来架构我们的ASP.NET网站:

一、Windows平台
在Windows平台下开发大型网站,很多人首先想到的是Microsoft软件高昂的许可费,觉得成本一定很高。其实,这里有个误区。我们开发ASP.NET网站,web服务器完全可以用Windows server的WEB版本windows web server 2003/2008,它们并不贵(参考http://hi.baidu.com/slmt/blog/item/d1533a12a6cc335af919b863.html,才3k多rmb。并且注意了,一个系统是一次性买,买了可以用N年,现在还有很多大型网站在用win2003,想想已经用了多少年?而人员工资则是月付,几年下来成本也很高)。贵的地方,应该是SQLServer数据库和支持它的windows server企业版。它们确实很贵。但我们开发网站不一定非要用SQLServer啊。数据库可以使用在linux下部署mysql,postgresql等开源数据库,并且也可以考虑用mongodb等 开源NOSQL数据库。一般的中大型网站有十几台web服务器就足够了(也就是3w多人民币)。如果再大点,有个百八十台web server,那也不过才30w人民币而已(当然,只是指软件)。网站如果真能做到那种规模,这点钱应该也不算什么了吧。当然,如果你真能做到像 myspace那种超大型的.NET网站,你应该可以直接找微软要优惠价来批量购买了。呵呵。

二、Linux平台
如果真的不肯在服务器上花一分钱,就要用完全免费的。我劝你根本不必因此而放弃.NET强大的生产力,而选择其他平台,因为还有Mono(提示:mono现在已是suse,ubuntu,debian等linux发行版中的默认安装环境,并且ubuntu本身就有很多代码是用c#写的)。你可以通过类似Linux+Apache/Nginx+Mono的组合(或者用Jexus web server[官网])来代替Windows+IIS来架构完全免费的ASP.NET WEB SERVER。目前国内外也有了很多基于mono开发的网站案例,如:
http://www.stockren.com/
http://www.msannu.cn/
(此外,还有像Unity3D,Xamarin等国外知名公司在基于mono开发应用)
在linux上架设mono的方法有很多,可以参考如下博文:

配置linux(apache) + mono 下运行 asp.net
http://www.cnblogs.com/hcl0208/archive/2010/10/25/1860173.html
Ubuntu10.10下Mono2.10+Nginx+fastcgi 部署asp.net网站
http://www.cnblogs.com/xiaogangqq123/archive/2011/02/28/1967345.html

三、补充:

见不少同学反映本文不够给力,没有真正的提到实际的架构,而只是泛泛而谈windows和linux。其实关于大型网站架构的文章网上有太多太多 了。如下图,是国内某基于asp.net的大型网站的架构设计图,其实不管是.net还是java/LAMP,不管什么平台,道理都一样。(大图)

在本架构图中,如果把iis替换成apache,SqlServer 替换成mysql,也一样成立。合理的架构是跟平台无关的。最看不惯的是某些业内所谓的高手,说大型网站用asp.net不行,没有java/LAMP 好。相信看了这个架构图,再想想bing,hotmail,myspace,match,qidian,dangdang,m18,vancl等等基于.net开发的大型网站,就应该闭上他们的嘴!大型网站的开发,人的能力和合理的架构才是关键所在!



本文转自武沛齐博客园博客,原文链接:http://www.cnblogs.com/wupeiqi/archive/2013/05/16/3082248.html,如需转载请自行联系原作者

目录
相关文章
|
4天前
|
存储 监控 API
构建高效微服务架构:后端开发的现代实践
【5月更文挑战第9天】 在本文中,我们将深入探讨如何在后端开发中构建一个高效的微服务架构。通过分析不同的设计模式和最佳实践,我们将展示如何提升系统的可扩展性、弹性和维护性。我们还将讨论微服务架构在处理复杂业务逻辑和高并发场景下的优势。最后,我们将分享一些实用的工具和技术,以帮助开发者实现这一目标。
|
2天前
|
监控 API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第12天】 在现代软件开发的浪潮中,微服务架构已经成为了设计复杂系统的首选模式。它通过将大型应用程序拆分成一组小而专注的服务来增强系统的可维护性和可扩展性。本文将探讨微服务架构的关键概念、优势以及如何在后端开发中实现一个高效的微服务系统。我们还将讨论一些常见的挑战和最佳实践,以帮助开发者避免陷入常见的陷阱。
15 6
|
3天前
|
Kubernetes API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第11天】 在现代软件开发的快速演变中,微服务架构已成为企业追求敏捷性、可扩展性和技术多样性的关键解决方案。本文旨在探讨如何构建高效的微服务架构,并分析其对后端开发的影响。我们将通过一系列最佳实践和策略,展示如何优化服务的独立性、弹性和性能,同时确保系统的整体稳定性和安全性。文章还将介绍容器化、API网关、服务发现和分布式追踪等关键技术的应用,为后端开发者提供一份全面的微服务实施指南。
|
3天前
|
设计模式 监控 API
构建高效的微服务架构:后端开发的新范式
【5月更文挑战第11天】 在当今的软件开发领域,微服务架构已经成为一种流行的设计模式。它通过将应用程序分解为一组小型、松散耦合的服务来提供高度可扩展和灵活的解决方案。本文将探讨如何构建一个高效的微服务架构,包括选择合适的技术栈、设计原则以及应对常见挑战的策略。我们将深入讨论如何确保系统的可维护性、可靠性和性能,同时考虑到安全性和监控的需求。
|
4天前
|
监控 持续交付 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第10天】在现代软件开发领域,微服务架构已经成为一种流行的设计模式,它通过将大型应用程序拆分为一组小型、独立和松散耦合的服务来提供更高的可伸缩性和灵活性。本文深入探讨了微服务架构的设计理念、实施步骤以及面临的挑战,并提出了一套实用的策略和最佳实践,帮助后端开发者构建和维护高效的微服务系统。
|
6天前
|
Kubernetes 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第8天】 随着现代软件开发的不断演进,微服务架构已成为众多企业解决复杂系统问题的首选方案。本文深入探讨了微服务架构的核心概念、设计原则以及实施策略,旨在为后端开发者提供一种清晰、高效的技术路径。通过分析微服务的优势与挑战,结合具体的应用实例,文章将展示如何通过容器化、服务网格和持续集成/持续部署(CI/CD)等先进技术手段,实现后端服务的高可用性、可扩展性和敏捷性。
|
6天前
|
消息中间件 监控 Java
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第8天】随着现代软件开发的复杂性日益增加,传统的单体应用架构逐渐难以满足快速迭代和灵活部署的需求。微服务架构作为一种新的解决方案,以其模块化、独立性强和易于扩展的特点,正在成为后端开发领域的重要趋势。本文将深入探讨如何构建一个高效的微服务架构,并分析其对后端开发实践的影响。
|
前端开发 NoSQL .NET
一起谈.NET技术,重构TekPub——从ASP.NET MVC框架迁移到Ruby on Rails
  TekPub是一个面向开发人员的站点,致力于为开发人员提供一系列主题的在线培训,主题范围非常广泛,从微软的O/R Mapping框架Microsoft Entity Framework,到如何使用Ruby on Rails技术编写自己的日志引擎等内容都有涉及。
1596 0
|
Web App开发 SQL 前端开发
一起谈.NET技术,鲜为人知的ASP.NET MVC 2.0框架高效之谜
  要想建立开发环境,你需要安装Visual Studio 2008/2010 Beta 2,以及SQL Express 2005(可免费从MSDN下载)和MVC 2.0框架。我把本文中的示例Web应用命名为“Employee Master Information”。
987 0
|
.NET
一起谈.NET技术,ASP.NET 4.0 一些隐性的扩展
  ASP.NET 4.0在很多方面都做了改进,在这篇ASP.NET 4.0白皮书就描述了很多ASP.NET 4.0的机制改变和改进。在我的博客中,也有几篇关于ASP.NET4.0的特性修改的文章。但是作为一个全新的框架和运行时,内部肯定还会有很多API和扩展点不会暴露的那么明显。
829 0