カテゴリー:コンピューティング

プロキシは、Apacheとのダイジェスト認証を

スティーブンロイドワトキン 、日曜日2011年3月27日12:57

このポストは使用する認証は、基本的な迅速にプロキシを設定する方法を示し、その方法をApacheを

場合には私の私が持っていると思った伝送ビットのTorrentクライアントを必要に応じてリリース)Fedoraの利用可能な最新のインターネットので、私は可能性が調べてみてくださいダウンロード(状態とadminster急流などで。 伝送は、それ自体デフォルトのポート9091でのWebクライアントを、その実行されます。 Apacheが使用を介してポートをよりオープンにわざわざではなく、上の伝送プロキシ呼び出しを介して自分だけのファイアウォールいたnessecary私はポート決めた私はルールを転送し、追加mod_proxyを

続きを読むApacheのダイジェストをプロキシが'認証»を'

Zend Frameworkの:レンダリングをする場合があります。

スティーブンロイドワトキン 、日曜日2010年12月12日4時19分

概要

これにより、作成されたのレンダリング私はヘルパーを議論する比較的単純なビューされているポストクイックZend Frameworkの場合は存在するファイルだけのスタイルを見る。 一般的に例外がスローされます存在しないファイルをレンダリングするためにコードを求める。 したがって、私はZend_Viewのラッパーを作成::ファイルが存在するかどうかをそのレンダリングする場合、それ以外の場合は単に空の文字列を返します決定のrender()メソッドを使用します。
続きを読むフレームワーク:レンダリング'存在'の場合は» Zend

Zendの認定エンジニア(ZCE)5.3

スティーブンロイドワトキン 、木曜日2010年9月30日21:00

公式リリース 5.3 Zendの認定エンジニア(ZCE)プログラムのための私は試験の印象を私は何を思ったの迅速なと思ったお伝え私は思います。

背景に自分自身少し:私がしていた導入された最初のPHPは 、7年ほど前、2006年からPHPでプロしてきました。 私は現在と呼ばれるアップ作業開始のための刺激的なのBrightpearlはに基づいて、英国ブリストルソフトウェアをeコマース、製造統合CRMの、会計、および。 私は、以前は以前ZCE資格のいずれかを取得していない。 私は現在、一連の5.2.xへの展開を待っているよ私は(本当に使用されているとの特徴5.3具体的Zend Frameworkの 2 ドクトリン開発プロジェクト私の2)。
»続きを読む'Zendの認定エンジニア(ZCE)5.3'

レイアウトの設定モジュールのZend Frameworkは、あたり-フォローアップ

スティーブンロイドワトキン 、火曜日2010年2月16日午前8時48分午後

上のように投稿前の私の次の最大の設定ごとにモジュールベースのレイアウトのためにZend Frameworkに 、私は前にして以下の設定を必要とするためのコードをした更新(これは必須ではありませんがよりそのアプリケーションの構成に数行!)。
'続きを読むモジュールレイアウトごと'Zend Frameworkを設定します-モーニング»を

使用して仮想環境を計算オフィスグリッド-第4部

スティーブンロイドワトキン 、金曜日2009年12月4日午後11時59分

はじめに

私は一日ごとのデータ機能のレコードの処理数百万のジョブをバッチ多くのランたちは、会社と私はそれぞれの周りしたマシンに座って、すべてのことを考え、最近数時間何もしない毎日。 システム我々の処理の能力をか強化するため、これらのマシンを使用することが良い場合は私たちがすることは、それは? 記事セットの、この、私はオフィスの採用の利点の電位を見ているつもりグリッド環境を使用して仮想化された。

第3部私たちはマシンを作成した我々の仮想処理や労働者の時間アイドルになるように設定ポップアップウィンドウのマシンを。

最新のコードを実行する

必然的に変更されます後に作成する労働者のロジックは、ビジネス、バグが使用してデータを処理することが見つかりました、高速の周りに座っての労働者は、去ることに生産したがってれるより効率的なコードは、 古い臭いのコードを どのようにして我々は常に我々の処理スクリプトの最新かつ最高のバージョンを使用していることを確認しますか?

我々はこれを行うことがいくつかの非常にシンプルで簡単な方法がありますが、トリックは、しかし、これを達成するために処理能力とネットワークトラフィックを削減することです。 きれいにはソリューションの最も簡単な始め、繰り返しのカップルかけて徐々にそれを改善する。

最初のメソッドは、単に(サンバ、FTP、または同様のを介して)私たちの仕事の管理サーバーに接続し、ソースコードの最新バージョンをプルダウンされます。 あまり効率的で、それが仕事をします。 きれいは、多少は、rsyncスクリプトを作成する方法についての使用方法について改善することではなく、それぞれの時間? 代わりに何を(実行我々のコードを上の各更新についてはちょうどその当初からコードを入れてチェックにsubversionのスクリプトを最新の処理のsvn update )?

最終的には次のようにシンプルですbashスクリプト(10分毎にcr​​onで呼ばれる)になりかねない:

  #!/ bin / shに
はgrepはgrep | -場合、ps axを| grepをVのPHPの >は/ dev / null

     "ジョブは、終了現在処理している"エコー

     "今すぐ起動すると、ジョブが実行されていない"エコー
     CDの/パス/ / /作業コピーに
     SVNの更新
     phpのyourJobProcessingScript.php
 Fiの 

今、私たちは、それぞれ実行して我々は確実に最新のコードを実行していることを確認することができます。 我々はコードベースごとに、すべての時間を我々は我々のネットワークを介してファイルの差分を転送することによって実行し、ネットワークトラフィックを低減することを実行する更新することによって、これを確実にしています。

私のデモのセットアップでは、私は正確に上記のようでした。 Subversionは私の仕事処理サーバにインストールされていると私は単純には'svn update'を使用して'労働者'ブランチから最新のコードを引っ張った。 私は、結果の戻り値の一部としてデータベースに戻っていた私の処理スクリプトのバージョン番号のタグを追加しました。 私は自分のコードは、私は絶対に最新の処理スクリプトを実行していた労働者の分岐、すなわちに私のトランクをコピーするたびに更新されていたことを見ることができるこの方法。

最新のデータを使用して

あなたの仕事処理は、これらがあまりにも更新されるとしているいくつかの点で、データソースの使用を行う場合。 あなたはすぐに、労働者が足踏み状態にすべてをもたらすの実行を開始のトラフィックを使用してネットワークをあふれさせるつもりは非常にまれに基づいてデータソースを呼び出す場合を除き。 私の解決策については私は私のVMとのまわりで私のデータソースを移動したいことを決めた。

がホールド馬をしているあなたは!巨大いる場合はどうすれば私のソースは、データ? まあこれは実際に話している私たちは、データである場合の多くはどうやって? これは、サーバーを処理できることを追加購入に各マシンよりもドライブを大容量のハードディスク追加インストールするよりコスト効率に。 これは、予算の質問され、決定するためにビジネス交流です。 それは多分マシンがデータワーカー源はあなたのしているので、大規模なデータのその量を保つために不可能は、そのわずか。 場合にはそのよう何をあなたは? まあ我々は、サーバ、データ、ローカルできるように寄港するが、これはネットワークの問題を可能性がありますが発生します。 場合にはこのように、このグリッドシステムは、環境事務所にに含めることになる現実。 これは、要求があります元のデータもスロットル/または毎晩と6時とすること20:00労働者の間だけでなく、たとえば、呼び出し元のあなたの戦略を実行代替することができますように。

に移動させますデータの100ギガに、我々のデータソースの量を言う。 まあはいかなり更新ネットワーク上を移動するデータのビットだ。 どのように我々はこの場合、データの最新のコピーを持っていることを確認しますか? rsyncのは、可能性が個人的に私はあなたの仕事の処理サーバーで、最新のデータソースを実行して行く方法があります(とてもいいビンログと)レプリケーションのマスタとしてこれを設定することにより、と思う:

レプリケーション データソースへのジョブ制御サーバーの更新に奴隷として労働者のそれぞれを設定することにより、膨大なデータの更新を実行しない限り、すべての労働者はキックされているネットワーク活動の巨大な増加(せずに、労働者に素敵なトリクルダウンされます回)で。 あなたは、データベースを更新のないにつれて、前に、各ジョブの一時停止を長いことでこれがある利点をrsyncでのmysqlの更新される継続的継続データを処理が中に労働者デーモンが上。

これは私のデモサーバーをセットアップする方法です。 レプリケーションをセットアップするために、私は(MySQLのサイトガイドに続いてレプリケーションを設定すると)数分以内に20私は、データセットをジョブ制御サーバいた私inital労働者を複製する。 追加の各労働者については、レプリケーションの設定とプロセスは、VMがコピーされるたびに働いた。

概要

資料のこのセクションでは、私たちはどのように簡単に見ている痛み、それが仕事をして、ネットワークトラフィックを削減また、説明したのと同じtime.Âでusing rsyncやSubversionでも(SVN)のが最新に処理コードを維持する方法それはあなたの労働者の各々にまで浸透させることにより最新のあなたのデータソース情報を保持する。 したがって、我々は、ビジネスロジックと情報私たちのオフィスグリッドシステム内のについていくことを保証する領域。 明らかに無数の選択肢があるでしょうが、ここでは、これらのタスクを実行するされた2つの簡単な例をソリューションは、手に入れるのがいかに簡単かを表示します。

次回

シリーズの一部のこの最後では、適切な名前第5システムを、この展開私たちがありますについて説明します。 私が学んだされているものと、私が作成し、管理を要約します。

使用して仮想環境を計算オフィスグリッド-第3部

スティーブンロイドワトキン 、金曜日2009年12月4日11時37分

はじめに

私は一日ごとのデータ機能のレコードの処理数百万のジョブをバッチ多くのランたちは、会社と私はそれぞれの周りしたマシンに座って、すべてのことを考え、最近数時間何もしない毎日。 システム我々の処理の能力をか強化するため、これらのマシンを使用することが良い場合は私たちがすることは、それは? 記事セットの、この、私はオフィスの採用の利点の電位を見ているつもりグリッド環境を使用して仮想化された。

第2部私たちは、実行されているサーバは、自由に仕事を見て、どのようにジョブが失敗することなく処理される必要がありますジョブは、各確保する間の処理量を最大に設定を達成するために。

またはぐったりサーバを - あなたの労働者の設定

プロセスの次のステップは、仮想の労働者を設定することです。 このために私はVirtualBoxを使用してCentOSのインストールを使用するつもりです。 私がインストールしようとしているのmySQLPHPをとしても知られているサーバーぐったり木の実は、m ySQLは、P HP)はServerAは(私がしたことは名前を開く)。

  • あなたのWindowsマシン(リンクをたどって)にインストールするのVirtualBox
  • ダウンロードして、作成された仮想マシン内で(現在のバージョン5.3)CentOSのインストール

