Подходит ли стек LAMP для использования на предприятии? - PullRequest
27 голосов
/ 08 декабря 2008

Подходит ли стек LAMP (Linux, Apache, MySQL, PHP / Ruby / Python) для использования на предприятии?

Для ясности, под «Предприятием» я подразумеваю крупную или очень большую компанию, в которой ключевыми факторами являются безопасность, надежность, доступность наборов навыков, общая стоимость владения (TCO), масштабируемость и доступность инструментов. Иными словами, компания, которая ищет внешнее внедрение фреймворков / архитектуры - что-то вездесущее будет восприниматься как более «правильное», чем что-то экзотическое / эзотерическое в такой среде.

Я видел случаи использования, когда Oracle, IBM и Sun внедрили системы в стеке LAMP для различных предприятий. Я также видел примеры, на которых основаны такие сайты, как yellowpages.com (Ruby on rails) и Facebook (php). Однако ни один из этих примеров не является именно тем, что я ищу.

Я действительно пытаюсь найти примеры, когда это стандарт Enterprise в очень крупном банке (т. Е. Citigroup), телекоммуникационной компании (т. Е. AT & T) или производителе (т. Е. Proctor and Gamble). Просто чтобы быть ясным, я не ищу пример, где он используется в ограниченном смысле (как в JPMorgan Chase), но где это базовая платформа для таких систем, как CRM, производственных систем или управления персоналом, а также для внутренних и внешние сайты.

До сих пор я видел, что приложения, построенные на стеке LAMP, работают медленнее и менее гибки. Вот некоторые аргументы, которые я слышал:

  • Linux не так хорошо поддерживается, как Unix, Solaris или Windows Servers.

  • Apache сложнее в настройке и обслуживании, чем веб-серверы, такие как BEA WebLogic или IIS.

  • MySQL - это база данных "не готовая к прайм-тайм" для любителей, и она не является конкурентом для SQL Server или Oracle (хотя PostgreSQL, похоже, имеет репутацию более надежной).

  • PHP / Ruby on rails оптимизированы для CRUD (операции создания, чтения, обновления и удаления). Хотя это является преимуществом при создании веб-приложений, интенсивно использующих CRUD, они оба работают медленнее, чем Java / Java EE или C # (которые являются общими стандартами Enterprise). Кроме того, многие приложения и системы (например, производственные системы) имеют множество функций, не относящихся к CRUD, которые может быть сложнее создать с помощью PHP, Ruby или даже Python.

Может ли кто-нибудь предоставить аргументы в поддержку или опровергнуть идею о том, что стек LAMP подходит для Enterprise?

Спасибо!

KA

ОБНОВЛЕНИЕ: Иногда стек ЛАМПЫ подходит для корпоративного использования: внешние блоги

Ответы [ 21 ]

3 голосов
/ 08 декабря 2008

Я думаю, вы обнаружите, что многие предприятия используют серверы Linux, часто поддерживаемые Redhat, Novell или IBM, и что Apache также широко используется.

Но многие предприятия, как правило, используют базы данных, такие как Oracle или IBM DB2, вместо предложений с открытым исходным кодом - хотя многим предприятиям действительно не нужен тип мощности, предоставляемый этими системами, и они могли бы отказаться от MySQL или PostgreSQL.

А что касается языка веб-сервера, я думаю, вы можете использовать что угодно. Тем не менее, если вы используете Apache, вероятно, будет проще использовать PHP, Ruby или Python, тогда как если вы используете IIS или Weblogic или Domino, это будет проще сделать в Java / C #.

2 голосов
/ 10 декабря 2008

Мой 2с:

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. Они, вероятно, подходят для веб-приложений, где большая часть работы выполняется веб-сервером и СУБД. Однако я предпочитаю статическую систему типов и предпочел бы выбрать Java / C # для бизнес-приложения и C ++ для системного программирования.

2 голосов
/ 10 декабря 2008

Я полагаю, что крупные коммерческие приложения CRM и HR могут быть ориентированы на предоставление крупных коммерческих продуктов RDBMS в качестве основы для своих продуктов. Если они ничего не сделают, я уверен, что они предпочтут объединиться против общей угрозы.

И им будет сложнее обосновать стоимость лицензий и поддержки, если они интегрируют продукты, в которых их нет.

2 голосов
/ 08 декабря 2008

IMO нет хороших общих аргументов против Linux и Apache; Вы, безусловно, можете получить поддержку корпоративного уровня для Linux, если вы готовы заплатить за нее (и хорошее приближение к ней бесплатно, если вы готовы играть по правилам сообщества). А Apache не так сложно настроить, если вам не нужны его более сложные функции, что маловероятно для сервера приложений.

Вы, конечно, можете возразить против MySQL, поскольку некоторые из наиболее важных функций, касающихся безопасности данных, были добавлены только недавно. Если вас это беспокоит, используйте вместо этого PostgreSQL.

Что касается языка, на котором вы пишете свое приложение: PHP определенно доказал, что способен запускать чрезвычайно большие и сложные системы; Я был бы больше обеспокоен ремонтопригодностью, чем производительностью. А Ruby on Rails «оптимизирован для CRUD» только потому, что простое веб-приложение CRUD может быть написано почти мгновенно (буквально за минуты), но это не значит, что оно как-то менее подходит для более сложных приложений, просто для гораздо больше времени (все еще меньше, чем со многими другими языками)

