26

LAMP (Linux、Apache、MySQL、PHP / Ruby / Python) スタックはエンタープライズでの使用に適していますか?

明確にするために、「エンタープライズ」とは、セキュリティ、堅牢性、スキルセットの可用性、総所有コスト (TCO)、スケーラビリティ、およびツールの可用性が重要な考慮事項である大企業または非常に大規模な企業を意味します。別の言い方をすれば、フレームワーク/アーキテクチャの外部採用を求める企業 - この種の環境では、エキゾチック/難解なものよりもユビキタスなものの方が「有効」と見なされます。

私は、Oracle、IBM、および Sun がさまざまな企業向けに LAMP スタックにシステムを実装したユース ケースを見てきました。また、yellowpages.com (Ruby on rails) や Facebook (php) などの Web サイトがその上に構築されている例も見てきました。ただし、これらの例はどれも、まさに私が探しているものではありません。

非常に大きな銀行 (例: Citigroup)、通信会社 (例: AT&T)、または製造業者 (例: Proctor and Gamble) のエンタープライズ標準である例を実際に見つけようとしています。明確にするために、私はそれが限られた意味で使用されている例を探しているのではなく (JP モルガン・チェースのように)、CRM、製造システム、または人事管理などのシステムのコア・プラットフォームであり、内部のおよび外部ウェブサイト。

これまで見てきた認識では、LAMP スタック上に構築されたアプリケーションはパフォーマンスが遅く、柔軟性が低いということです。私が聞いた議論のいくつかは次のとおりです。

  • Linux は、Unix、Solaris、または Windows サーバーほどサポートされていないと見なされています。

  • Apache は、BEA WebLogic や IIS などの Web サーバーよりも構成と保守が困難です。

  • MySQL は愛好家向けの「プライム タイムの準備ができていない」DB であり、SQL Server や Oracle の競合相手ではありません (ただし、PostgreSQL はより堅牢であるという評判があるようです)。

  • PHP / Ruby on rails は、CRUD (作成、読み取り、更新、および削除操作) 用に最適化されています。これは、CRUD を多用する Web アプリケーションを構築する場合の利点ですが、Java/Java EE または C# (どちらも一般的なエンタープライズ標準) よりもパフォーマンスが遅くなります。さらに、多くのアプリケーションやシステム (製造システムなど) には、多くの非 CRUD 機能があり、PHP や Ruby、さらには Python で構築するのが難しい場合があります。

LAMPスタックがエンタープライズに適しているという考えを支持または反論する議論を誰か提供してもらえますか?

ありがとう!

更新: LAMP スタックが企業での使用に適している場合があります: 外部向けブログ

4

21 に答える 21

23

「しかし、CRM や HR などのシステム、および社内外の Web サイトのコア プラットフォームです」

まず、LAMP CRM または HR アプリケーションを見つけます。

次に、LAMP CRM または HR アプリケーションの顧客を見つけます。

悲しいことに、項目 1 の例はあまりありません。したがって、あなたのケースは証明されています。現在、「エンタープライズ」と呼ばれるアプリケーションがないため、エンタープライズ アプリケーションには使用できません。

しかし、あなたの他の点は非常に興味深いものです。

  1. Linux は、Unix、Solaris、または Windows サーバーほどサポートされていないと見なされています。Red Hat はこれに強く反対すると思います。彼らに電話してください。とても説得力のある売り込みをしてくれると思います。彼らのサクセスストーリーを読んでください。

  2. Apache は、BEA WebLogic や IIS などの Web サーバーよりも構成と保守が困難です。誰によって?Apache Web サイト管理者? それとも IIS Web サイト管理者ですか? これは完全に主観的なものです。

  3. MySQL は「プライムタイムの準備ができていない」 DBです。Sun Microsystems で取り上げてください。彼らはこれに強く反対すると思います。彼らに電話してください。とても説得力のある売り込みをしてくれると思います。彼らのサクセスストーリーを読んでください。

  4. PHP / Ruby on rails は CRUD 用に最適化されており、どちらもパフォーマンスが遅いです。本当かもしれません。Java と Python の方が速いかもしれません。PHP と Ruby は LAMP の最後の言葉ではありません。