一:あるの[OK]をここでは、ある(がないですおそらくこの行くことに私はポイントは1,000秒の偉大なチュートリアルout'を作成し、VirtualBoxの仮想マシンの下CentOSのManaging )。 重要な点は、GridMachineマシンに仮想私と呼ばれるに注意してください、私が仮定されていること。

これまでの仮想化クライアントとオペレーティングシステムの私の選択肢などに行くように、各選択肢には大きな理由がある。 VirtualBoxは私と私の自宅のマシンで使用する3つの主要なオペレーティングシステムでサポートされているものです。 私はその良い安定したOSとしてCentOSの選択と私は自分のWebサーバー上のそれを使用します。 私の代わり効率的に使用することをより多くのコードを速くして、Xは実行営業使用するそうだとすれ )にする'の精神ここに簡単で、最も簡単なシステム適用するための私の素晴らしいツール右側の信者をジョブ(ている私がが:)

重要なのは、VMのは、我々は、労働者のマシンに個別のネットワーク設定を構成する必要はありません私たちはwant.By DHCPを使用していない何かされている個別に構成する必要がありますそれぞれの新しい仮想マシンのそれ以外の場合は、DHCPを使用していることを確認、DHCPが提出されますあなたのIPアドレスから。 したがって、(これはスケーラビリティを向上させ、労働者の管理作業が軽減さ)を、それぞれの設定について心配することなくオフィスの仮想マシンをコピーすることができます。

を達成するために目指すべきであるプロセスは、新しい物理マシンを取得するためにVirtualBoxをインストールし、かなり多くの他のせずに仮想イメージを展開するだろう。 これは、セットアップするのが賢明かもしれないので、少なくとも多くのマシンが実行されている方法を見ることができる別のサブネット上のすべての労働者。 また、長期リースまたは無制限のリースDHCPのあなたのマシンをセットアップする必要があります。

どのように作業者のジョブを実行するには

これは興味深いエリアである労働者のジョブの処理のためのいくつかの有効な方法があります。 ここで私はちょうど2つは、最も明白な説明します:

  • 永遠にスクリプトを実行:スクリプトを、そのシェルスクリプトやPHPスクリプトの労働者に一度だけ実行されると無限ループの一部として実行されます。 私は、スクリプトのいずれかのクラッシュは、このメソッドを割引した可能性のある労働者は、介入のいくつかの並べ替えすることなく実行を中止します。
  • cronベースのスクリプトの実行:cronデーモンは、スクリプトへの呼び出しをキックオフX分ごとに調子は取得します。 いくつかのチェックがなければ、これは実行している労働者のスクリプトの多くの多くのコピーをする可能性があります。

私の決断は私のシェルスクリプトは、次のタスクを実行するごとに10 minutes.Âシェルスクリプトをキックオフcronで行っていました:

  1. プロセスリストを取得し、'php'を、これをgrepする。 次に進みますが見つかった場合はありません。
  2. あなたの仕事のコードを呼び出して、私の場合では、これはPHPが基づくものになるだろう
  3. 労働者のスクリプトが実行を完了
  4. 次の適切な呼び出しで再度行く準備

私のbashスクリプトは、次のようになります:

  #!/ bin / shに
