LAMP(Linux,Apache,MySQL,PHP/Ruby/Python)堆栈是否适合企业使用?
需要说明的是,"企业"是指一家大型或大型公司,其安全性,稳健性,技能组合可用性,总体拥有成本(TCO),可扩展性和工具可用性是关键考虑因素.换句话说,一家寻求外部采用框架/架构的公司 - 无处不在的东西将被视为在这种环境中比异国情调/深奥的东西更"有效".
我见过Oracle,IBM和Sun在各种企业的LAMP堆栈上实现了系统的用例.我也看到过像yellowpages.com(Ruby on rails)和Facebook(php)等网站建立的例子.但是,这些例子都不是我正在寻找的.
我真的想找到一个例子,它是一家大型银行(即花旗集团),电信公司(即I&AT)和制造商(即Proctor and Gamble)的企业标准.为了清楚起见,我不是在寻找一个在有限意义上使用它的例子(比如摩根大通),但它是CRM,制造系统或人力资源管理等系统以及内部系统的核心平台.和外部网站.
到目前为止,我所看到的感觉是构建在LAMP堆栈上的应用程序执行速度较慢且灵活性较低.我听到的一些论点是:
Linux被认为不如Unix,Solaris或Windows服务器那么受支持.
Apache比BEA WebLogic或IIS等Web服务器更难配置和维护.
对于业余爱好者来说,MySQL是一个"尚未准备好黄金时间"的数据库,而不是SQL Server或Oracle的竞争对手(尽管PostgreSQL似乎因其更强大而闻名).
PHP/Ruby on rails针对CRUD(创建,读取,更新和删除操作)进行了优化.虽然这在构建CRUD密集型Web应用程序时是一个优势,但它们的执行速度都比Java/Java EE或C#(这两者都是常见的企业标准)慢.此外,许多应用程序和系统(如制造系统)具有许多非CRUD功能,使用PHP或Ruby甚至Python可能难以构建.
任何人都可以提供论据来支持或反驳LAMP堆栈适合企业的想法吗?
谢谢!
K A
更新:有时候LAMP堆栈适合企业使用:面向外部的博客
"但它是CRM和HR以及内部和外部网站等系统的核心平台"
首先,找到LAMP CRM或HR应用程序.
然后找到LAMP CRM或HR应用程序的客户.
遗憾的是,项目1的例子并不多.因此,您的案例已得到证实.它不能用于企业应用程序,因为 - 目前 - 没有任何您称之为"企业"的应用程序.
然而,你的其他观点非常有趣.
Linux被认为不如Unix,Solaris或Windows服务器那么受支持.我认为红帽会强烈反对这一点.给他们打个电话.我认为他们会做出非常有说服力的销售宣传.阅读他们的成功故事.
Apache比BEA WebLogic或IIS等Web服务器更难配置和维护.通过谁?Apache网站管理员?还是IIS网站管理员?这完全是主观的.
MySQL是一个"尚未准备好迎接黄金时段"的数据库.与Sun Microsystems一起讨论.我认为他们强烈反对这一点.给他们打个电话.我认为他们会做出非常有说服力的销售宣传.阅读他们的成功故事.
PHP/Ruby on rails针对CRUD进行了优化,两者都在慢慢运行.可能是真的.Java和Python可能会更快.PHP和Ruby不是LAMP中的最后一个词.
在这种环境中,无处不在的东西将被视为比有异国情调/深奥的东西更"有效".
虽然由于语言中的许多缺陷,我个人不会推荐PHP,但它肯定无处不在.随着phusion乘客的出现,Rails在共享托管公司中的支持也在迅速增长.在90%以上的共享托管帐户开箱即用之前,我最多给它一年或两年.如果这不是无处不在,那是什么?
Linux被认为不如Unix,Solaris或Windows服务器那么受支持.
如果这困扰您,请购买RedHat的支持,或安装Solaris并从Sun购买支持.这些都会给你提供与微软一样好的支持
Apache比BEA WebLogic或IIS等Web服务器更难配置和维护.
我不能代表BEA WebLogic,但是配置了Apache,IIS和Tomcat,Apache是最容易理解的,并且很容易找到示例和文档.
对于业余爱好者来说,MySQL是一个"尚未准备好黄金时段"的数据库,而不是SQL Server或Oracle的竞争对手.
真的吗?.你应该告诉美国宇航局,谷歌,欧洲核子研究中心,路透社等,他们都在使用一个尚未准备好黄金时段的业余爱好者数据库.
PHP/Ruby on rails针对CRUD进行了优化,两者的执行速度都比Java/Java EE或C#慢(这两者都是常见的企业标准).
这里有两件事:
针对CRUD进行了优化 - 这完全无关紧要.
Rails和一些python/php框架针对CRUD应用程序进行了优化.许多C#/ Java框架也针对CRUD应用程序进行了优化.但是,如果您正在构建的应用程序是CRUD应用程序(并且99%的Web应用程序都是),这不是一件好事吗?
如果你没有构建一个CRUD应用程序,那么在ruby/python/php/java/C#中有很多非crud优化的框架.净胜利:没人(因此无关紧要)
执行速度比Java/C#慢 - 这无疑是正确的,但也没关系.对于流量较低的站点,性能差异不会达到任何目的,对于高流量站点,您的瓶颈将是数据库,无论是MySQL,oracle还是其他任何东西.
你所做的一切就是开发时间.一旦你使用的所有这些建议,以说服你的老板,你会不会使用LAMP,如果紧缩的号码,并显示您的他们这是要采取6人月构建在Java网站失去了什么,并且只有3个用ruby/python构建它然后它真正归结为它.
如果你雇用白痴来实现它,C++和Oracle将无法扩展.如果你聘请聪明的人并完成工作,那么PHP和MySQL将会很好地扩展.
同样的论点是安全性和稳健性.
Facebook,Digg,部分雅虎运行在PHP上.当然,他们雇用了大量的博士程序员.
我以为我会在LAMP上运行的那些列表添加另一个网站 - 维基百科.世界上第七大网站,完全用PHP编写并运行MySQL,他们只有两三个付费开发人员.当然,他们得到了志愿者的一些帮助,但这并不是很多,而且它的规模很好.不知道你是否真的称他们为"企业",但对于这样一个庞大且受欢迎的网站,他们似乎已经为自己做得很好.
Linux被认为不如Unix,Solaris或Windows服务器那么受支持.
正如其他人上面所说,给红帽打电话,我相信他们会乞求不同.对Linux 完全免费的支持量是惊人的.
Apache比BEA WebLogic或IIS等Web服务器更难配置和维护.
这取决于你问的是谁.通常管理IIS服务器的人可能会以这种方式查看它.通常管理Apache的人不会.这取决于你雇佣的人,如果你的堆栈是LAMP,你也不会想雇用没有Apache经验的人.
我只是想补充一点,我曾经多次目睹客户只有在为一些解决方案提出严肃的$$$时才会感到舒服,即使它使企业整合更加困难,尽管你提出了什么论据.
我认为第一个标准应该是你的团队的技能水平,舒适程度,以确保平台决策能够与他们合作.无论您决定考虑代码的可伸缩性和可维护性.无论您选择哪种堆栈,工具都很棒.
我个人会将其分解为3个堆栈 -
您可以使用带有Weblogic/Websphere/Tomcat等的Solaris或Enterprise Linux(RedHat)以及Java Enterprise以及Hibernate,Spring等技术的Java Stack.大多数人会选择Oracle作为DB.
带有一些开源的Microsoft Stack如果需要Win Server - IIS - .net/C#(ASP.net等) - NHibernate,NUnit(单元测试)等很可能你会想要使用SQL Server作为DB
上面没有一个与Enterprise Linux运行完全自由的开源软件如MySQL(现在在Sun的域下,所以可以认真看待),Apache(有apache大师那里),Ruby(不是我个人选择)/ PHP (祝你好运)/ Python(我喜欢它,因为它是一种成熟的语言).从管理代码的角度来看,我会提倡python或ruby.也许对某些人来说它可能是PHP ..我不喜欢它.
严格意义上的主观意见,但我个人认为MySQL和PHP在某种程度上是一个弱点,但肯定有很多人不同意和大公司谁LAMP.
我更喜欢看到postgres甚至SQLite从MySQL市场中取出块,我希望更多地看到基于单声道或jsp或cocoon的应用程序.我认为LAMP对于一个总括性术语来说太具体了.:)
Linux/Apache是强化的,精益的,每个人都有很多人(当然是合适的价格),他们将提供支持,大量有用的工具,许多具有极高水平的实用工具,与他们一起工作,并且建立在他们身上.
但是,不确定其他两个.特别是MySQL似乎已经采取了一个奇怪的转折,因为他们被Sun收购,与此帖中的帖子相反,暗示Sun可能是一个很好的影响:
http://www.reddit.com/r/programming/comments/7gb8j/oops_we_did_it_again_mysql_51_released_as_ga_with/