于 2008-12-08T15:59:39.190 に答える
12

この種の環境では、どこにでもあるものは、エキゾチックで難解なものよりも「有効」と見なされます。

PHP には多くの欠陥があるため、個人的にはお勧めしませんが、どこにでもあることは間違いありません。phusion パッセンジャーの出現により、共有ホスティング会社の間での Rails サポートも急速に拡大しています。共有ホスティング アカウントの 90% 以上がそのままレールをサポートするまで、あと 1 年か長くても 2 年かかります。それがユビキタスでない場合、それは何ですか?

Linux は、Unix、Solaris、または Windows サーバーほどサポートされていないと見なされています。

これが気になる場合は、RedHat からサポートを購入するか、Solaris をインストールして Sun からサポートを購入してください。どちらも、Microsoft と同じくらい優れたサポートを提供します。

Apache は、BEA WebLogic や IIS などの Web サーバーよりも構成と保守が困難です。

私は BEA WebLogic について話すことはできませんが、Apache、IIS、および Tomcat の両方を構成したので、Apache は最も理解しやすく、例やドキュメントを遠くから見つけるのに最も簡単です。

MySQL は、愛好家にとって「まだ準備ができていない」DB であり、SQL Server や Oracle の競合相手ではありません。

まあ、本当に?. NASA、Google、CERN、ロイターなどに、彼らがすべて趣味のデータベースを使用していることを伝えることをあなたの使命とすべきです。

PHP / Ruby on rails は CRUD 用に最適化されており、どちらも Java/Java EE または C# (どちらも一般的なエンタープライズ標準) よりも低速です。

ここには2つのことがあります:

CRUD 用に最適化 - これはまったく関係ありません。
Rails と一部の python/php フレームワークは、CRUD アプリ用に最適化されています。C#/Java フレームワークの多くは、CRUD アプリ用にも最適化されています。ただし、構築しているアプリが CRUD アプリである場合 (そして Web アプリケーションの 99% はそうです)、これは良いことではないでしょうか?
CRUD アプリを構築していない場合、ruby/python/php/java/C# には、crud に最適化されていないフレームワークがたくさんあります。純勝利: 誰もいない (したがって、無関係です)

Java/C# よりもパフォーマンスが遅い - これは間違いなく真実ですが、問題ではありません。トラフィックの少ないサイトの場合、パフォーマンスの違いは何の意味もありません。また、トラフィックの多いサイトの場合、MySQL、Oracle などのデータベースがボトルネックになります。

これらすべてとトレードオフするのは、開発時間です。このアドバイスをすべて使用して、LAMP を使用しても何も失うことはないことを上司に納得させたら、数値を計算して、Java でサイトを構築するのに 6 人月かかることを上司に示すとします。 、そして ruby​​/python でビルドするのは 3 つだけです。

于 2008-12-08T23:44:06.507 に答える
9

それを実装するために馬鹿を雇うと、C++ と Oracle はスケーリングに失敗します。賢くて物事を成し遂げる人材を雇えば、PHP と MySQL は問題なく拡張できます。

セキュリティと堅牢性についても同じことが言えます。

Facebook、Digg、Yahoo の一部は PHP で動作します。もちろん、彼らは多くの博士号を持つプログラマーを雇っています。

于 2008-12-08T18:12:28.597 に答える
7

LAMPで実行されているWebサイトのリストに別のWebサイトを追加すると思っただけです-ウィキペディア。完全にPHPで記述され、MySQLで動作する、世界で7番目に大きいWebサイトであり、有料の開発者は2、3人しかいません。もちろん、彼らはボランティアからの援助もありますが、それはそれほど多くはなく、うまくスケーリングされています。あなたが本当に彼らを「エンタープライズ」と呼ぶかどうかはわかりませんが、そのような巨大で人気のあるウェブサイトのために、彼らは彼ら自身のために大丈夫だったようです。

Linuxは、Unix、Solaris、またはWindowsServerほどサポートされていないと見なされています。

他の人が上で言ったように、Red Hatに電話をかけてください、そうすれば彼らは違うように頼むでしょう。そして、Linuxの完全無料サポートの量は驚くべきものです。