はgrepの- v grepの| |はgrep phpの> / dev / nullにps axをする場合

     "ジョブは、終了現在処理している"エコー

     "今すぐ起動すると、ジョブが実行されていない"エコー
     phpのyourJobProcessingScript.php
 Fiの 

ノートでは、:エコーのは完全に無意味な、 ほとんどは、それらを編集しようとするとありますがやって来るに役立つ次の人に。

それは、労働者の仮想マシン、単純な、迅速かつ容易に受信されているハードウェアの各々の新しい作品にコピーするの設定終了します。 グリッドシステムの'賢は本当に可視化OSにされていない場合、そのすべてが、プロセスのジョブ、ジョブ構成に作成したコードとは、ジョブが適切な(つまり、ホストがアイドル状態のときにしたときに実行されることを確認することで)。

Windowsをセットアップする労働者を初期化する

最初のタスクは、Windowsのコマンドラインから仮想マシンを実行するために必要なコマンドを使用することです。 場所がデフォルトにVirtualBoxをあなたがしたインストールされて、あなたは、労働者は、名前、ワーカーした交流をロードするために必要なコマンドGridMachineをして:

  "はC:\ Program Files \日\ VirtualBoxの\ VBoxManage.exe"startvmのGridMachine 

しかし、我々は使用する必要があります。'レス'状態でスクリプトを実行するには:

  "はC:\ Program Files \日\ VirtualBoxの\ VBoxHeadless.exe"- startvmのGridMachine - vrdp =オフ 

これは、GUIなしで仮想マシンを起動し、それが正常の状態を保存することができます。 メッセージを約リスニングポート3389上にあるのでそのようにRDPをoff引数は、オフにする2番目は競合を与えるあなたに、またはRDPでウィンドウを閉じます。 仮想マシン名は小文字が区別される場合!

次に、我々はマシンがアイドル状態になっているかつて我々の労働者のVMをキックオフするには、Windowsをセットアップする必要があります。 >全てのプログラム - - >アクセサリ - [システムツール] - これを行うには(Windows XPの場合)、スタートに行く必要があります>スケジュールされたタスクを以下のように:

スケジュールされたタスク

カスタムプログラムを追加するを参照して[次へ]をクリックはスケジュールされたタスクの追加は続きます。 移動は、あなたのVBoxManageスクリプトとして[OK]をクリックします。 オプション(我々は1分でこの設定を変更します)、続行のいずれかのタスクをスケジュールします。 このタスクを実行する誰なのかを聞いてきます次の画面のウィンドウをスキップした後、私は新しい特権を持つユーザーを作成するか、またはいずれかの'管理者'をお勧めしたい。 我々は、任意の時点でマシン上の標準的なスタッフのアカウントを使用して干渉する必要はありません注意してください。 このタスクの横にあるチェックショーの高度なオプション]をクリックします。

untickedは左にするには最後に'の実行テキストボックスを追加当社startvmのログインしたときのみが実行できるように、文字列を'GridMachine。 スケジュールタスクは、次の訪問は、次のタブに移動する前にあなたがアイドル状態であると機械のようにいた時間の長さを選択して'アイドル'は、オプションまでのスケジュールの低下を変更してください。

最後に、これは時間のX量を実行されている場合、状態はタスクを停止するオプションを外しますが、マシンは、もはやアイドル状態の場合、タスクを停止するオプションをチェックしない。

スケジュール

それは、Windowsホストのセットアップのためのそれを見る!

概要

この部分では、労働者として機能するように仮想マシンだけでなく、私たちが電話して私たちの仕事の処理スクリプトを実行する方法(PHPスクリプト自分のために)設定されている。 ここからは、コンピュータがアイドル状態になったときに、ヘッドレスモードで仮想マシンを起動するには、Windowsの私達のコピーをセットアップする方法、ユーザーがマシンの使用を再開したときにその状態を保存を見てください。 うまくいけば、この時点では、それがこのようなシステムを設定するにはいくつかの実験を自分で軌道に乗るてうずうずしているのがいかに簡単か見ている!

次回

第4部私たちはロジックと情報ビジネス最新の日付だろうと、され常に最新の結果は、データソースように取得したコードとすることを探して使用して、最新のバージョンを実行しているツールを確保することにしています。

使用して仮想環境を計算オフィスグリッド-第1部

スティーブンロイドワトキン 、金曜日2009年12月4日23:23

はじめに

私は一日ごとのデータ機能のレコードの処理数百万のジョブをバッチ多くのランたちは、会社と私はそれぞれの周りしたマシンに座って、すべてのことを考え、最近数時間何もしない毎日。 システム我々の処理の能力をか強化するため、これらのマシンを使用することが良い場合は私たちがすることは、それは? 記事セットの、この、私はオフィスの採用の利点の電位を見ているつもりグリッド環境を使用して仮想化された。

としてPHPの開発者は、私はLinuxを、すなわち一日だ行くごとに私が使用して使用するツールをMySQLのは、PHPは、VirtualBoxとSubversion(SVN)。 しかし、私は、このガイドでは、同じように、他の言語や技術に適応すると思います。

私が提供するソリューションは非常に緩くI、または、単純化のために物事を変えてやるとより興味深い使用方法のシナリオを生成するために私たちは、これが全体の記事を本当でないかもしれませんが達成するために必要があると思います処理のタイプに基づいて行われます。

これはオフィスの大部分が実行さものであるため、これらの仮想化環境では、Windowsマシン上で実行されます。 オフィスのマシンでは、これらのマシンを使用してスタッフを妨害すべきではありませんか、その処理には、マシンのメンテナンスを必要とし、彼らが利用可能になるように簡単にデプロイ可能な新しいマシンにすること。 これは非常に拡張性を減らすのと同様にまた、新しい仮想マシンは、追加の構成を必要としませんし、グリッドシステムを拡張することができるで容易になります。

なぜは、Officeコンピューティンググリッドを配置する?

まず、あなたにそのようなリソースを計算可能性があります雲が理由だけではなく、使用を考えて、 AmazonのEC2プラットフォーム まあ理由としては、例えば、いくつかのことができます:

  • あなたは、クラウドコンピューティング環境に特定のデータを委託されません
  • あなたは、NHSのレコードを、例えば、法的な理由で潜在的に、(国を残してデータなど)、法律上の理由からクラウドコンピューティング環境に特定のデータを配置することはできません。
  • あなたの処理ユニットが閉じて、フルコントロールを持っているハードウェア上でも保存しておきたい
  • あなたは雲のインスタンスを実行するプロジェクトの資金を持っていない
  • あなたのオフィスは、インターネットに接続していないため、雲のリソースを使用しないこと、その
  • あなたは雨が好きではない、雲が離れても維持を示唆雨は、したがって、

私はリストには、続けることができたんだけど、私は今のところ十分だと思う。

Officeのコンピューティンググリッドの利点

まあ、(真の物理のスタイルでいくつかの抜本的な仮定を行うことができますし、)いくつかの数学を行うことができます。 あなたは1日あたり100ジョブを実行している大きながっしりした体格の処理サーバーを使用している想像してください。 あなたのオフィスでは、アイドル状態の16時間は50マシンを一日を過ごす、これらの各マシンは、がっしりした体格の処理は断つように強力な10%のです。 (ここではすべての結果は、過小評価してパフォーマンスの向上に丸められます)。

