ホームページ >バックエンド開発 >PHPチュートリアル >エンタープライズレベルのアプリケーション向けの SaaS プラットフォームの開発にはどの言語が最適ですか?あるいはどの組み合わせでしょうか?

エンタープライズレベルのアプリケーション向けの SaaS プラットフォームの開発にはどの言語が最適ですか?あるいはどの組み合わせでしょうか?

WBOY
WBOYオリジナル
2016-06-17 08:32:484992ブラウズ

たとえば、eHR および KM システムは、HTML5 を使用して、ユーザー インターフェイスでインターネット製品と同様のクールな効果を実現したいと考えていますか?そして、高い同時実行性 (単一サーバー上で 10,000 レベル) を実現するにはどうすればよいでしょうか?

返信内容:

ご招待いただきありがとうございます。 Python/Ruby が第一の選択肢です。開発効率の高さが最も重要です。Java/C# などの静的言語は考慮しないでください。

高い同時実行性は言語とは関係ありません。ステートレスなロード ルーティングと非同期 IO が高い同時実行性の鍵です

Python/gevent によって達成される高い同時実行性は、従来の Java サーバーのそれをはるかに上回ります 私たちの会社が使用しているものについて話し、それに慣れてみましょう
私たちの会社の製品は、エンタープライズ ユーザー向けの Web アプリケーションです。 アーキテクチャについて簡単に説明し、必要に応じてさらに追加しましょう。
データベース: mysql、一部のキャッシュは redis を使用します
バックエンド: java/hibernate/spring
フロントエンド: jsp/css (less->最近 saas への移行準備中)/js (jquery、backbone)
デプロイメント: puppet/fabric/jenkins
検索: solr
サーバー: aws

サーバーは 1 日に十数回または 20 回デプロイされます。
実際、言語は重要ではありません。活発なディスカッションと、いつでも簡単に使用できるさまざまな成熟したライブラリを備えた成熟したコミュニティを選択してください。 フロントデスクは優れたものでなければなりません。同時実行性の高いリッチ クライアント
を作成するには、10,000 のレベルだけでは十分ではありません。シナリオが明確に指定されていません。1 時間あたり 10,000 人のアクセスを持つ単一の E5 ですか、それとも 1 時間あたり 10,000 人の同時ユーザーですか?一般的に言えば、ハードウェア > 分散 > 非同期 + キャッシュ > エンタープライズ レベルの高い同時実行性を改善するのが基本です。 あなた自身の経験について話し、それが役立つかどうかを確認してください。

エンタープライズ アプリケーションの負荷:
単一サーバー エンタープライズ レベルのアプリケーション 数万の同時実行。既存の主流のアーキテクチャではその可能性はほとんどありません。たとえ何十万ものハイエンド アプリケーション サーバーを構成したとしても。ボトルネックのほとんどは IO にあり、その中でもリレーショナル データベースがボトルネックの主な原因の 1 つです。noSql などのソリューションを使用しない限り、エンタープライズ アプリケーションではリスクが高くなります。エンタープライズ アプリケーションでの noSql の実践例や事例はあまりありません。 。
ここでのエンタープライズ アプリケーションとは、テキストや画像ではなく、主にクエリやビジネス操作に基づいたアプリケーションを指します。クエリの複雑さは予測できません。

エンタープライズ アプリケーションのテクノロジ:
エンタープライズ アプリケーション自体の特性により、インターネットほどコストがかかることはありませんが、インターネットの焦点はエンタープライズ アプリケーションとは異なります。ユーザーエクスペリエンスにも注意を払う必要がありますが、エクスペリエンスの主な焦点は「自分自身のマーケティング」ではなく、作業効率の向上です。インターネット申請の主な焦点は「自分自身をマーケティングする」こと、つまり、美しく着飾ってできるだけ実用的であることを意味します。
テクノロジーの選択に関しては、エンタープライズ アプリケーションが注意を払うべき主なポイントがいくつかあります。
1. 万能な言語を使用し、技術アーキテクチャの複雑さを軽減するように努め、選択するのは 1 つだけですこのアーキテクチャを実装するには 2 つの言語を使用する必要があります。これにより、システムが複雑になりすぎて保守不能になったり、チーム間のコミュニケーションが困難になったりすることがなくなります。
2. 選択したアーキテクチャには、ソリューションのさまざまな側面から選択できる、より成熟したフレームワークが必要です。たとえば、このアーキテクチャに複数のワークフロー エンジン、ルール システム、トランザクション システム、メッセージング システムなどが選択されているかどうかなどです。
3. 人材の採用をできるだけ簡単にする。選択した言語やアーキテクチャが市場で人材を採用しやすいかどうか、また人材の育成や補充が比較的低コストで行えるかどうか。

では、どの言語で使用できるのでしょうか?


ちょっと謙虚な意見。 この技術ブログには、いくつかの開発モデル、ストレス テスト データ、理論的フレームワークなどが含まれています。rdc.geasy.com/ チームコミュニケーションおよびコラボレーションソフトウェアグループプランニング、グループプランニング - チームコミュニケーションを統一し、効率的に作業を完了します、これはSAAS製品でもあり、go言語で開発されており、参照できます。 それはまだ意味があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。