Apacheは、BEAWebLogicやIISなどのWebサーバーよりも構成と保守が困難です。

それはあなたが誰に尋ねているかによります。通常IISサーバーを管理している人は、おそらくこのように表示します。通常Apacheを管理する人は管理しません。それはあなたが誰を雇うかによります、そしてあなたのスタックがLAMPであるなら、あなたはとにかくApacheの経験のない人々を雇いたくないでしょう。

于 2008-12-10T03:45:01.170 に答える
6

最初の基準は、チームのスキルレベル、プラットフォームの決定がうまく機能することを確認するための快適さのレベルであるべきだと思います. 何を決定するにしても、コードのスケーラビリティと保守性を考慮してください。どのスタックを選択しても、ツールは素晴らしいものです。

私は個人的にそれを3つのスタックに分解します-

  1. Solaris またはエンタープライズ Linux (RedHat) のような Weblogic/Websphere/Tomcat などと、Java Enterprise と Hibernate、Spring などのテクノロジを備えた Java スタック。ほとんどの場合、Oracle を DB として選択します。

  2. 必要に応じていくつかのオープン ソースを含む Microsoft スタック Win サーバー - IIS - .net/C# (ASP.net など) - NHibernate、NUnit (単体テスト) など。ほとんどの場合、SQL Server を DB として使用することをお勧めします。

  3. MySQL (現在は Sun のドメインの下にあるため、真剣に検討することができます)、Apache (そこには apache の達人がいます)、Ruby (私の個人的な選択ではありません)/PHP などのオープン ソースのビュッフェ全体を実行している Enterprise Linux では、上記のスタックはどれもありません。 (頑張ってください) / Python (成熟した言語なので気に入っています)。コード管理の観点からは、python または ruby​​ を推奨します。多分それはPHPかもしれません..私はそれに興味がありません。

于 2008-12-08T19:20:35.510 に答える
6

ただ付け加えておきたいのは、たとえどんな議論をテーブルに持ち込んでも、エンタープライズ統合がさらに難しくなったとしても、クライアントが何かの解決策のために真剣な $$$ を提供して初めて安心できるということを何度も目撃したということです。

于 2008-12-08T16:55:07.207 に答える
5

厳密には主観的な意見ですが、個人的には MySQL と、それほどではないが PHP が少し弱点だと思います。

私は、postgres や SQLite が MySQL 市場から大量に取り除かれることを望んでおり、mono、jsp、または cocoon ベースのアプリがもっと登場することを望んでいます。LAMP は包括的な用語としては少し具体的すぎると思います。:)

于 2008-12-08T16:06:48.427 に答える
5

Linux/Apache は堅牢で無駄がなく、それぞれに (もちろん適切な価格で) サポートを提供する多くの人々、多くの便利なツールが付属しており、その多くは非常に高いレベルのユーティリティで動作し、それらの上に構築されています。 .

ただし、他の2つについてはわかりません。特に、MySQL は Sun に買収されて以来、奇妙な方向に進んでいるようです。このスレッドの投稿では、Sun が良い影響を与えている可能性があることを示唆しています。

http://www.reddit.com/r/programming/comments/7gb8j/oops_we_did_it_again_mysql_51_released_as_ga_with/

于 2008-12-08T21:18:15.693 に答える
4

あなたの投稿にはいくつかの本当に悪い神話があります:

JavaEE の神話: -App Server は apache よりも構成が簡単です。いいえ、apache の方が簡単です。-あなたは、JavaEE フル ソリューションだけがエンタープライズであることをほのめかしています。

CRUD 神話: -CRUD は JavaEE よりも遅い? なんてこと?POJO と EJB は CRUD を使用しています。制限要因はクラッドではなく、そのサーバーのスループットです

サーバー実装、永続化レイヤー、アプリ レイヤーなど、どのテクノロジーを使用する場合でも、3 つの制限的なボトルネック領域があります。選択したテクノロジーは速度要因ではありません。1 つのレイヤーの利点を別のレイヤーの欠点と交換できるからです。たとえば、通常の DB の代わりにドキュメント ストアを使用して Java を高速化できます。