だから、10%の電力* 2 / 3回= 0.067すなわち、1デスクトップの処理のアイドル時間* 1マシンは、1日6フルジョブを処理することができる。

は、メインサーバの処理としての場合は一日に何のジョブごとに処理するためにアイドル状態のデスクトップ15を受け取り、それはあなたが今スケールこれをバックアップします。

50台ふり事務所の私たちのために私たちは、 サーバーの処理4フル最大1サーバの電源を可能性が大きく我々の処理、あるいは、我々は100の代わりに、 日あたりのジョブ400を処理することができます。

通知は、 ハードウェアの新規投資ためのあなたの会社がてきた4人だけ増加し、そのバッチ処理能力 可能性のあるので、あなたは緑のイニシアチブとしてこれを見ることができ、あなたの電力使用量を増加させるが、私は一般的に、とにかく一晩に残されているマシンにしてきたほとんどのオフィス環境からつもりだ。

他の利点は、(または更新)処理サーバーあなたのオフィスのマシンが十分なされている場合遅延することができ、あなたのオフィスのグリッドは自動的に、より強力になるあなたのオフィスのマシンの力を向上させるように、新しいへの投資を意味しています。

テクノロジー

あなたは何が必要ですか? (または、より正確に私が使用していたもの):

  • アイドルオフィスのマシン(スペア古いWindows XPのラップトップ私の場合)
  • VirtualBoxの(または別の仮想化クライアントソフトウェア)
  • マシンを指定してPHPを仮想的なダウンOSのカットを実行しているrunningÂは、MySQL、私がサーバーをリンプだ呼び出すこれらの私:)
  • ジョブを実行するには
  • Job Serverは(どこか別の仮想マシンすることができます)

典型的なジョブ

次のようにこのシステムが実行するように設計されているジョブの種類は:

  • システムがその上に我々が一致するように結果を返す必要があるデータのリストを受け取る
  • チェック/いくつかの(比較的静的)データソースを検索して含まマッチング
  • データソースからの結果は、結果に応じて追加のデータソースのチェック、マージ、さらに検証が必要な場合があります
  • データは、一致するレコードが返されます完全に検証処理
  • ジョブ内の各レコードには、残りの独立しています

だから、基本的に我々はデータベースの検索、いくつかの数字の計算は、ビジネス環境ではかなり一般的なシナリオの混合物を必要とするジョブを実行して見ている。

グリッドソリューションは、このタイプのジョブを処理するための有利されていません。 基本的には、独立した単位に分割することができます任意のプロセスを並列に実行することができます。 :詳細については、このウィキペディアの例を参照してくださいグリッドコンピューティングは、有名ないくつかの例は、 SETIアットホームBIONCを コンピューティンググリッドを実行するためのフレームワークがあり、これらのに見ても価値があります。

私たちは何を達成するの​​だろうか?

私はオフィスのグリッドを展開する非常に高価な、または時間がかかる必要はないことを示すために願っていますこれらの記事の終わりまで。 私は議論するつもりです:

  • ジョブ構成は、ジョブ制御システムを設定する
  • 適切な処理の仮想マシンを作成する
  • どのように設定するには、Windowsマシン上のシステム
  • の確保は、最新のコードとデータを使用している
  • 展開とベンチマーク
  • 今後

私は([OK]を私が構築し、これを書いている)Windows XPおよび私の'GridMachine'仮想マシンを使用して、ローカルマシン上の概念をテストするためにサンプルアプリケーションを構築することがあります。 私の仕事の管理サーバーが実行される私のメインマシンがするFedora 11の

これは完全に動作する堅牢なシステムを示すためのものされるものではない、その意味するデモの詳細と、これらのものは時間の合理的に短期間で、少しコストで達成することができることを示して議論する。 私には一切コメント、修正、または改善を送信すること自由に感じなさい、私が一致するように更新この記事を維持するために最善を尽くします。

次回

パート2私は、システム制御ジョブ起動で見てで、失敗しますがなくても処理を見ているジョブは、各ことに確保しながらの処理量を達成するための最大のためにどのようにジョブがで構成する必要があります。

使用して仮想環境を計算オフィスグリッド-パート2

スティーブンロイドワトキン 、金曜日2009年12月4日23:23

はじめに

私は一日ごとのデータ機能のレコードの処理数百万のジョブをバッチ多くのランたちは、会社と私はそれぞれの周りしたマシンに座って、すべてのことを考え、最近数時間何もしない毎日。 システム我々の処理の能力をか強化するため、これらのマシンを使用することが良い場合は私たちがすることは、それは? 記事セットの、この、私はオフィスの採用の利点の電位を見ているつもりグリッド環境を使用して仮想化された。

第1部私はグリッドをオフィス作成した概要を望んで、もしあなたが、なぜシステムが理由の可能性についていくつかの技術だけでなく、使用して私がすること。

ジョブ制御

あなたが行くなら、それらを管理するためのいくつかの方法が必要になるだろうし、ジョブを実行されている。 あなたの仕事の制御システムは、(あなたの仕事のサーバー上で)本当によくてもオフィスのグリッドを実行する前に考える必要があります。 そこでまず、どのようなジョブ制御システムのタスクは次のとおりです:

  • 労働者からの要求に応じて、ジョブの手
  • 労働者は何のジョブの種類を実行するに教える
  • トラックジョブ
  • ジョブは一度実行のみされていることを確認してください
  • または、労働者に仕事のデータを提供し、少なくともここでそれを得るためにそれらを教えて

システムはまた、企業がグリッドソリューションの価値を見るようにジョブのいくつかの種類を実行するために延長することができる、拡張できるようになりました単一のケースでの動作のソリューションを必要とします。 たとえば、ジョブは優先度を得ることが、複数のジョブの種類は最終的にも、それは一般的な労働から離れていません(ただし、ジョブの種類ごとに最適化されているいくつかの異なる労働者のマシンを実行することができます(つまり、いくつかのコードベース)が存在する可能性がありますのアイデア)。 システム開発は、短期的なビジョンは、長期的フラストレーションと増加、開発時間をもたらすことができる場合は、常に未来を考えてみてください。

Job Serverを

私たちは、これは固定リソースロケータを持ってあなたのグリッドで唯一のシステムである必要がありますから、IPアドレス、ホスト名、URL(内部DNSを使用して)、などこれは、されていることが、私たちの仕事を制御するための場所が必要としている労働者はここで仕事を探すために知っておく必要があります、労働者は、ジョブ管理システム(ないジョブ制御システムの労働者を見つけること)を見つける必要があります。

ジョブサーバー自体は本当に複雑なタスクを(基本的なシステムとにかくに)持っていない場合、それは、仕事から手をジョブのリストを格納するために結果が表示され、その後後で取得するためにそれらを格納する必要があります。 これらの部品は('など、ジョブの手')非常に基本的なことができる定義されている方法。 我々は、追加、編集、削除、ジョブを一時停止の管理インターフェイスを含むようにシステムを拡張することができますその後、これがこの演習を超えています。

