Is the LAMP stack appropriate for Enterprise use?

14,729

Solution 1

"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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Solution 2

Something ubiquitous will be seen as more "valid" than something exotic / esoteric in this kind of environment.

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?

Linux is seen as not as well supported as Unix, Solaris, or Windows Servers.

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

Apache is harder to configure and maintain than web servers like BEA WebLogic or IIS.

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.

MySQL is a "not ready for prime time" DB for hobbyists, and not a competitor for SQL Server or Oracle.

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.

PHP / Ruby on rails are optimized for CRUD, and both perform slower than Java/Java EE or C# (which are both common Enterprise standards).

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.

Solution 3

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.

Solution 4

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.

Linux is seen as not as well supported as Unix, Solaris, or Windows Servers.

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.

Apache is harder to configure and maintain than web servers like BEA WebLogic or IIS.

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.

Solution 5

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.

Share:
14,729

Related videos on Youtube

gotgot1995
Author by

gotgot1995

Product Manager and MBA. I spent 8 years as a C# developer before progressing to Enterprise Architecture for 5 years. I transitioned to my current role in 2012.

Updated on May 22, 2020

Comments

  • gotgot1995
    gotgot1995 about 4 years

    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

    • user1066101
      user1066101 over 15 years
      "Telecom company (I.e., Bell)" What company are you referring to?
    • gotgot1995
      gotgot1995 over 15 years
      I mean any telecommunications company. For instance, Bell or KT.
    • user1066101
      user1066101 over 15 years
      KT I've heard of (NYSE: KTC). Bell, however, I haven't heard of.
    • James Van Huis
      James Van Huis over 15 years
    • user1066101
      user1066101 over 15 years
      @James Van Huis: How did you know that "Bell" meant "AT&T"? What did I miss in the question?
    • Powerlord
      Powerlord over 15 years
      @S. Lott: AT&T used the name Bell System for nearly a century. Granted, this was the old AT&T, not the current one. The current AT&T was formerly known as SBC, which used to be Southwestern Bell Corporation.
    • gotgot1995
      gotgot1995 over 15 years
      Sorry, I should have been more clear. However, please keep in mind that the point was to find examples where the LAMP stack is being used for core systems at large companies in industries like telecommunications, manufacturing, or banking.
    • user1066101
      user1066101 over 15 years
      @Kaiser Advisor: here's my point. The question appears argumentative specifically because you might be throwing company names around at random. Perhaps it isn't argumentative, but throwing in names of defunct companies appears argumentative.
    • gotgot1995
      gotgot1995 over 15 years
      @S.Lott - My apologies for sounding argumentative! That really wasn't my intention at all. I just wanted to give examples of industries that have a lot of credible companies with good IT enterprises, and examples of flagship companies in each. Bell isn't defunct in my country. :-)
    • gotgot1995
      gotgot1995 over 15 years
      @S.Lott - After reading your comment again, I think the fact that Bell is defunct in your country by not in mine was the sticking point. Bell Canada is seen as a "flagship" Telecom company up here. Sorry again for the confusion. I've changed it in the question.
    • Rob Williams
      Rob Williams over 15 years
      Interesting--despite having addressed the question with solid content, I apparently am getting downvoted based on some LAMP-lovers not being able to objectively handle the question. Is this just a LAMP popularity contest? If so, then why did I bother to give an honest and experienced answer?
    • Pekka
      Pekka over 14 years
      @Rob: Why did you delete your answer? I don't have the experience to judge its accuracy but it looks like a valuable contribution.
  • gotgot1995
    gotgot1995 over 15 years
    Yuval, TCO includes support costs - I've seen studies where the TCO of open source software can be higher than propriatary because the skill sets are less common (and therefore more expensive). Can you please provide support?
  • ceejayoz
    ceejayoz over 15 years
    SugarCRM is pretty heavily used.
  • Rob Williams
    Rob Williams over 15 years
    SugarCRM is also junk, so not a great example.
  • user1066101
    user1066101 over 15 years
    More to the point, it's subjective. It's too easy to debate if it's "enterprise" enough or if a given customer is like the "enterprises" listed in the question.
  • Powerlord
    Powerlord over 15 years
    You might want to mention that FastCGI gets around a lot of the performance problems with Perl/PHP/Ruby/Python. PHP also benefits from having an opcode cache such as APC installed.
  • gotgot1995
    gotgot1995 over 15 years
    I like the way you cited Red Hat in the Linux example - Do you know off hand what references they would cite?
  • Mitkins
    Mitkins over 15 years
    I'm sure RedHat and Sun will happily accept giant piles of cash from your company :-)
  • annakata
    annakata over 15 years
  • Nils
    Nils over 15 years
    yes that's the answer, programming language does not matter much, good coders do!
  • user1066101
    user1066101 over 15 years
    @Dan Dyer: Funny, the Python folks keep telling me that Python is the last word in LAMP.
  • Craig
    Craig over 15 years
    What do Google do with standard LAMP. AFAIK there platform is highly customised.
  • Craig
    Craig over 15 years
    MySpace is built with .NET not LAMP.
  • Craig
    Craig over 15 years
    I think it is also highly unlikely most developers will work on systems where scalability is a big issue. All common platforms (LAMP, .NET, UNIX etc) can easily handle very large scale. Unless you are building the next Google you have more to worry about than that.
  • chburd
    chburd over 15 years
    PostgreSQL people usually say that M is for Middleware and P is for PostgreSQL
  • gargantuan
    gargantuan over 15 years
    Which puts the original claim about LAMP being less flexible to rest. And a large chunk of that customization is available to everyone (eg. Google MySQL Tools). But google weighed up all the pros and cons, deliberated and went with LAMP form the start. That customization came later.
  • Joshua Partogi
    Joshua Partogi almost 15 years
    Call Zend, I think they'll make a very persuasive sales pitch
  • Esteban Küber
    Esteban Küber over 14 years
    @Dan Dyer: Just as much as XML is the last word in AJAX, but I use JSON nonetheless. What S.Lott is saying is that you are not tied to PHP, just as much as you are not tied to Linux. You could use FreeBSD, lighthttpd, PostgreSQL and Python and it would still be LAMP (FLPP doesn't have the same ring to it ;)
  • Workman
    Workman over 11 years
    Actually, PHP is the last 3,5,7,9,... words in LAMP.
  • Air
    Air almost 8 years
    For a citation re: Wikipedia, simply read their Technical FAQ.