ほとんどの新しい Rails 実装は、Apache よりも 3 倍から 5 倍高速な非 Apache サーバーを使用しています.十分に調整された Apache サーバーでさえ、一部の javaEE スタックよりも優れたパフォーマンスを発揮できます.プロパティの一部で Symfony を使用しているため、yahoo に問い合わせてください..

于 2010-01-01T14:54:43.150 に答える
3

多くの企業が、Redhat、Novell、または IBM によってサポートされることが多い Linux サーバーを使用しており、Apache も一般的に使用されていることがわかると思います。

しかし、多くの企業は、オープン ソース製品の代わりに、Oracle や IBM DB2 などのデータベースを使用する傾向があります。ただし、これらのシステムが提供する種類のパワーを実際には必要とせず、MySQL や PostgreSQL で済む企業もたくさんあります。

また、Web サーバー言語については、ほぼ何でも使用できると思います。ただし、Apache を使用する場合は、おそらく PHP、Ruby、または Python を使用する方が簡単です。一方、IIS、Weblogic、または Domino を使用する場合は、Java / C# で実行する方が簡単です。

于 2008-12-08T16:19:34.453 に答える
2

大規模な商用 CRM および HR アプリケーションは、製品の基盤として大規模な商用 RDBMS 製品を提供することに偏っている可能性があると思います。少なくとも、共通の脅威に対して団結することを好むでしょう。

また、ライセンスとサポートの料金がない製品を統合する場合、ライセンスとサポートの料金を正当化するのに苦労します。

于 2008-12-10T03:51:47.147 に答える
2

IMO には、Linux と Apache に対する適切な一般論はありません。Linux にお金を払う覚悟があれば、Linux のエンタープライズ レベルのサポートを確実に受けることができます (コミュニティのルールに従ってプレイする意思がある場合は、ほぼ無料でおおよそのサポートが得られます)。また、より複雑な機能が必要でない限り、Apache の構成はそれほど難しくありません。これは、アプリケーション サーバーではほとんどありません。

データの安全性に関する最も重要な機能のいくつかが最近追加されたばかりであるため、MySQL に対して確かに反対することができます。それが心配な場合は、代わりに PostgreSQL を使用してください。

アプリを作成する言語に関しては、PHP は非常に大規模で複雑なシステムを実行できることが確実に証明されています。パフォーマンスよりも保守性が気になります。また、Ruby on Rails が「CRUD 用に最適化」されているのは、単純な CRUD Web アプリケーションをほぼ短時間 (文字通り数分) で作成できるという点だけです。はるかに多くの時間 (他の多くの言語よりもまだ少ない)

于 2008-12-08T16:01:53.913 に答える
2

エンタープライズ システムのスケーラビリティ要件と、Web アプリケーションとの違いを特定することをお勧めします。Wikipedia、Flickr、Wordpress、Facebook、MySpace など、最もスケーラブルなシステムをいくつか見てみましょう。そこに LAMP スタックが表示されます。私はどちらかというと Python のファンですが (言語の方がすっきりしていると感じているため)、スケーラビリティに関する本を書いた Cal Henderson (Flickr) のような専門家が、MySQL サーバーのバンクをどのようにスケーリングしたかについて話しているのを聞いています。

エンタープライズ システムに不可欠な機能は何ですか?

サポート、専門知識の入手可能性、プラットフォーム/言語の安定性はおそらく重要です。

しかし、LAMP には、より迅速な開発、容易な拡張性、再利用可能な多数のライブラリ、スケーラビリティに関するいくつかの文書化されたストーリー、成熟した Web フレームワークなどの他の機能があります。

ここでは、スケーラブルなシステムを構築するためのヒントをいくつか紹介します (私は Web スケールについて話しています)。これらすべての証拠に照らして、LAMP がエンタープライズ アプリケーションの準備が整っていないという認識がなぜ頻繁に出てくるのか、私はいつも疑問に思っていました。

Apache に関しては、すべての Netcraft の調査で、非常に異なる採用ストーリーが示されています。サーバーの数が非常に多いため、Web サーバーを構成、調整、および拡張する知識を持っている人が増える可能性があります。

スケーラブルな Web アーキテクチャ 1995 年 8 月から 2009 年 1 月までのすべてのサーバーの市場シェアをご覧ください