理由はあなたの仕事のサーバーは、メイン処理サーバー内で実行中の仮想マシンであることができなかったし、全くありませんが、それからあまりにも多くのリソースを消費しない提供。 それは潜在的にあなたに数週間の処理時間相当のカップル(だけでは、メイン処理サーバと比較して)原価計算すると、処理の週末を失うとしている金曜の夜にダウンした場合には、ジョブサーバーは、しかし、必要と高可用性をしない。 あなたは、高可用性、負荷分散環境でのお仕事サーバーを置いて検討する必要があります。

基本的なセットアップ

私たちの仕事のサーバの基本的なセットアップ)は、HP PがしますySql メートル 、木の実である Li 構成サーバーリンプの私が私の呼び出しを私の(。 して、Thea労働者で実行されているコードは、実際にはジョブ制御システムデータベースとのとの相互作用によって実行することができますか仕事がうまくいく。 それ以降のサービスをWebできる作成我々は、自分自身を作品に出ハードジョブをいうよりも有する労働者が手、実際に今使用して続行されます私たちがKISSの原則を (愚かな保管、それをシンプルで、!)

だから、三作成することができますmySQLのジョブに対処するためのテーブルです。 これらは、`ジョブされる`、`jobRecords`と`jobResults`。

ジョブ表 ここに私が使用しているSQLのバディに偉大な小さな代替をphpMyAdminにだけ理由:参照してください他のために(CentOSのそのインストールが簡単に10大の選択肢をphpMyAdminにする

このテーブルには、5つの簡単なフィールドで構成されています

  • イド:ジョブを一意に識別する
  • 名前は:識別子他である可能性がありますクライアント参照番号のいずれか、または
  • ステータス:あなた 、例えばで知っている場所の仕事を行う必要があります
    • 0は:開始していません
    • 1:拾った
    • 2:完成品
  • started_by:仕事を始めた誰ですか? これは完全に必須ではありませんが、あると便利です。 私はあなたのネットワーク上のIPアドレスで労働者を追跡することをお勧めしたい
  • started_at:仕事をするかを開始労働者は? 我々は再び仕事をピックアップして、別の労働者が処理を開始する必要があります知っている時間のX時間内に完了していないジョブを追跡することにより。 労働者が処理を停止することが/いくつかの理由で、停電、クラッシュ、ネットワークの損失などのオフライン

このテーブルはジョブが多くの労働者が(明らかにこれは傾向にある必要がある仕事をピックアップする方法を参照してくださいするには、カウンタをかかった時間を参照してくださいするには、終了時間の列を追跡する統計を可能にするためにいくつかの追加フィールドが拡張することができますどのようにそれは簡単です。 1)は、ジョブの優先順位は、リストは行くことができるとします。 より複雑なジョブのシナリオでは、労働者が、(そのためにのみ適して労働者を使用する)へのアクセスを必要とするメモリの量、あるいは労働者のタイプが必要となるかを指定することが可能になります。

きれいは、いくつかの例ジョブを追加:

例えばジョブ

次の表は、再び非常に理解することは簡単ですが、これらは私たちの仕事の記録がされます。 彼らは列で主な仕事のテーブルにリンクされている`jobs_id。 我々は4つの列を持っている非常に簡単な例を加えることができます、非常にあなたが労働者に供給するために必要なデータに依存してこの表の構成:

  • イド:レコードのID
  • 名:人の名前
  • アドレス:人のアドレス
  • jobs_id:ジョブIDには、このリンクされているレコードが

3番目と最後の表は、結果表で構成されて、それがあるとほとんど同じレコード表の一部である可能性がいくつかの列を追加する当社の記録テーブルとして、および構成する:

  • job_record_id:ジョブのテーブルへのリンクの結果を
  • 結果:結果データ

...とは、ジョブ制御するために必要なすべてを見ること! (非常に基本的なレベルではあるが)私の場合は、プロセスに自分のデータが位置していた別のテーブルに指摘したんだけど、これは同じように簡単に、シミュレーションコードを実行するためのパラメータファイルをされてことが、あなたはそれを名前を付けます。

ジョブを選択

前述したように、労働者は、我々が実際に必要なすべての処理を必要とし、情報を取得する仕事を見つけることです、今の私たちのために私たちの仕事の管理を行います。 どのように我々がこれを行うには希望ですか? さて私たちの仕事の選択基準を選択して、ジョブを探して、SQLで私は次のようでした:

  1. 完全としてではなく、我々の労働者からマークされていないと(最も簡単な方法は、IPアドレスになる識別子を持つ代替__ME__)それらをリセットするすべてのジョブしてください:
     のUPDATE`ジョブ`のSETは`status`= 0のWHEREは`status`= 1と`started_by`= __ME__; 
  2. ジョブを選択し、この労働者はそれに対処されていることを制御システムを教えて、私たちの仕事の選択基準を使用する:
     のUPDATE`ジョブ`のSETは`status`= 1、`started_by`= __ME__、`started_at`= NOW()ののWHEREは`status`= 0の場合、または
     (これは`status`= 1と`started_at`> DATE_SUB(NOW()の、区間X時間))ORDER BYは`ASCのの`id; 

    我々はすべてのジョブは、労働者のクラッシュや欠勤に行くのイベントで実行されていることを確認時のX量の結果が返されていないジョブを掴んで。

  3. 次に、自分の記録が続くのジョブの詳細をつかむ:
     します。SELECT * FROM`ジョブの`WHERE`started_by`= __ME__のLIMIT 1;
    します。SELECT * FROM`job_recordsはの`WHERE`= __JOBID__の`id; 

ジョブの完了時に私たちを挿入我々の結果の記録が完了し、ジョブをマークします。 ジョブが停止することができるように/あなたのスクリプトのいくつかの堅牢性のためにできるように、いつでも再開に注意してください。 これは、タスクがそのジョブのレコード数と賢明されるジョブ制御システムに保存される結果の数をチェックして、ジョブ制御システムを更新する途中で中断する可能性があります。

加えて、ことながら本当にすることができますこのジョブが方法を示していますが選択するSQL -クエリのフレームには、管理対象から抽象化ベースのシステム、ファイル、サービスをWeb使用してジョブ制御をするようにかどうかを判断して切り替えるのXML 、またはその他のシステムの数は、それが上記のコードには影響しません。

ジョブの設定

次に考慮すべき側面は、ジョブのサイズおよび構成されます。 ジョブの設定と一緒に遊んで、私たちは、速度、プロセスの複製、および信頼性の間に優れたバランスを取ることができます。 カップルにOFAのシナリオしてください:

  1. ジョブが実行さとる1日に、各:これは)時間が意味する3分の2のための電力を10(覚えているジョブを処理する各日15労働者が必要%である。 これは明らかに賢明構成されていない場合、ジョブのサイズが大きすぎる方法です! それは(それが結果を加えて再処理時間が返されていないことをピックアップして時間)初期労働者が無断外出する必要があります処理の仕事を得るために時間を2倍以上かかるだろう。 理想的では、以上のようにジョブが刻々と過ぎているようにアイドル期間長い方の端のそれぞれ少なくとも一つのフルジョブをクリア簡単だ二希望かかる日に行方不明に最初にすべきプロセスジョブはで最悪。
  2. ジョブの実行分を1番:これは、ジョブをそれぞれ意味する実行15分ほどかかる労働者が。 ながら、これは最初に理想的に見えるかもしれませんが、あなたが等、このシナリオでは、お使いのシステムの他の部分への負担を置いて、独自の問題を紹介昼食時、コーヒーブレイク、会議中に追加の作業の処理を得ることができます。 たとえば、まずセットアップ/処理時間比したがって、システムの効率を失って、右下に行くつもりです。 あなたのネットワークは常に一日の仕事にその日を洞ているイライラスタッフが様々な労働者に求人情報を配信する予定です。 また、それは多く、定期的に仕事の小さな断片の多くを配る必要があるとして、ジョブの処理サーバーでより多くの負担をかけないようになるだろう。 最後に、このような状況であなたの仕事のサーバーが処理を穏やかにジョブサーバーは困難を経験していたことに気付かない続けたことの大きな仕事に対し、未完成の作品の巨大なバックログを作成するつもりがダウンした場合。

現実には多くの使用可能なリソース、、ジョブのターンアラウンド時間の要件、ネットワーク機能など、ジョブの種類に依存して、グリッドの設定を行うための1つの理想的構成があるでしょう。 しかし、いくつかのガイドラインは次のようになります:

  • サイズのジョブは、各労働者が15時間(最長可能性が高いアイドル時間)の期間で少なくとも3-4ジョブを介して得ることができる
  • そのセットアップ時間は非常に意味のない処理時間(心、上記の点で軸受)と比較してなるようにジョブのサイズで再生します。
  • ジョブは、それは、その行った欠勤を仮定して、別の労働者とそれを処理を開始完了する予定(多分それ以下)二重の時間を完了しない場合。 これは、あなたはそれが(おそらく長い後続のジョブが失敗した場合)を完成させるために3回、ジョブの通常の長さを待たなければならないことを意味します。 あなたは、時間を、この削減したいかもしれませんが、基礎を定期的にタスクを処理ように注意する必要が重複しない起動することがありますが同じくらいすぎて減らすことを。
  • ジョブズCEOは、可能な限り外の要件とは無関係にする必要があります。 ジョブサーバーは、例えば、唯一の開始と終了のすべてのジョブので連絡する必要があります。
  • ネットワークを飽和しないでください、これは2つの負の影響を持っているが、あなたの昼間のスタッフは、ネットワークがイライラする問題は、接続にのみ、あなたのグリッドを拡張として悪くなる問題がタイムアウトして発生する可能性がある使用しております。
  • 確認ジョブは、労働者に実行することができます。 ジョブは、あまりにも思い出になる場合は集中的に、またはディスク容量集中ジョブが中止開始されますあなたが気づくだけが理由は本当の理由で処理ジョブの数の減少です。

ジョブの送信結果

ジョブの結果を提出するとき、それは結果が現在のワーカーは、しばらくの間休止されている場合は特に、他の労働者が提出されていないことを確認することが重要です。

ときの結果は、結果の数は、ジョブ内のレコードの数と一致することを確認でございます。

は、前述のように仕事の検索結果の提出にフォールトトレランスを構築すると強調した上ですることはできません。 労働することができますほとんどの時間の都合でサスペンドモードに入ると、これは用の仕出し料理する必要があります(最も可能性が高い)。 また、再びはるかに簡単に対処するためのジョブ制御システムへの将来の変化に応えるため、あなたの結果提出を抽象化する。

概要

このsectionÂでは、ジョブ制御サーバが実行する必要が何をどのように設定し、非常に基本的なシステムを得るために見てきました。 我々は、制御システムからジョブを取得する方法と、最高のジョブを構成を取得する説明最も我々のオフィスのグリッドシステムの。 、ジョブ制御サーバに戻って結果を提出の段落または2位に発表された。

  • ジョブ制御サーバーは、ジョブを管理し、すべての作業単位が完了していることを保証
  • あなたの仕事/結果の提出を我々は多くの問題もなく管理サーバーの技術を変更することができます選択して抽象化することにより、
  • 設定あなたの仕事は、彼らは、ネットワークインフラストラクチャ上で過剰な圧力をかけることなく、定期的に処理タスクを複製することなく、迅速かつ効率的に実行されていることを確認してください。
  • を確認して、あなたのルーチンにフォールトトレランスとエラーcheckingÂを構築すること、労働者が一時停止することができます再開、最も時間の不便。 結果は、すでに別の労働者が提出されているかどうかを確認してください。

次回

第3部私たちはマシンを処理します作成我々の仮想と労働時間になるアイドルにマシンを設定し、当社のWindows。

使用して仮想環境を計算オフィスグリッド-第5部

スティーブンロイドワトキン 、金曜日2009年12月4日11時03分

はじめに

私は一日ごとのデータ機能のレコードの処理数百万のジョブをバッチ多くのランたちは、会社と私はそれぞれの周りしたマシンに座って、すべてのことを考え、最近数時間何もしない毎日。 システム我々の処理の能力をか強化するため、これらのマシンを使用することが良い場合は私たちがすることは、それは? 記事セットの、この、私はオフィスの採用の利点の電位を見ているつもりグリッド環境を使用して仮想化された。

第4部私たちはロジックと情報ビジネス最新の見て、日付のアップ、常にように得られた結果はデータソースで使用して、ツールをバージョンのコードが最新のように、私たちがしている実行している。

デプロイ前

システムをグリッドの前に展開するお使いのシステムの現在のOne場合があることかと、1つのベンチマークのことだけで、それは! あなたの保証は何もないし、これをバックアップする数字を持っている限り、あなたのシステムが何をするつもりはどのくらい余分な作業についての同僚を伝えるかに関係なく。 だから、

  • どのように多くのレコードは、現在処理できますか? あたりの日? あたりの時間?
  • どのくらいの時間は、通常の仕事を好転させる時間がかかりますか?
  • 方法は、より多くの容量をお持ちですか?

また、追加の質問があります:

  • あなたの処理サーバ(または処理サーバのいずれか)の場合これは不自由されますあなたの能力をどのように影響するかダウン?
  • どのような利点は、/グリッドシステムから取得できると期待してほしいですか?
  • あなたのオフィスのマシンは、ジョブを実行できるか?
  • あなたの(または、ジョブを変換することができます)を実行しているのこのスタイルで動作しますか?

最後の主要なポイントは、このように任意の大きな変化のあなたの時間を取ることです。 ベンチマーク再び新たな方法論を使用して動作するように処理コードを更新します。 おそらく、すべての処理サーバーはちょうど別のワーカー(ただ非常に強力な比較的)となります後、仮想マシンを実行するには処理サーバーを設定します。 解決する新しいプロセスを許可します。

展開

私の提案は、セットアップとインストールのすべてのオフィスは週末を実行するように開くに。 休日の二週間か、これを直前ではなく、 結果は...多分CHAPを貧しい人々 、他の残しように対処すると ...

このようなシステムの展開が遅くする必要があります。 それは比較的全体オフィスのインフラストラクチャを(よくデジタル一)に影響するこのシステムを設定するにはシンプルであるにもかかわらず。 まず、どのように労働者のホストが日常的に実行するネットワークトラフィックを監視し、同時にマシンのカップルにロールアウト。 あなたの結果に応じてあなたの仕事の設定を変更する必要があります。

システムは、いくつかのマシンと和解した後はこれで、最初のbenchmarksより33%以上のジョブを処理する必要があります、再度ネットワークのトラフィックとホストマシンperformance.Â次のベンチマークを監視し続ける(すべての事務機の10%、すなわち、5と言うことができます)。 これは、そうですか、この球場で、少なくともしていることを確認してください。 れていない場合は、上を移動する前に何が起こっているか調べる。 を繰り返して喜んで、すべてのオフィス機器は、個々のマシンのパフォーマンスを殺したり、停止するには、ネットワークを粉砕せずに実行するまで、このサイクルを。

すべての時間は、ベンチマークの維持ではすべての展開が行われた後でも。 新しいコードのアップデートは、すべての労働者はジョブの処理および報告しているチェックは、システムの速度をどのように影響するか確認してください。 ゆっくりと(非常にゆっくりと)増加あなたの仕事の構成は、あなたの労働者とネットワークを最大限に活用する。

ストップ!

どのようないくつかの時間で動作しているから労働者を停止したい場合は? 彼らはすべてのアウトが、再生、実行していると空腹昆虫のようにデータを処理するために最善をしようとしている。 答えは明らかにその価値が見過ごされ、念のために追加するかもしれません。 単に出口(0)または死ぬ()または処理ジョブを殺すためにいくつかの他のステートメントを使用して処理スクリプトを編集します。 重要な理由は、なぜ我々は常に実行する前に、最新の処理スクリプトを更新してみて!

デモンストレーションシステム

ために私は技術や方法論を示すために、非常に小さなグリッドを作成短い記事のセットを作成する。 私は、記事、チュートリアルの多くを読んで、セットアップに様々なツールを使用し、何が起こっているか監視します。 手段は私が行っていることで、トラフィックとオフィス全体を飽和も私は、ホストのパフォーマンスが影響を受けた方法を参照してください定期的に職員のPCへのアクセスがあった。

私のデモシステムは確かに非常に謙虚だった。 私は通常のデスクトップは、ジ​​ョブ制御サーバとして設定され使用されます。 これについて私がインストールされていたMySQLのレプリケーションでマスタとして設定されてインストールされているサーバーを、 PHPの 、ÂとSVNを介してリンクされているApacheの (VMの労働者を介してのアクセス)。

私は、6歳のWindows XPのラップトップ上のVirtualBoxでCentOSの労働者のマシンを作成しました。 マシンにVMをコピーし、それを手放すの後に指定するなどのタスクをスケジュール設定すれ。

仮想マシンは、PHP、転覆、およびMySQLで設定された。 私は、ジョブ制御サーバーのリポジトリーからの'労働者と確認したことは'svn update'を使用して更新できるという名前のブランチをチェックアウト。 次に私のセットアップスレーブとしてMySQLとのデータは、ジョブ制御サーバーを停止ワーカーVMへのMySQLから複製されたことを確認した。 すべてこれは私のセットアップのbashスクリプトとcronジョブの後。

私の処理スクリプトは、基本的に、この(非常に簡単なもの)の線に沿って行った:

  • 名]フィールドに読む
  • VM上で保持されているデータソースからテーブル内の類似した名前の数をカウント
  • 上記のように名前の数を数え、スペース(すなわちforename、中​​間、姓)で名前を分割する
  • 1,000回このプロセスを繰り返し

各ジョブの実行に約20分かかりました。 ある時点で私は窓のラップトップ上でワーカーVMの複数のコピーを開いて、ジョブが労働者のIPアドレスの各々によってオフにチェックすることが見ていた。 この時点で私はまた、レプリケーションが自動的に再起動を確認した。

ラップトップを残して、ジョブ制御サーバからのジョブの処理を開始労働者のような結果空費します。 ノートパソコンの使用を再開する約30〜60秒の遅延があったとき、これは自分のマシンは、しばらくの間、一時停止のマシンに戻ることがありますときに意識するようにする必要があります時間とスタッフのかなりの量になります。 新しいマシンではこの長いのポーズを持っていない可能性があります。 量の利点は、短い期間を待たずに職員を上回るアイドル期間だろうより中にこれらのマシンで実行される処理私は頻繁に長く待つ朝(の自分のマシンに到着し(例えば1分)は、Windows Defenderは、この)場所を取る彼らは朝のコーヒーをつかむには、この(便利な時間の認識していた提供更新!)。

全体的に私はこのようなシステムを作成するために使用することができる技術を示していると確信しています。 私はそのようなシステムは(非常に)小さい規模で、いくつかの複数のOfficeのマシンのリソースを利用するにスケールアップすることが実験で作業をしないことを示している。 私はこれを行うためのポイントを取得しない場合は私は非常に知っている/誰か他の人がいない場合を参照してください興味があると思います。

結論/評価

次の明白な手順では、実際に現実世界での例を取得することです、オフィス環境の中でこのようなシステムを展開して、何が起こるか見て起動します。 技術を証明する証跡燃える会社と有効性をせずに、このことを約束し、事業をお願い少し難しいかもしれません。 グリッド/分散コンピューティングは、非常に普及しているいくつかの円であり、(BIONCは、SETI @ Homeは、折り畳みアットホームなど)いくつかの大規模なアプリケーションを持っています。 しかし私は、小規模、そのオフィス環境の中で展開されることができず、私の検索でこのような単純なシステムを見つけるには、しませんでした。

私は、ほぼすべてのオフィスで主にオープンソースのソフトウェアやツールを利用使用して、基本的にフリーのシステムを作成しました。 技術は基本的に実証され、実行し、期待どおりに動作表示されます。 うまくいけば、私は非常に簡単な設定されていない多くの仕事におよびあなたは、安い、Â、強力で、すべての拡張を同時にされるオフィスグリッドコンピューティングシステムを展開することができますことを示している。

システムが起動され、実行されるほとんどのカスタマイズ、あなたがすることができます改善の量には終わりがない。 例の統計情報/ベンチマークについて簡単にそのようなシステムの価値を、毎日を示す追加することができます。 新しいマシンは、迅速かつ容易に追加することができます彼らはあなたの処理能力を強化し、既存のハードウェアにアップグレードして到着したとき。

私は、あなたがこのシリーズの記事を読んで楽しんできた願っ事務所グリッドシステムを実行しているのあなたに思考の糧を与えられます。 解決策は、必ずしもすべての状況では動作しませんが、独自のソリューションを使用して行う処理データを取得できるように適応する必要がありますここで紹介する。

私には一切コメント、修正、または改善を送信すること自由に感じなさい、私が一致するように更新この記事を維持するために最善を尽くします。

Zend Frameworkの:基礎-レビュー

スティーブンロイドワトキン 、土曜日2009年11月28日22:42

私の雇用者は最近取るの開発者に私たちのグループに支払わ:基礎フレームワークZendの他のコースのコースを私の考えや意見をまとめるはI'llここでは、。 これらについては時間を節約するために探して、ここに私の要約は、です:

でのを見て時間を持っていなかった開発Zend Frameworkのこのコース(Zend Frameworkの:基礎)継続情報を順番に十分な提供の画像を全体的な提供して良好な地域キーするためのフレームワークをご紹介。 はるかに超えのを見て時間を費やして持つ人は提供されていないチュートリアルをこのコースではないフレームワークと2つまたは1つが続いた。

背景

私がしてきたのPHPと、約5-6年の開発者がヶ月6最後のコンポーネントベースでZend Frameworkの上にある起動作業をして。 私は/と開発してきたまたはFramework小さなZendのカップルにされて開発者がMVCの正直sites.Âだろう私は、私はいくつかの過ごしビューがある点コ ​​ーディングからフレームワークの暴露に、他の量を巨大な持っていなかった時間プロジェクトのウェブサイトを調査し、them.Âにフレームワークを評価し、Zend Frameworkを周辺地域には、非常にエキサイティングであり、その行くところに大きな可能性があると思われる。

コー​​スについて

コー​​スは9二時間WebExセッション(途中で10分間の休憩あり)を介して配信されます。 時間はいつでも、議論とZendにより提供されるスライドのセットを通過費やされています。 あなたは、インストラクターと話をするマイクを使用することができます正直に言うと、私は誰の使用もチャットウィンドウよりも表示されませんでした。 また、VMWareのUbuntuマシンにはサンプルコードを持っていることやプロジェクトは、Zend Studioの試用版をセットアップ提供されています。 統合VoIPソリューションに比べいずれかの参加者にコースリーダー協議したり、数字で多くの世界的なダイヤルの1つを使用してダイヤルすることができます。

コー​​ス期間中の材料は、サンプルのゲストアプリケーションに向かう前に、フレームワークとMVCパターンの概要構成されています。 議論は、Zend_Applicationを、DBテーブルは、データベースへのアクセス、フォーム、フィルタリングは、ACL、検証などのブートストラップを示した基本的に、あなたのツールを与えて実行しているすべての時間は、基本的なサイトを取得するために必要だすべてのトピックをカバーするなど移動し、枠組みの中で、より高度な取得(これは金額をしなかったが'を参照してくださいウェブサイトの多くの時間)。

時間は、いくつかの例をコーディングする'ゲストブック'シンプルな'ウィキ'アプリケーションを開発するために与えられる。 個人的に私はコードや各アプリケーションを提供し、私たちは本当に良い学習体験を提供していないと一緒に本質的にコピーされたものの開発を求めることを感じた。 私は同一ではないが、同様のアプリケーションを開発することが好ましいでしょう。 を参照してくださいするためのガイドを持っていることの利点を使用したサンプルアプリケーションです。 のコースの後に詳細をルックアップすることができますすべてのLEDの後に、フレームワークをより理解するの良い質問与える方法については 、こうして理由について可能かあるいは構築するデモと、最初からアプリケーションを。

最後の講義は、ヘルプ/指導教員からのwikiアプリケーションで作業から成っていた。 コー​​スからのフィードバックが行われた後、それはZendが明らかにもちろん私たちのバージョンは全く新しいという事実には、非常に真剣にフィードバックがかかることコースを何度も強調された。 会社で他の開発者の一部は、それが、これが起こっているかどうかを確認して興味深いものになるとすぐコースを受講することになります。

もちろん、スタイルは、フィードバックおよびコラボレーション参加者と講師との間に許可される、非公式だった。 コー​​スリーダーは、(電子メールアドレスが質問に共有されていた)、親しみやすいフレンドリーされたスライドは少し震えていたから完全に枠組みの中で有能だった彼のプレゼンテーションをしながら。 彼は明らかにコースを教えるように教えている人ではなく、定期的にフレームワークを使用して誰かが、私はその点では実世界の経験を好んだ。

全体的な感じ

いくつかの点で私は他の人にはとても便利でしたもちろん、時間の無駄を発見した。 うまくいけば、私は、はっきりと全体に渡って自分の理由を取得します多分考えや有益なフィードバックのためのいくつかの食べ物を提供する(これがそうである私を知っている!)

私は、このコースは、あまりにも低レベルを狙っていた。 クイックスタートガイドを経て持つ、アクションにして、Rob AllenさんのZend Frameworkを読んで、私はほとんどはあまり何かを取得していないフレームワークで働いた。 私の希望クイックスタートの終わりからピックアップして、追加の能力を開発コースが好きだった。

"を実行し、そのうちの側面コースでは、何が基礎を実現しますそうは言っても、コースのタイトルは:フレームワークはZendの"状態を明確。 フレームワークに探すことに時間を費やしていない開発チームの他のメンバーは実際に会えて嬉しかったですね熱意と尋ねられる質問と、各セッションを終えた。

すべてが失われたわけされ、それがフレームワークの基本的な詳細情報を確認する時間を費やすことを、私は100%ではなかったの分野でいくつか質問を聞いて得る良かった。 それは私が毎日座って得たことについてのフレームワークおよび将来のプロジェクトは、何か使用して符号化と思うも時間だった私は(あなたの会社はそれに同意想像できますか?:)それ以外の場合は行うことができたのでしょう。) Zendからは最後には、少なくともまた、取得素敵な証明書は、(電子メールではあるが)コースに参加と言うこと。

Zend Frameworkの認定

これは、認証のための私を準備する過程で気にして来ていた一つの質問だった? 迅速に、簡単にノーです響き。 コー​​スの講師は、認証のためのあなたが本当に日常的にフレームワークを使用する必要があることを、非常に快適で、自信を持ってその使用方法や方法論で感じている追加のアドバイスでかなりそれに明らかになった。

概要

私は二つの簡単な箇条書きのすべてを要約します、上記の書いてきたすべてを考える:

  • の新しいフレームワークと、Zend:このコースでは、期待するが何をするか正確には、それが構築できますがすることができますから、あなたに素敵なの基本的な接地良いを紹介して、フレームワーク。 コー​​スでは、関心と熱意を開発者の間でフレームワークの生成と思われる。
  • 中古Zend Frameworkには:基本的なのはとてもの一部を支えるためにそれがされた素敵な私は努力を感じた時、資金は他過ごした取る方がベターの可能性がコースでは、。 すぐに署名する私はレベル認定以降。 ための標準に-少なくとも、開発者を取るコースをすることが良いとこれは、レベルの高いseeÂ新規作成Zendが












パノラマテーマ別 Themocracy

4人オンライン中
2名様、2ボット、0人のメンバー
最大の訪問者今日:12時11時14 UTCに
今月:26 2011年7月5日12時35分は、UTC午前
今年:130 28-03-2011 22:40 UTCに
すべての時間:130 28-03-2011 22:40 UTCに