問題タブ [hardware-infrastructure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hardware-infrastructure - パブリック Web アプリケーションのハードウェア インフラストラクチャ
無料の予算/個人金融サイトを開始したいのですが、十分な処理能力とストレージが必要です。私は間違いなくヌービーです。ハードウェア インフラストラクチャに関しては、どのように始めるのですか? ISP から専用 IP を取得し、独自のサーバーを取得する必要がありますか? amazon または Sql Server Data Services/Azure またはそのようなものを使用しますか? 後者のサービスは無料ですか、それとも私が開始しようとしている予算/個人金融サイトなどの非営利/無料サービスで利用できる割引サービスですか?
database - データベースとWebサーバーを同じマシンに配置することが推奨されないのはなぜですか?
スタックオーバーフローチーム(パート1および2 )へのScott Hanselmanのインタビューを聞いて、彼はSQLサーバーとアプリケーションサーバーを別々のマシンに配置する必要があると断言しました。これは、1つのサーバーが危険にさらされた場合に、両方のシステムにアクセスできないようにするためだけですか?セキュリティ上の懸念は、2台のサーバーの複雑さ(余分なコスト、2台間の専用ネットワーク接続、より多くのメンテナンスなど)を上回りますか?特に、どちらの部分もCPUやメモリを使いすぎていない小さなアプリケーションの場合はそうですか?2台のサーバーがあり、1台のサーバーが危険にさらされている場合でも、攻撃者はデータベースを削除するか、アプリケーションコードをいじることによって、深刻な損害を与える可能性があります。
パフォーマンスが問題にならないのに、なぜこれがそれほど大きな問題になるのでしょうか。
sql-server - Web サーバーごとに SQL サーバーを用意するのが賢明でしょうか?
私は、その状況下で、
- 書き込みよりも読み取りの方がはるかに多い
- 選択した SQL サーバーは安価/無料で、高速ミラーリング/レプリケーション サービスを提供します
- あなたのデータベースはそれほど大きくありません
別々の SQL サーバーを用意するよりも、各マシンに SQL のインスタンスを用意して、マスターから即座に更新を取得する方がよいでしょう。この方法では、すべての読み取りクエリを実行するときにネットワーク遅延は発生しませんが、SQL インスタンスを実行する必要があるため、ボックスごとのパフォーマンス ヒットが発生します。これにより、全体的にパフォーマンスが向上しますか? 他に考えられる長所/短所はありますか?
multithreading - 並列処理における物理コアと仮想コア
仮想化に関しては、物理コアと仮想コアの関係、特に並列処理を使用するアプリケーションにどのように影響するかを検討してきました。たとえば、VM シナリオで、物理コアが仮想コアよりも少ない場合、それが可能である場合、アプリケーションの並列処理にどのような影響または制限が課されるでしょうか? 私の環境では、物理アーキテクチャが何であるかについて開示されていないため、質問しています。シングル コアの物理マシンでホストされているデュアル コア VM にアプリケーションが存在する場合、並列化にはまだ多くの利点がありますか?
web-applications - 典型的な中規模から大規模のWebアプリケーションは、インフラストラクチャに関してどのように「成長」しますか?
やせっぽち:Facebook / Twitter / Youtube(何でも)がソフトウェアの基本的なアイデアから...より大きく(おそらく10万人のユーザー?)に変わったとき、彼らはどのように成長しましたか?
中規模のWebアプリケーションの「ベストプラクティス」の成長パスはありますか?
本当の質問:中規模のWebアプリケーションプロジェクトを指定または入札する場合、大きな問題は何ですか?この場合、問題のPHPフレームワークを使用しますが、これらはほとんどすべての言語に一般化されるようです。
したがって、コアアプリケーションのプログラマーは(私にとって)最も明白な部分です。アプリケーションを処理するために作成されたユーザー管理、ユーザーインターフェイス、および特別なクラスを取得します。しかし、これは実際のプロジェクトの半分未満のように思えます。
最終的には、順調に成長しているため、インフラストラクチャとメタUIの問題が主な焦点になりますね。
1)インフラストラクチャ:クラウドアプリケーションスペース、データストレージ、マルチデータセンターの状況でのデータベースの同期。
2)言語と文化の問題:アプリを「好感が持てる」、または少なくとも主要な「文化市場」で使用できるようにする
3)データのインデックス作成の問題
4)API /相互運用性の問題(Facebookの組み込みアプリと、エンドユーザーと検索エンジンなどの主要なプレーヤーの両方に対するデータの外部アクセスの両方)
...だから、私はそれらの約半分が欠けていると確信しており、それらがどのように優先されるのかほとんどわかりません。
ここで受け入れられた答えは、私が求める答えのかなり良い出発点です。
database - 個別のアプリケーション サーバーとデータベース サーバーのパフォーマンスとオールインワンのパフォーマンス
適切なデータベース設定を必要とする既存のアプリケーションを移行しています。2 つのサーバー構成で単純な mysqlslap テストを実行しました - アプリと db サーバーの組み合わせ、個別のアプリと 2 つの db サーバー (マスター/スレーブ):
mysqlslap --auto-generate-sql --concurrency=50 --number-of-queries=1000 --number-char-cols=50 --number-int-cols=50 -vv
- 同じインスタンス サイズを使用し、db サーバーから実行されている場合でも、別のサーバーの結果は遅くなります。
- マイクロタイムを使用してクエリをループする別のテストでは、サーバー間にかなりの遅延があります。例: テスト 1 は、結合で 0.01 秒、分離で 0.1 秒であり、3.0 (分離) と比較して 0.2 (結合) です。
私の質問:
- これらは期待される結果ですか?
- サーバー間の待ち時間を最小限に抑える方法はありますか?
- sysbench を使用して既存のサーバーと照合することはできません。実行したテストは満足のいくものですか、それともより良い代替手段がありますか?
operating-system - Docker をベアメタルで実行することは保守可能ですか?
自分のプラットフォームで Docker コンテナーとして配布される Web サービスを作成したいと考えています。
仮想 OS レイヤーからのオーバーヘッドがないため、物理マシンで Docker を実行すると、VPS で実行するよりも高速です。ただし、環境内のソフトウェアがシステムをクラッシュさせた場合、VPS はより保守しやすくなります。
Docker コンテナー内の環境がハッキングされたり、バグや例外、または外部からの攻撃によって OS が破損したりした場合、どうなるのだろうかと考えています。ホスト システムに影響を与え、マシン全体が破損またはクラッシュする可能性はありますか?
Docker を物理的に実行することをお勧めしますか、それとも仮想マシン内で実行することをお勧めしますか?