2 голосов
/ 21 февраля 2009

Я хотел бы предложить, чтобы мы определили требования к масштабируемости корпоративных систем и их отличие от веб-приложений. Посмотрите на некоторые из наиболее масштабируемых систем, таких как Википедия, Flickr, Wordpress, Facebook, MySpace и множество других. Там вы увидите стек лампы. Я больше фанат Python (так как я чувствую, что язык более понятен), но я слушаю таких экспертов, как Кэл Хендерсон (Flickr), которые написали книгу о масштабируемости, рассказывая о том, как он масштабировал банк серверов MySQL.

Каковы основные характеристики системы предприятия?

Поддержка, наличие опыта, стабильность платформы / языка, вероятно, рассчитывают.

Но у LAMP есть и другие функции, такие как более быстрая разработка, более простая расширяемость, множество доступных библиотек для повторного использования, несколько документированных историй масштабируемости, зрелые веб-фреймворки.

Вот несколько советов по созданию масштабируемых систем (я говорю о веб-масштабе). В свете всех этих доказательств я всегда удивлялся, почему все еще возникает ощущение того, что LAMP не готов для корпоративных приложений.

Что касается Apache, то каждое исследование Netcraft показывает совершенно другую историю принятия. По большому количеству серверов может быть больше людей, обладающих знаниями для настройки, настройки и расширения веб-сервера.

Масштабируемые веб-архитектуры Пожалуйста, посмотрите на долю рынка всех серверов с августа 1995 года по январь 2009 года

1 голос
/ 24 июля 2013

Я полагаю, что это не значит, что технология преждевременна или что-то такое, что удерживает такие крупные компании, как AT & T, для полной реализации на уровне предприятия. У этих компаний такой большой бюджет на ИТ-расходы, что последнее, о чем они должны помнить, - это тратить больше средств на настройку и усовершенствование технологий открытого исходного кода для удовлетворения потребностей своего бизнеса.

Итак, что они ищут (исходя из моего консалтингового опыта), так это покупают и запускают пакет продуктов, и им не нужно тратить больше на исследования и хакерскую часть. Компании, использующие open source build, создали свои собственные группы поддержки по всему миру, чтобы удовлетворить любые потребности в поддержке, которые крупные предприятия не очень хотят делать. Им нужно, чтобы все было сделано быстро и точно, и они могут заплатить.

1 голос
/ 08 декабря 2008

Linux используется очень часто. Apache и Tomcat используются очень часто. MySQL может быть надежным сейчас. Я бы использовал PostgreSQL вместо этого. Банки будут использовать Oracle, но там есть хорошая поддержка Java и Tomcat. PHP часто используется, но многие крупные компании предпочли бы Java.

На мой взгляд, лучше всего спорить о Linux (возможно, коммерчески поддерживаемой версии) Tomcat, Java, Tomcat | Oracle | MSSQL.

Вам понадобится системный администратор Linux, особенно с учетом увеличения количества серверов, хотя я уверен, что вы можете получить неполный рабочий день до того, как наступит это время. Если у компании уже есть системные администраторы Windows, то спорить о Linux будет сложно.

1 голос
/ 08 декабря 2008

Для крупных предприятий, использующих стеки LAMP, есть две основные проблемы:

  • TCO : принимая во внимание, что LAMP в основном бесплатен, предприятия по-прежнему достигают более низкой общей стоимости эксплуатации с другими коммерческими решениями
  • Поддерживаемость : у предприятий нет проблем с выплатой дополнительного доллара за круглосуточную профессиональную поддержку от своих коммерческих поставщиков
0 голосов
/ 08 декабря 2008

Redhat и IBM предоставляют полную поддержку Linux, Sun купила MySQL, Yahoo использует Php, многие компании используют стек LAMP, но многие используют детали.

0 голосов
/ 09 декабря 2008

Лично я не считаю Linux поддерживаемым менее хорошо, чем другие упомянутые ОС; на самом деле поставщики оборудования обычно поддерживают Linux поверх любой другой ОС (кроме Windows, которую они обычно поддерживают довольно хорошо, если вы используете дистрибутивы maintream).

При условии, что вы не используете причудливый аромат (Совет: просто используйте RHEL или Centos, который является его бесплатным эквивалентом), Linux очень хорошо поддерживается.

MySQL может иметь некоторые недостатки, но, на мой взгляд, у него много сильных сторон; мы используем его в больших масштабах способами, которые не предназначены, но в целом он все еще работает довольно хорошо (большинство проблем связано с тем, что наши версии устарели или плохо настроены).

Что «P» означает в ЛАМПА спорно. Я чувствую, что PHP не готов для предприятия, потому что у него так много индивидуальных недостатков (например, плохая обработка юникода, отсутствие пространств имен, непоследовательные API, несовместимый синтаксис, плохая обратная совместимость версий, дублируемая / устаревшая функциональность), что они в совокупности усложняют его. внедрить ремонтопригодную систему.

Но при наличии соответствующей опытной команды, даже если вы выберете PHP, его можно использовать для создания чрезвычайно качественного приложения.

...