独自のドメイン名でブログを始める場合、4 ドルのドメイン名に値するためには、最初の投稿がもう少し重要なものでなければなりません。技術者として10年間さまよった結果、世界中を読んでヒントを整理する必要があることがわかりました。それを最初から順を追って体系的に説明します。訪問者が数千人いる小規模な Web サイト、または 1 日に 100 万人または 200 万人の訪問者がいる小規模な Web サイトは、テクノロジーに固有の欠点を持たずにこの段階をスムーズに通過できるでしょうか? この記事は一部の技術者向けに書かれていますが、そうでない起業家向けにも書かれています。テクノロジーを理解します。
インターネットに詳しい人なら誰でも自分のアイデアを持っていて、そのアイデアを実践してWebサイトを構築し、運営を始める人もいます。実際、純粋な Web サイト技術の観点から見ると、オープンソース モデルの発展により、小規模な Web サイトを構築することが非常に簡単かつ安価になりました。訪問回数が一定のレベルに達すると、費用が高騰し始め、問題が発生し始めます。帯域幅の増加、ハードウェアの拡張、人員の拡張によるコストの増加は明らかであり、コストのかなりの部分はコードの再構築、アーキテクチャの再構築、さらには基盤となる開発言語の置き換えによっても発生します。最大の問題はデータの損失です。数年間一生懸命働いた後、一夜にしてビジネスを開始する前に戻ることができます。
コストを削減することは利益を増やすことを意味します。最初にしっかりとした基礎を築くことで、多くのことを避けることができ、将来的には多くのエネルギーと心配を節約できます。
あなたがビジネスの立ち上げに携わる技術者で、現在破産しているとします。特に複雑ではないアプリケーションを備えた Web サイトを構築するには、すべてを自分で行い、費用を支払う必要があります。次の点に注意する必要があります。
1. 開発言語
一般に、技術者(プログラマー)がビジネスを始めるときは、自分の技術的背景に基づいて最も使い慣れた言語を選択しますが、必ずしも一人でプログラムを作成できるわけではないことを考慮すると、これについては慎重に検討する必要があります。どのような言語を使用する場合でも、最終的なコードの品質は管理に依存するため、純粋な言語レベルから実践的である必要があります。人気のある Java、php、.net、python、および Ruby にはそれぞれ長所と短所があります。Python と Ruby の場合、人材を採用するのはまだ比較的難しく、.net プラットフォームではパフォーマンスの最適化にはある程度の労力がかかります。 Windows サーバーを購入できる余裕があります。 Java と PHP が依然として最もよく使用されています。アプリケーションが初期段階でフロントエンドによってサポートされることがほとんどである Web サイトでは、簡単に入力できる、シンプルなデザインパターン、高速な書き込み、十分なパフォーマンスなど、PHP の方がわずかに優れていますが、デザインパターンに注意が払われていないという点もあります。緩くてバグが多く、メンテナンスが難しい。 Java の利点は、管理プロセス全体が多くの成熟したツールによって支援されており、ほとんどの JAVA プログラマは、実用的であるかどうかに関係なく、コード形式に注意を払っています。まだ良さそうです。これは、初心者がパターンに注目しすぎて、実際のニーズを解決するのが難しくなる可能性があるという欠点でもあります。
フロントエンドはHTMLやCSSだけではありません。ユーザーとの対話を担当する部分全体が、ハンドラーを含むフロントエンドです。このタイプのプログラムには依然として PHP を使用することが推奨されます。その主な理由は、開発が迅速であり、幅広い実践者が存在することです。動作分析、銀行インターフェース、非同期メッセージ処理などのバックエンドに関しては、どのプログラムを使用する場合でも、さまざまなビジネス ニーズに応じて異なる言語を選択することしかできません。
2. コードのバージョン管理
開発者間のネットワーク速度が同等の場合は SVN を使用し、国を越えて分散している場合は hg を使用します。ほとんどの人はまだ svn を使用しています。
svn を選択すると仮定すると、いくつかの考慮事項があります。 1 つは、どのようなツリー構造を使用するかです。初期段階ではトランクは 1 つしかないかもしれませんが、後で開発ブランチやオンライン ブランチなどのブランチを確立する必要があります。その後、各チームに 1 つのブランチが存在する可能性があります。人数が少ない場合は、最初に開発とオンラインの 2 つのブランチを選択することをお勧めします。各機能のローカル テストが完了したら、最後に統合テストをオンライン ブランチにマージできます。オンライン。 svn をモバイル ハードディスクとして使用したい場合は、少し書いて一度コミットしても問題ありませんが、マージすると少し大きくなります。これらの人々はブランチやローカル コード ウェアハウスを作成できます。必要に応じて独自のブランチに送信し、再度開発ブランチにコミットします。
導入は手動または自動で行うことができます。手動デプロイメントは比較的単純で、通常はサーバー上で svn を直接更新するか、新しいディレクトリ svn checkout を見つけて、Web ルートを ln -s に渡します。アプリケーションが複雑になればなるほど、デプロイメントも複雑になります。ただ、ftp アップロードを使用しないでください。第 2 に、開発者のバージョンによってファイル参照が不一致になる可能性が高くなります。オンライン版と一致しないため、当初修正したかったタイプミスが生じましたが、結局ロールバックされました。複数のサーバーがある場合でも、コードが変更されたマシンは現在のサービス プールから一時的に削除され、更新が完了した後に再参加することをお勧めします。
プロジェクトがどんなに小さくても、少なくともバックアップとして使用できるように、バージョン管理を使用する習慣を身につけてください。ただし、変更するだけであれば、それは依然として svn です。 CSS が 1 つか 2 つあれば大丈夫です。
3. サーバーハードウェア
大口顧客や富裕層を羨ましく思わないでください。コンピュータ ルームの小売エリアを見てください。1 つのサーバーだけで無数の Web サイトがサポートされています。十分な資金がある場合は、Web 処理、データベース、バックアップ用に少なくとも 3 つの標準構成を用意することをお勧めします。 Web サーバーには少なくとも 8G のメモリとデュアル SATA RAID1 が必要です。経済性が少し低い場合、または静的ファイルや画像が多い場合は、15K SAS RAID1+0 が必要です。データベースには少なくとも 16G のメモリと 15K SAS RAID 1+0 が必要です。バックアップ サーバーをデータベース サーバーと同じ構成で構成することが最善です。ハードウェアについては、独自のブランドのシャーシを購入することもできます。つまり、シャーシにはマザーボードとハードディスク ボックスが装備されており、CPU、メモリ、ハードディスクの完全なセットを自分で購入することもできます。ブランド、またはマシンと互換性がある可能性があります。 3 台の場合、市場価格は 60,000 ~ 70,000 元です。
Web サーバーはプログラムを実行してメモリ キャッシュとして機能しますが、データベース サーバーはメイン データベースのみを実行します (MySQL の場合)。Web 構成、キャッシュ構成、およびデータベース構成は一貫している必要があります。このようにして、WEB またはデータベースのいずれかに問題が発生した場合は、バックアップ サーバーの IP アドレスを変更して切り替えます。バックアップ戦略には、drbd、rsync、またはその他の多くのオープンソース バックアップ ソリューションから選択できます。 rsync は最も単純で、cron に入れて自分で実行するだけです。バックアップと切り替えについては、より多くのテストを実施し、最も安全でビジネスに最適なものを選択し、可能な限りオフサイトの場所にバックアップすることをお勧めします。
4. コンピューター室
チャイナ ユニコムへのアクセスが非常に遅いチャイナ ユニコム コンピュータ ルーム、チャイナ テレコムへのアクセスが非常に遅いチャイナ ユニコム コンピュータ ルーム、チャイナ ユニコムへのアクセスが非常に遅いチャイナ モバイルまたはチャイナ レールコム コンピュータ ルームの 3 種類のコンピュータ ルームを選択しないようにしてください。ネットコムのコンピュータルームはどうですか?親愛なる、チャイナネットコムとチャイナユニコムはずっと前に合併し、チャイナユニコムと改名されました。北京、上海、広州などの主要なノード都市には、多くの検索、多くの訪問、多くのテスト、さまざまな方法での問い合わせがまだあります。特に、管理は厳密でなければなりません。 電話をかけた後、誰かがネットワーク ケーブルを切断したことが判明した場合、これは DOS よりも問題です。自分で数本の光ファイバーを引く場合、それはコンピューター室と呼ばれます。それはあなたのリスク許容度と心理的品質によって異なります。コンピューター室は、Web サイトのアクセス速度に直接関係していると言えます。壁を乗り越えて景色を見ることはできますが、購入するのは困難です。あまり知られていない Web サイトを開くためのオンライン ゲーム VPN。おそらく、あなたの Web サイトの Ajax は優れていますが、ドキュメントは決して準備ができておらず、一部のコードは常にユーザーから隔離されています。
5. 構造
初期アーキテクチャは一般に比較的単純で、Web 負荷分散 + データベース マスター/スレーブ + キャッシュ + 分散ストレージ + キューで構成されます。大まかな方向性としては、詳細に関しては、数え切れないほどの記事で繰り返されていますが、将来的には、Web が N 個、マスターとスレーブの関係が N 個、キャッシュが N 個増える予定です。 xxx の設計はすべて既製です。ただし、他の設計よりも優れているのは、キャッシュが失敗したときのアバランシェ効果、データの一貫性、マスターとスレーブの同期の時間差、安定性が考慮されていることです。キューの構成と失敗後の再試行戦略、ファイルストレージの効率とバックアップ方法、その他の予期しない状況。ある日キャッシュが故障し、ある日データベースのレプリケーションが中断され、ある日キューが書き込みできなくなり、ある日電源が切れてしまいます。マーフィーの法則によれば、これらを考慮しないと、Web サイトは遅かれ早かれコーヒーテーブルになってしまいます。
6. サーバーソフトウェア
Linux、nginx、php、mysql はほぼ標準です。名前に加えて、バージョンも選択する必要があります。特別な要件がない限り、Linux ディストリビューションは数多くありますが、Debian や Ubuntu など、最もユーザー数が多く、最も活発なコミュニティがあり、最も便利な構成で、最も完全で最新のソフトウェア パッケージを備えたものを選択してください。 RHELなどについては、RHELでしか動作しないソフトウェアを使用していますか?残りの nginx、php、mysql、activemq などについては、これらのソフトウェアを変更していない限り、またはプログラムが実際に新しいバージョンと互換性がない場合を除き、より新しいバージョンを使用するようにしてください。新しいバージョンほど、新しい機能が多くなります。バグの削減、パフォーマンスの向上。伝聞で古いバージョンが安定していると言う人が常にいます。いわゆる安定性とは、PHP で書かれた Web サイトの場合、ほとんどの場合、サーバー ソフトウェアのソース コードを変更せずに、新しいバージョンにスムーズにアップグレードできます。 jdk5 から jdk6、python2 から python3 への同様に、比較的大きな変更を伴うアップグレードはまだ比較的まれです。 ChangeLog を確認し、アップグレード手順を確認し、自分の状況に基づいて評価してください。アップグレードが早ければ早いほど良いでしょう。他の人は php6 を使用してプログラムを作成していますが、ここではまだ php4 を使用しています。優れたオープンソース プログラムをアップグレードすることには、依然として大きな責任が伴います。恐れることはありません。ドキュメントに注意してください。
以上の 6 点が準備できたので、動作環境、基本的なアーキテクチャの骨格、バックアップと切り替え計画を立てて、設計と開発を開始します。開発中のものは数え切れないほどあります。次の記事では、最初にいくつかの重要なポイントについて説明します。
元のアドレス: http://zhiyi.us/internet/ Thinking-twice- before-building-your-site-one.html
転載元がzhiyi.usであることを明記してください。