于 2009-02-21T04:16:01.273 に答える
2

私の2c:

Linux: カーネル 2.6 が出てきたので、間違いなく高品質の OS だと思います。バージョン 2.4 は完成度が低く、2.2 は冗談でしたが、2.6 は本当に優れています。ただし、ディストリビューションの選択には注意してください。私の経験では、RedHat/CentOS は非常に優れており、適切な管理者がいる場合は、明らかに Debian (オリジナルであり、Ubuntu ではありません!) を適切にセットアップできます。私の OpenSUSE の使用経験はあまり良くありませんでした。

Apache: 使用していませんが、なぜ問題になるのかわかりません。

MySQL: これはスタックの最も弱い点です。ここでは詳しく説明しません。興味があれば、reddit.programming のコメントを調べてください。PostgreSQL をよく見てください。

PHP/Perl/Ruby/Python: 私は Perl を使用してきましたが、Python も少しだけ使用しました。いずれにしても、大部分の作業が Web サーバーと DBMS によって行われる Web ベースのアプリケーションでは、おそらく問題ありません。ただし、私は静的型システムを好み、ビジネス アプリケーションには Java/C# を、システム プログラミングには C++ を選びます。

于 2008-12-10T15:10:06.420 に答える
1

Linux が多く使われています。Apache と Tomcat がよく使われます。MySQL は今では堅牢かもしれません。代わりに PostgreSQL を使用します。銀行は Oracle を使用しますが、そこでは Java と Tomcat が適切にサポートされています。PHP はよく使われますが、多くの大企業は Java を好むでしょう。

私の意見では、Linux、(おそらく商用サポートされているバージョンの) Tomcat、Java、Tomcat|Oracle|MSSQL ソリューションについて議論するのが最善です。

特にサーバーの数が増えると、Linux システム管理者が必要になりますが、その前にパートタイムのシステム管理者を雇うことができると確信しています。会社に既に Windows のシステム管理者がいる場合、Linux について議論するのは難しいでしょう。

于 2008-12-08T16:47:09.500 に答える
1

LAMP スタックを使用する大企業には、主に 2 つの問題があります。

  • TCO : LAMP は基本的に無料であることを考慮すると、企業は他の商用ソリューションを使用して総運用コストを削減できます。
  • サポート性 : 企業は、商用ベンダーから 24 時間体制の専門的なサポートを受けるために追加料金を支払うことに何の問題もありません。
于 2008-12-08T15:57:58.150 に答える
0

Redhat と IBM は Linux を完全にサポートし、Sun は MySQL を買収し、Yahoo は Php を使用し、多くの企業が LAMP スタックを使用していますが、多くの企業はパーツを使用しています。

于 2008-12-08T16:03:27.327 に答える
0

個人的には、Linux のサポートが言及されている他の OS よりも劣っているとは思いません。実際、ハードウェア ベンダーは通常、他のどの OS よりも Linux をサポートしています (メインストリーム ディストリビューションを使用している場合、Windows は一般的に十分にサポートしています)。

奇妙なフレーバーを使用しない限り (ヒント: RHEL またはそれに相当する無料の Centos を使用してください)、Linux は十分にサポートされています。

MySQL にはいくつかの欠点があるかもしれませんが、私の意見では多くの長所があります。意図しない方法で大規模に使用していますが、それでも一般的には非常にうまく機能します (ほとんどの問題は、バージョンが古いか、構成が不適切であることが原因です)。

LAMP で「P」が何を表すかは議論の余地があります。PHP には個別の欠点が非常に多く (例: Unicode の処理が不十分、名前空間がない、一貫性のない API、一貫性のない構文、不十分なバージョンの後方互換性、重複/廃止された機能) があり、それらが積み重なり困難になっているため、PHP はエンタープライズ対応ではないと感じています。保守可能なシステムを実装します。

しかし、適切な経験を積んだチームがあれば、たとえ PHP を選択したとしても、それを使用して非常に高品質のアプリケーションを作成することができます。

于 2008-12-08T21:15:56.383 に答える
-1

それが Google にとって十分であるなら、私を信じてください。あなたにとってはそれで十分です。

于 2009-02-13T08:57:20.443 に答える