LAMP 堆栈适合企业使用吗?
LAMP(Linux、Apache、MySQL、PHP/Ruby/Python)堆栈是否适合企业使用?
需要明确的是,我所说的“企业”是指大型或超大型公司,其中安全性、稳健性、技能集的可用性、总拥有成本 (TCO)、可扩展性和工具的可用性是关键考虑因素。 换句话说,一家寻求外部采用框架/架构的公司——在这种环境中,普遍存在的东西将被视为比异国情调/深奥的东西更“有效”。
我见过 Oracle、IBM 和 Sun 为各种企业在 LAMP 堆栈上实施系统的用例。 我还看到过在其上构建像 Yellowpages.com (Ruby on Rails) 和 Facebook (php) 这样的网站的示例。 然而,这些例子都不是我正在寻找的。
我真的很想找到一些例子,说明它是大型银行(即花旗集团)、电信公司(即 AT&T)或制造商(即宝洁公司)的企业标准。 需要明确的是,我并不是在寻找一个在有限意义上使用它的示例(例如在摩根大通),而是在寻找它是 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 堆栈适合企业的想法吗?
谢谢!
KA
Is the LAMP (Linux, Apache, MySQL, PHP / Ruby / Python) stack appropriate for Enterprise use?
To be clear, by "Enterprise", I mean a large or very large company, where security, robustness, availability of skill sets, Total Cost of Ownership (TCO), scalability, and availability of tools are key considerations. Said another way, a company that looks for external adoption of frameworks / architecture - Something ubiquitous will be seen as more "valid" than something exotic / esoteric in this kind of environment.
I've seen use cases where Oracle, IBM, and Sun have implemented systems on the LAMP stack for various Enterprises. I've also seen examples where websites like yellowpages.com (Ruby on rails) and Facebook (php) are built on it. However, none of these examples are exactly what I'm looking for.
I'm really trying to find examples where it is an Enterprise standard at a very large bank (I.e., Citigroup), Telecom company (I.e., AT&T), or manufacturer (I.e., Proctor and Gamble). Just to be clear, I'm not looking for an example where it's used in a limited sense (Like at JPMorgan Chase), but where it's a core platform for systems like CRM, manufacturing systems, or HR management, as well as for internal and external websites.
The perception I've seen so far is that applications built on the LAMP stack perform slower and are less flexible. Some of the arguments I've heard are:
Linux is seen as not as well supported as Unix, Solaris, or Windows Servers.
Apache is harder to configure and maintain than web servers like BEA WebLogic or IIS.
MySQL is a "not ready for prime time" DB for hobbyists, and not a competitor for SQL Server or Oracle (Although PostgreSQL seems to have a reputation for being more robust).
PHP / Ruby on rails are optimized for CRUD (Create, Read, Update and Delete operations). Although this is an advantage when building CRUD-intensive web aplications, both perform slower than Java/Java EE or C# (which are both common Enterprise standards). Furthermore, a lot of applications and systems (like manufacturing systems) have a lot of non-CRUD functionality that may be harder to build with PHP or Ruby, or even Python.
Can anyone please provide arguments to support or refute the idea of the LAMP stack being appropriate for the Enterprise?
Thanks!
KA
UPDATE: Some times the LAMP Stack is Appropriate for Enterprise Use: Externally-Facing Blogs
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(21)
我个人认为 Linux 的支持并不比提到的其他操作系统差。 事实上,硬件供应商通常确实支持 Linux,而不是任何其他操作系统(Windows 除外,如果您使用主流发行版,他们通常会很好地支持 Windows)。
只要您不使用奇怪的风格(提示:只需使用 RHEL 或 Centos,这是其免费版本),Linux 就会得到很好的支持。
MySQL可能有一些缺点,但在我看来它有很多优点; 我们以非预期的方式大规模使用它,但它通常仍然运行得很好(大多数问题是由于我们的版本过时或配置不当)。
LAMP 中“P”代表什么是有争议的。 我觉得 PHP 还没有为企业做好准备,因为它有很多单独的缺点(例如糟糕的 unicode 处理、没有命名空间、不一致的 API、不一致的语法、较差的版本向后兼容性、重复/过时的功能),这些缺点加起来使它变得困难实施可维护的系统。
但如果有一个经验丰富的团队,即使您选择 PHP,它也可以用来制作极其高质量的应用程序。
I personally don't see Linux as being less well supported than the other OS mentioned; in fact hardware vendors typically DO support Linux over any other OS (except for Windows, which they do generally support quite well provided you use maintream distributions).
Provided you don't use a bizarre flavour (Tip: Just use RHEL or Centos which is its free equivalent), Linux is very well supported.
MySQL may have some shortcomings, but in my opinion it has many strengths; we use it at a large scale in ways not intended, but it still works quite well generally (most of the problems are due to our versions being out of date or badly configured).
What "P" stands for in LAMP is debatable. I feel that PHP is not enterprise-ready, because it has so many individual shortcomings (e.g. poor unicode handling, no namespaces, inconsistent APIs, inconsistent syntax, poor version backwards compatibility, duplicated/obsolete functionality) that they add up to making it difficult to implement a maintainable system.
But given an appropriately experienced team, even if you choose PHP it can be used to make an extremely high quality application.
如果它对 Google 来说足够好,相信我,对你来说也足够好。
If it's good enough for Google, trust me, it's good enough for you.
Redhat和IBM对Linux给予全面支持,Sun购买了MySQL,Yahoo使用Php,许多公司使用LAMP堆栈,但很多都使用零件。
Redhat and IBM give full support for Linux, Sun bought MySQL, Yahoo uses Php, numerous companies use a LAMP stack, but many use parts.
IMO 对于 Linux 和 Apache 没有很好的一般性论据; 如果您准备付费,您当然可以获得 Linux 的企业级支持(如果您愿意遵守社区规则,则可以免费获得近似的支持)。 而且 Apache 并不难配置,除非您需要其更复杂的功能,而这在应用程序服务器中是不太可能的。
您当然可以反对 MySQL,因为一些与数据安全有关的最重要的功能最近才添加。 如果您担心这一点,请改用 PostgreSQL。
至于您编写应用程序所用的语言:PHP 已明确证明能够运行极其庞大和复杂的系统; 我更关心可维护性而不是性能。 Ruby on Rails“针对 CRUD 进行了优化”,只是因为一个简单的 CRUD Web 应用程序几乎可以在短时间内(实际上是几分钟)编写出来,但这并不意味着它在某种程度上不太适合更复杂的应用程序,只是它需要更多的时间(仍然比许多其他语言少)
IMO there are no good general arguments against Linux and Apache; You can certainly get enterprise-level support for Linux if you're prepared to pay for it (and a good approximation of it for free if you're willing to play by the community's rules). And Apache is not that hard to configure unless you need its more complex features, which is unlikely in an application server.
You can certainly make a case against MySQL since some of the most important features in regard to data safety have been added only recently. If you're concerned about that, use PostgreSQL instead.
As for the language you write your app in: PHP has definitely proven to be able to run extremely large and complex systems; I'd be more concerned about maintainability than performance. And Ruby on Rails is "optimized for CRUD" only in asmuch as a simple CRUD webapp can be written in nearly no time (literally minutes), but that does not mean it is somehow less suited to more complex apps, just that it will take much more time (still less than with many other languages)
我认为大型商业 CRM 和 HR 应用程序可能偏向于提供大型商业 RDBMS 产品作为其产品的基础。 如果不出意外的话,我确信他们更愿意联合起来应对共同的威胁。
如果他们集成没有许可证和支持费用的产品,他们就很难证明许可证和支持费用的合理性。
I suppose that large commercial CRM and HR applications might be biased toward delivering large commercial RDBMS products as the foundation for their products. If nothing else they will I'm sure prefer to unite against a common threat.
And they have a harder time justifying license and support fees if they integrate products that don't have them.
我的2c:
Linux:自从2.6内核出来以来,我想说它绝对是一个高质量的操作系统。 2.4 版本还没有完全实现,2.2 也只是个笑话,但 2.6 确实很棒。 不过,请谨慎选择发行版。 根据我的经验,RedHat/CentOS 非常好,而且如果你有一个好的管理员,显然 Debian(原来的,不是 Ubuntu!)可以很好地设置。 我对 OpenSUSE 的体验不是很好。
Apache:没有使用过它,但我不明白为什么它会成为问题。
MySQL:这是该堆栈的最弱点。 我不打算在这里详细介绍 - 如果您有兴趣,请查看 reddit.programming 上的评论。 最好看看 PostgreSQL。
PHP/Perl/Ruby/Python:我使用过 Perl,并在较小程度上使用过 Python。 它们可能适用于基于 Web 的应用程序,其中大部分工作无论如何都是由 Web 服务器和 DBMS 完成的。 但是,我确实更喜欢静态类型系统,并且更愿意选择 Java/C# 进行业务应用程序,选择 C++ 进行系统编程。
My 2c:
Linux: Since kernel 2.6 came out, I would say it is definitelly a high-quality OS. Version 2.4 wasn't quite there and 2.2 was a joke, but 2.6 is really good. Be careful with a choice of distribution, though. In my experience, RedHat/CentOS is very good, and apparently Debian (original, not Ubuntu!) can be set up nicely if you have a good admin. My experience with OpenSUSE was not very good.
Apache: Haven't used it, but I don't see why it would be a problem.
MySQL: This is the weakest point of the stack. I am not going to go into details here - look into comments at reddit.programming if you are interested. Better look at PostgreSQL.
PHP/Perl/Ruby/Python: I have worked with Perl and to a lesser extent with Python. They are probably OK for web-based applications where the bulk of the work is done by the web server and DBMS anyway. However, I do prefer static type system and would rather pick Java/C# for a business application and C++ for system programming.
我想建议我们确定企业系统的可扩展性要求以及它们与 Web 应用程序相比有何不同。 看看一些最具可扩展性的系统,如 Wikipedia、Flickr、Wordpress、Facebook、MySpace 和许多其他系统。 您将在那里看到 LAMP 堆栈。 我更喜欢 Python(因为我觉得这种语言有一种更干净的感觉),但我听 Cal Henderson(Flickr)等专家的意见,他写了一本关于可扩展性的书,谈论他如何扩展一组 MySQL 服务器。
企业系统的基本特征是什么?
支持、专业知识的可用性、平台/语言的稳定性可能都很重要。
但 LAMP 还具有其他功能,例如更快的开发、更容易的可扩展性、大量可重用的可用库、几个记录在案的可扩展性故事、成熟的 Web 框架。
这里有一些构建可扩展系统的建议(我说的是 Web Scale)。 鉴于所有这些证据,我一直想知道为什么 LAMP 尚未为企业应用程序做好准备的看法不断出现。
至于 Apache,每项 Netcraft 研究都展示了一个截然不同的采用故事。 由于服务器数量庞大,可能会有更多的人具备配置、调整和扩展 Web 服务器的知识。
可扩展的 Web 架构
请查看 1995 年 8 月至 2009 年 1 月所有服务器的市场份额
I would like to suggest that we identify the scalability requirements of Enterprise systems and how they differ compared to Web Applications. Look at some of the most scalable systems like Wikipedia, Flickr, Wordpress, Facebook, MySpace and a host of others. You will see LAMP stack there. I am more of a Python fan (since I feel that the language has a cleaner feel) but I listen to experts like Cal Henderson (Flickr) who wrote a book on scalability talking about how he scaled a bank of MySQL servers.
What are the essential features of an enterprise system?
Support, availability of expertise, stability of the platform/language probably count.
But LAMP has other features like faster development, easier extensibility, lots of available libraries for reuse, several documented stories of scalability, maturing web frameworks.
Here are a couple of pointers to building Scalable systems (I am talking about Web Scale). I always wondered in the light of all this evidence, why the perception of LAMP as not being ready for Enterprise apps keep popping up.
As for Apache, every Netcraft study shows a very different adoption story. By the sheer number of servers, there may be more people with knowledge to configure, tune and extend the web server.
Scalable Web Architectures
Please Look at Market Share of all Servers Aug 1995 to Jan 2009
Linux 被大量使用。
Apache和Tomcat用得很多。
MySQL 现在可能很强大。 我会改用 PostgreSQL。 银行将使用 Oracle,但那里对 Java 和 Tomcat 有很好的支持。
PHP 用得很多,但很多大公司更喜欢 Java。
在我看来,你最好选择 Linux、Tomcat(可能是商业支持的版本)、Java、Tomcat|Oracle|MSSQL 解决方案。
您将需要一名 Linux 系统管理员,尤其是随着服务器数量的增加,尽管我确信您可以在该时间到来之前获得一份兼职。 如果公司已经有 Windows 系统管理员,那么争论 Linux 将会很困难。
Linux is used a lot.
Apache and Tomcat are used a lot.
MySQL may be robust now. I'd use PostgreSQL instead. Banks will use Oracle, but there's good support for Java and Tomcat there.
PHP is used a lot, but many big companies would prefer Java.
You're best off arguing for a Linux, (possibly commercially supported version of) Tomcat, Java, Tomcat|Oracle|MSSQL solution, in my opinion.
You'll need a Linux sysadmin, especially as the number of servers ramps up, although I'm sure you can get a part time one in before that time arises. If the company already has Windows sysadmins then arguing for Linux is going to be tough.
我相信,这并不是因为该技术尚不成熟,也不是因为像 AT&T 这样的大公司在企业层面继续全面实施的原因。 这些公司的 IT 支出预算如此之大,以至于他们最不想做的就是在开源技术所需的定制和增强上投入更多资金,以满足其业务需求。
因此,他们所寻找的(来自我的咨询经验)是购买并运行产品包,而不必在研究和黑客部分上花费更多。 使用开源构建的公司在全球范围内开发了自己的支持小组来满足任何支持需求,而大型企业不太愿意这样做。 他们需要快速、确定地完成任务,并且可以支付费用。
I believe it's not that the technology is premature or something which keeps biggies like AT&T to go ahead with a full implementation at enterprise level. These companies have such a big budget for IT spends that the last thing they would have on mind is to spend more on the customization and enhancement required on the open source techs to suit their business needs.
So what they look for (which comes from my consulting experience) is buy and run product pack and don't have to spend more on the research and hack part. Companies which use open source build have developed their own support groups globally to cater to any support demands, which large enterprises are not much willing to do. They need thing done fast and for sure and they can pay.
对于使用LAMP堆栈的大型企业来说,主要存在两个问题:
There are two main issues for large enterprises using LAMP stacks:
“但它是 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 的最终定论。
"but where it's a core platform for systems like CRM and HR, as well as for internal and external websites"
First, find a LAMP CRM or HR application.
Then find a customer for the LAMP CRM or HR application.
Sadly, there aren't a lot of examples of item 1. Therefore, your case is proven. It can't be used for enterprise applications because -- currently -- there aren't any of the applications you call "enterprise".
Your other points, however, are very interesting.
Linux is seen as not as well supported as Unix, Solaris, or Windows Servers. I think Red Hat would object strongly to this. Give them a call. I think they'll make a very persuasive sales pitch. Read their success stories.
Apache is harder to configure and maintain than web servers like BEA WebLogic or IIS. By whom? Apache web site managers? Or IIS web site managers? This is entirely subjective.
MySQL is a "not ready for prime time" DB. Take it up with Sun Microsystems. I think they'd object strongly to this. Give them a call. I think they'll make a very persuasive sales pitch. Read their success stories.
PHP / Ruby on rails are optimized for CRUD, and both are slowly performing. Could be true. Java and Python might be faster. PHP and Ruby aren't the last word in LAMP.
尽管我个人不会推荐 PHP,因为该语言存在许多缺陷,但它肯定是普遍存在的。 随着 phusion guest 的出现,共享托管公司对 Rails 的支持也在快速增长。 在 90% 以上的共享托管帐户支持开箱即用的轨道之前,我最多再等待一到两年。 如果这不是普遍存在的,那什么是呢?
如果这让您感到困扰,请从 RedHat 购买支持,或者安装 Solaris 并从 Sun 购买支持。 这两者都会为您提供与 Microsoft 一样好的支持
我不能代表 BEA WebLogic,但在配置了 Apache、IIS 和 Tomcat 后,Apache 是最容易理解的,并且很容易找到示例和文档。
哦,真的吗?。 你应该以告诉 NASA、Google、CERN、Reuters 等为己任,他们都在使用尚未准备好迎接黄金时段的业余数据库。
这里有两件事:
针对 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 构建网站需要几个月的时间,而用 ruby/python 构建网站只需要 3 个月,那么这就是真正的结果。
Although I personally wouldn't recommend PHP due to the many flaws in the language, it's most certainly ubiquitous. With the advent of phusion passenger, Rails support amongst shared-hosting companies is growing pretty quickly too. I give it another year or 2 at most before 90+% of shared-hosting accounts support rails out of the box. If that's not ubiquitous, what is?
If this bothers you, purchase support from RedHat, or install Solaris and purchase support from Sun. Both of those will give you just as good support as Microsoft is likely to
I can't speak for BEA WebLogic, but having configured both Apache, IIS, and Tomcat, Apache is the easiest both to understand, and to find examples and documentation for by a long way.
Oh really?. You should make it your mission to tell NASA, Google, CERN, Reuters etc that they're all using a hobbyist database that isn't ready for prime-time.
There are 2 things here:
Optimized for CRUD - This is totally irrelevant.
Rails and some of the python/php frameworks are optimized for CRUD apps. Many of the C#/Java frameworks are also optimized for CRUD apps. However, if the app you're building is a CRUD app (and 99% of web applications are), isn't this a Good Thing?
If you're not building a CRUD app, there are plenty of non-crud-optimized frameworks in ruby/python/php/java/C#. Net win: Nobody (hence it's irrelevant)
Perform slower than Java/C# - This is undoubtedly true, but it also doesn't matter. For a low-traffic site the performance difference isn't going to amount to anything, and for a high-traffic site your bottleneck will be the database, whether it be MySQL, oracle, or whatever.
What you trade-off for all of this is development time.
Once you've used all this advice to convince your boss that you won't lose out on anything by using LAMP, If you crunch the numbers and show your them that it is going to take 6 man-months to build the site in Java, and only 3 to build it in ruby/python then that's really what it comes down to.
如果你雇佣白痴来实现它,C++ & Oracle 将无法扩展。
如果您雇用聪明且能把事情做好的人,PHP 和 MySQL 可以很好地扩展。
同样的论点也适用于安全性和安全性。 鲁棒性。
Facebook、Digg、Yahoo 的部分内容都运行在 PHP 上。
当然,他们雇佣了很多博士程序员。
If you hire idiots to implement it, C++ & Oracle will fail to scale.
If you hire people who are smart and get things done, PHP & MySQL will scale just fine.
Same argument goes for security & robustness.
Facebook, Digg, portions of Yahoo run on PHP.
Of course, they hire lots of PhD programmers.
我只是想将另一个网站添加到在 LAMP 上运行的网站列表中 - 维基百科。 世界第七大网站,完全用 PHP 编写并运行 MySQL,而且他们只有两三个付费开发人员。 当然,他们也得到了志愿者的一些帮助,但数量不是很多,而且规模还不错。 不知道你是否真的会称他们为“企业”,但对于如此庞大且受欢迎的网站,他们似乎为自己做得很好。
正如其他人上面所说,给红帽打电话,我相信他们会提出不同意见。 对 Linux 完全免费的支持数量是惊人的。
这取决于你问的是谁。 经常管理IIS服务器的人可能会这样看。 通常管理 Apache 的人不会。 这取决于您雇用的人员,如果您的堆栈是 LAMP,您无论如何都不会想雇用没有 Apache 经验的人员。
Just thought I'd add another website to the list of those that run on LAMP - Wikipedia. Seventh biggest website in the world, written entirely in PHP and runs off MySQL, and they only have two or three paid developers. Of course, they have some assistance from volunteers, but it's not a lot, and it's scaled just fine. Don't know if you'd really call them 'enterprise', but for such a huge and popular website they seem to have done alright for themselves.
As others have said above, give Red Hat a call and I'm sure they'll beg to differ. And the amount of support out there for Linux absolutely free is astonishing.
That depends who you're asking. People who usually administer IIS servers will probably view it this way. People who usually administer Apache won't. It depends on who you hire, and if your stack is LAMP you won't want to be hiring people with no Apache experience anyway.
我只是想补充一点,我多次目睹客户只有在为某些解决方案投入大量资金后才会感到舒服,即使这会使企业集成变得更加困难,无论您提出什么论点。
I just want to add that I've witnessed many times that clients only feel comfortable once they dish out serious $$$ for some solution, even if it makes enterprise integration even harder, despite what arguments you bring to the table.
我认为第一个标准应该是团队的技能水平和舒适度,以确保做出的平台决策适合他们。 无论您做出什么决定,都要考虑代码的可扩展性和可维护性。 无论您选择什么堆栈,工具都很棒。
我个人会将其分为 3 个堆栈
如果需要,带有一些开源的 Microsoft Stack Win Server - IIS - .net/C#(ASP.net 等) - NHibernate、NUnit(单元测试)等。您很可能希望使用 SQL Server 作为数据库
上述堆栈都没有与 Enterprise Linux 一起运行一整套开源内容,例如 MySQL(现在在 Sun 的域名下,因此可以认真对待)、Apache(那里有 apache 大师)、Ruby(不是我个人的选择)/ PHP (祝你好运)/Python(我喜欢它,因为它是一种成熟的语言)。 从管理代码的角度来看,我提倡使用 python 或 ruby。 也许对某些人来说可能是 PHP..我不喜欢它。
I think the first criteria should be your team's skill level, comfort level jut to make sure what ever platform decisions are made works well with them. Whatever you decide think of scalability and maintainability of your code. Tools are awesome no matter what stack you choose.
I personally would break it down into 3 stacks-
The Java Stack where you have Solaris or Enterprise Linux like ( RedHat ) with Weblogic/Websphere/Tomcat etc and Java Enterprise along with Hibernate,Spring etc technologies. Most would opt for Oracle as DB.
The Microsoft Stack with some Open Source if needed Win Server - IIS - .net/C# (ASP.net etc) - NHibernate, NUnit (unit testing) etc. Most likely you would want to use SQL Server as DB
None of the above stack with Enterprise Linux running a whole buffet of open source stuff like MySQL (now under Sun's domain so can be looked at seriously), Apache (there are apache gurus out there), Ruby ( not my personal choice)/ PHP (good luck) / Python (I like it because its a mature language). I would advocate python or ruby from the managing code point of view. Maybe for some it could be PHP..i am not into it.
严格来说是一种主观意见,但我个人认为 MySQL 和较小程度上的 PHP 有点弱点,但肯定有很多人不同意,大公司也选择了 LAMP。
我更希望看到 postgres 甚至 SQLite 抢占 MySQL 市场的大部分份额,并且我更希望看到基于 mono、jsp 或 cocoon 的应用程序。 我认为 LAMP 对于一个总括术语来说有点过于具体。 :)
strictly a subjective opinion but I personally find MySQL and to a lesser extent PHP to be a bit of a weakness, but certainly there's plenty of people who disagree and big companies who went LAMP.
I'd prefer to see postgres or even SQLite take chunks out of the MySQL market, and I'd like to see mono or jsp or cocoon based apps more. I guess LAMP is a bit too specific for an umbrella term. :)
Linux/Apache 是坚固的、精益的,并且每个都有大量的人(当然价格合适)提供支持,大量有用的工具,许多具有与它们一起工作并建立在它们之上的非常高水平的实用程序。
不过,不确定其他两个。 特别是,自从被 Sun 收购以来,MySQL 似乎出现了奇怪的恶化,这与本帖子中暗示 Sun 可能具有良好影响力的帖子相反:
http://www.reddit.com/r/programming/comments/7gb8j/oops_we_did_it_again_mysql_51_released_as_ga_with/
Linux/Apache are hardened, lean and each comes with plenty of people(for the right price of course) who will provide support, plenty of useful tools, many at exceptionally high levels of utility which work with them and which have been built upon them.
Not sure about the other two, however. In particular MySQL seems to have taken a strange turn for the worse since their being acquired by Sun, contrary to the posts in this thread suggesting that Sun may be a good influence:
http://www.reddit.com/r/programming/comments/7gb8j/oops_we_did_it_again_mysql_51_released_as_ga_with/
没有找到基于 LAMP 构建的企业应用程序的原因并不是因为它们不是企业级的,而是因为我认为它们完全不同。 许多大公司都使用 LAMP 或类似产品 - Facebook 和
MySpace立即浮现在脑海中。 因此,这显然不是规模和性能的问题。也就是说,我发现没有任何基于 LAMP 构建的企业应用程序的原因是它们固有的开放性。 我不想将精算模块构建为 PHP 文件,因为任何人都可以窃取逻辑。 另一方面,如果我有一个 DLL,我可以保留控制权。 出于这个原因,您不会发现很多基于 PHP 构建的 30 个试用版应用程序,但使用 ASP.NET 实现这种保护要容易得多。
The reason for not finding Enterprise applications built on LAMP is not because they aren't enterprise level but something entirely different in my opinion. A lot of the big players use LAMP or similar--Facebook and
MySpaceimmediately come to mind. So its clearly not an issue of scale and perf.That said, the reason I find that there aren't any enterprise apps built on LAMP is because of their intrinsic open nature. I don't want to build an actuarial module as a PHP file because anyone can steal the logic. On the other hand if I have a DLL I can retain control. You don't find a lot of 30-trial apps built on PHP for this very reason but it's much easier to achieve that kind of protection with say ASP.NET.
您的帖子中有一些非常糟糕的神话:
JavaEE Myths:
-应用程序服务器比 apache 更容易配置,不,apache 更容易。
-您暗示只有 JavaEE 完整解决方案才是企业级解决方案,不是。
CRUD 神话:
-CRUD比JavaEE慢? 搞什么? POJO和EJB正在使用CRUD。
限制因素并不简单,它的服务器吞吐量
无论什么技术,甚至MS,都存在3个限制瓶颈区域..服务器实现,持久层和应用程序层..所选择的技术不是速度因素,因为你可以在一个方面交换优势层的缺点在另一层。
例如,我们可以通过使用文档存储而不是普通数据库来加速 Java。
大多数新的 Rails 实现都使用非 apache 服务器,它们比 Apache 快 3 到 5 倍。即使是经过良好调优的 Apache 服务器也可以胜过一些 javaEE 堆栈..只要问雅虎,因为他们在他们的一些属性上使用 Symfony ..
You have some real bad myths in your posting:
JavaEE Myths:
-App Servers easier to configure than apache, nope apache is easier.
-You imply that only JavaEE full solution is enterprise, nope.
CRUD Myths:
-CRUD is slower than JavaEE? WTF? POJO and EJB is using CRUD.
The limiting factor is not crud, its server throughput
There are 3 limiting bottleneck areas no matter what technology even MS..server implementation, persistence layer, and app layer..the technology chosen is not the speed factor as you can exchange advantages in one layer for disadvantages in the other layer.
Fro example we could spee dup Java by using document store instead of normal DB..
Most new Rails implementations use non apache servers that are faster by a factor of 3 to 5 than Apache..even a well tunned Apache server can outperform some javaEE stacks..just ask yahoo as they use Symfony on some of their properties..
我想你会发现很多企业都使用Linux服务器,通常有Redhat、Novell或IBM支持,Apache也常用。
但许多企业倾向于使用 Oracle 或 IBM DB2 等数据库,而不是开源产品 - 尽管有许多企业并不真正需要这些系统提供的功能,并且可以使用 MySQL 或 PostgreSQL。
对于网络服务器语言,我认为你可以使用任何东西。 然而,如果您使用 Apache,那么使用 PHP、Ruby 或 Python 可能会更容易,而如果您使用 IIS、Weblogic 或 Domino,那么使用 Java / C# 会更容易。
I think you will find that many enterprises use Linux servers, often supported by Redhat, Novell or IBM, and that Apache is also commonly used.
But many enterprises tend to use databases like Oracle or IBM DB2 instead of open source offerings - although there are many enterprises that don't really need the kind of power those systems provide and could get away with MySQL or PostgreSQL.
And for the web-server language, I think you can use just about anything. However, if you use Apache it is probably easier to use PHP, Ruby or Python, whereas if you use IIS or Weblogic or Domino it will be easier to do it in Java / C#.