رده : رایانه

پروکسی آپاچی با هضم و خروج

توسط لوید Watkin استیون ، یکشنبه 2011 مارس 27 12:57

این پست به سرعت با استفاده از نشان می دهد شما چگونه می توان تا proxying اساسی با تصدیق آپاچی .

در مورد من من می خواستم به مشتری انتقال بیت تورنت در دسترس از طریق اینترنت مورد نیاز است ، بنابراین من می تواند در بررسی و adminster فیلمها دولت دریافت (مانند فدورا آخرین نسخه) را به عنوان. انتقال خود مشتری اجرا می شود وب سایت خود را روی پورت 9091 به طور پیش فرض. به جای اینکه زحمت باز کردن پورت بیشتر در مورد دیوار آتش من و اضافه کردن درگاه قوانین nessecary من تصمیم گرفتم با استفاده از پروکسی می خواهم فقط به تماس از طریق انتقال از طریق آپاچی mod_proxy .

ادامه مطلب 'پروکسی آپاچی با هضم و خروج' »

Zend چارچوب : اگر بارگزاری صفحه وجود دارد

توسط لوید Watkin استیون ، یکشنبه 2010 دسامبر 12 16:19

خلاصه

این است سریع برای بحث در مورد پست و نه نظر ساده یاور رندر من ایجاد شده برای Zend چارچوب سبک فایل مشاهده تنها در صورتی که وجود دارد. به طور کلی درخواست کد بارگزاری فایل که وجود ندارد به استثناء بزنند. بنابراین من ایجاد پوشش برای Zend_View : : ارائه متد () که تعیین شده است خواه پرونده وجود دارد و در صورتی که این کدها ، به سادگی می گرداند در غیر این صورت یک رشته خالی می باشد.
ادامه مطلب 'Zend چارچوب : اگر بارگزاری صفحه وجود دارد' »

مهندس خبره Zend (ZCE) 5.3

توسط لوید Watkin استیون ، پنجشنبه 2010 سپتامبر 30 21:00

با انتشار رسمی از Zend مهندس خبره (ZCE) برنامه برای 5.3 می کنم فکر من امتحان سریع من را تصور از آنچه من فکر کردم از.

پس زمینه کمی در خودم : من برای نخستین بار به معرفی پی اچ پی در مورد 7 سال قبل و 2006 کار حرفه ای در پی اچ پی از. من در حال حاضر به نام کار هیجان انگیز شروع به فعالیت Brightpearl بر اساس در بریستول ، انگلستان ، تولید CRM یکپارچه ، حسابداری ، نرم افزار و تجارت الکترونیک. من قبلا به دست آورد هر یک از شرایط ZCE قبلی. من در حال حاضر سری توسعه در 5.2.X و انتظار دارند نه واقعا دارم برای استفاده از هر ویژگی های خاص 5.3 (من Zend چارچوب 2 و دکترین 2) در طرح های توسعه ای من.
ادامه مطلب 'Zend مهندس خبره (ZCE) 5.3' »

فریم ورک Zend در هر ماژول تنظیمات طرح بندی -- پیگیری

توسط لوید Watkin استیون ، سه 2010 فوریه 16 20:48

همانطور که پیگیری به پست قبلی من در تنظیمات ماژول در هر طرح مبتنی بر برای Zend چهارچوب ، من به روز شده کد نیاز به پیکربندی کمتر از قبل از (نه که بیشتر مورد نیاز است که چند خط در تنظیمات برنامه شما!).
ادامه مطلب 'Zend چارچوب هر ماژول تنظیمات طرح بندی -- پیگیری' »

دفتر محاسبات گیرید با استفاده از محیط های مجازی -- قسمت 4

توسط لوید Watkin استیون ، جمعه 2009 دسامبر 4 11:59

معرفی

من در روز کار در یک شرکت دسته ای که در آن ما بسیاری از مشاغل را اجرا پردازش میلیونها پرونده داده و هر من شده فکر کردن به به تازگی در مورد همه دستگاه های که می آیند و در اطراف هر یک هر روز انجام می دهند هیچ چیزی برای چند ساعت. آیا سیستم های آن را خوب نمی شود اگر ما استفاده از قدرت می تواند ما را از کسانی که برای تقویت ماشین آلات پردازش؟ در این مجموعه ای از مقالات من قصد دارم به دفتر نگاه بالقوه مزایای استفاده از شبکه با استفاده از محیط های virtualised.

در بخش 3 ما ایجاد پردازش ماشین مجازی ما و راه اندازی ماشین آلات ویندوز برای تبدیل شدن به وقت تلف کردن کارگران است.

آخرین اجرای کد

لاجرم پس از ایجاد کسب و کار شما منطق کارگران تغییر خواهد کرد ، اشکالات خواهد یافت ، سریعتر کارآمد تر کد تولید خواهد شد در نتیجه کارگران خود را ترک شنبه در اطراف پردازش داده ها با استفاده از کد های قدیمی بد بو . پس چگونه می توانم اطمینان می دهیم که ما همیشه با استفاده از آخرین و بهترین نسخه از اسکریپت پردازش ما چیست؟

یک چند بسیار آسان راه های ساده می توان این کار وجود دارد ، فوت و فن ، با این حال ، این است که کاهش قدرت پردازش و ترافیک شبکه در دستیابی به این. اجازه می دهد که با ساده ترین راه حل های شروع و بهبود آن را به آرامی بر روی یک زن و شوهر از تکرارها.

روش اول خواهد بود به سادگی به کار ما به سرور کنترل در تماس باشید (از طریق سامبا ، اف تی پی و یا مشابه آن) و خراب کردن آخرین نسخه از کد. نه چندان کارآمد ، اما آن را به کار انجام دهد. اجازه می دهد که در آن تا حدودی ، چگونه اسکریپت rsync در مورد ایجاد و با استفاده از بهبود است که هر بار به جای؟ روش دیگر آنچه در مورد قرار دادن آخرین ما اسکریپت پردازش به براندازی چک کردن کد در ابتدا و پس از آن فقط به روز رسانی کد ما در هر اجرا ( بروز رسانی svn

در پایان ما می تواند در نهایت با زدن اسکریپت (بنام توسط cron هر 10 دقیقه) که به نظر می رسد تا حد امکان ساده این است :

  #! / بن / ش
 اگر تبر ص | grep - پنجم grep | grep پی اچ پی > / توسعه تمدن / تهی
 سپس
     اکو "فرصت های شغلی در حال حاضر پردازش ، خروج"
 دیگر
     اکو "فرصت های شغلی در حال اجرا نیست ، اکنون شروع"
     سی دی / راه / به / کار / کپی کنید
     svn بروز رسانی
     yourJobProcessingScript.php پی اچ پی
 فی 

در حال حاضر ما می تواند مطمئن باشد که با هر اجرا ما قطعا در حال اجرا آخرین کد. ما در حال حصول اطمینان از این پایگاه های به روز رسانی کد ما هر زمان که ما انجام اجرا و کاهش ترافیک شبکه توسط تنها تفاوت انتقال فایل در سراسر شبکه ما.

در راه اندازی تظاهرات من ، من دقیقا همانطور که در بالا. براندازی را بر روی سرور پردازش کار من نصب شده بود و من به سادگی آخرین کد آن را از شاخه 'کارگر' کشیده با استفاده از 'بروز رسانی svn. من هم اضافه شده در نسخه شماره برچسب به اسکریپت پردازش من بود که به عنوان بخشی از بازگشت به نتایج به پایگاه بازگشت. به این ترتیب من می توانم ببینم که کد من در حال بروز رسانی بود هر بار که می خواهم به من تنه یعنی کارگر شعبه که من قطعا در حال اجرا بود آخرین اسکریپت پردازش آن برداشتهاید.

با استفاده از آخرین اطلاعات

اگر شغل خود را پردازش می کند استفاده از منابع داده و سپس در برخی از این نقطه ها می خواهند به روز شده بیش از حد. مگر در مواردی که با شما تماس منابع اطلاعات خود را به صورت بسیار نادر شما به شبکه خود را با سیل ترافیک به محض کارگران خود را شروع به دویدن آوردن همه چیز را به وقفه. راه حل برای من تصمیم گرفتم که من می خواهم به حرکت منابع اطلاعاتی من در اطراف با VMs من.

نگه تو اسب وجود دارد! اگر چه منابع اطلاعات من بسیار وسیع هستند؟ خب این واقعا صحبت کردن در یک مورد از چه مقدار داده می کنیم؟ ممکن است بیشتر مقرون به صرفه برای نصب بزرگتر اضافی هارد دیسک به هر دستگاه نسبت به خرید سرور پردازش های اضافی. این بودجه از سوال است و تا کسب و کار برای تصمیم گیری. شاید که در منابع اطلاعات خود را آنقدر بزرگ است که خود را تنها به خام داشته باشید که مقدار داده ها در ماشین های خود را کارگر. در آن صورت چه کار می کنید؟ خب ما می تواند سرور نگاهی خواستار اطلاعات محلی ، اما این شبکه ممکن است با علت مسائل. در این حالت یک سیستم شبکه مانند این ممکن است غیرواقع بینانه به محیط زیست عبارتند از دفتر خود را در. همچنین ممکن است درخواست شود که شما در حال اجرا می تواند جایگزین نگاه به استراتژی ها ، به عنوان مثال شما تنها خواستار کارگران 20:00 - 06:00 هر شب و / یا منبع داده throttling.

در حال حرکت اجازه می دهد تا داده ها می گویند ما مقدار منابع به 100GB داده است. خب بله که بسیار کمی از اطلاعات را به حرکت در اطراف در شبکه بروز رسانی. چگونه می توان مطمئن شد که در حال حاضر آخرین نسخه از داده ها در این مورد؟ Rsync احتمال است ، اما من شخصا با اجرای آخرین منبع داده بر روی سرور شما کار خود را پردازش و تنظیم این به عنوان یک استاد در تکرار (با ورود به سیستم خوب بن طولانی) ممکن است راه را برای رفتن فکر می کنم :

تکرار با قرار دادن هر یک از کارگران خود را به عنوان برده به کار به روز رسانی سرور کنترل را به منابع داده شما بریزد پایین سادگی به کارگران خود را بدون افزایش بزرگی در فعالیت های شبکه ای (که مگر آن که شما انجام داده بروز رسانی بزرگ و همه کارگران خود را پا زدن در در یک بار). این مزایا بر rsync در آن شما می توانید هر کار نمی طولانی مکث قبل از گرفتن ، به عنوان روز رسانی پایگاه داده ، خروجی زیر شبح در کارگر خود را به طور مستمر به روز رسانی اطلاعات خود را در حالی که پردازش همچنان ادامه دارد.

این است که چگونه راه اندازی سرور تظاهرات من. برای راه اندازی تکرار من به دنبال راهنمای در سایت خروجی ( تنظیم تکرار ) و در عرض 20 دقیقه من تا به حال کارگر inital من تکرار کار کنترل مجموعه داده های سرویس دهنده. برای هر کارگر اضافی تنظیمات تکرار و فرایند کار می کرد هر زمانی که ماشین مجازی بود آن برداشتهاید.

خلاصه

در این بخش از مقاله ما را در نگاه چه آسان و بدون درد آن است که برای حفظ کد پردازش خود را تا تاریخ توسط rsync using یا subverion (SVN) کار را به انجام و کاهش ترافیک شبکه در همان time. ما همچنین در مورد نحوه برای نگه داشتن داده ها اطلاعات شما را تا منبع به روز با اجازه دادن به آن را به پایین بریزد به هر یک از کارگران خود را. بنابراین ما منطقه اطمینان حاصل کرد که نگه می داریم تا با منطق کسب و کار و اطلاعات در سیستم شبکه دفتر ما. خواهد شد بدیهی است وجود داشته باشد جایگزین های بیشماری را به انجام این وظایف ، اما در اینجا دو مثال ساده برای نشان دادن اینکه چگونه می توان یک راه حل این است که دور از ذهن.

دفعه بعد

در قسمت آخر از این سری ، aptly به نام 5 بخش ، به بررسی استقرار این سیستم برای. من خلاصه آنچه آموخته شده است و آنچه که من موفق به خلق.

دفتر محاسبات گیرید با استفاده از محیط های مجازی -- قسمت 3

توسط لوید Watkin استیون ، جمعه 2009 دسامبر 4 23:37

معرفی

من در روز کار در یک شرکت دسته ای که در آن ما بسیاری از مشاغل را اجرا پردازش میلیونها پرونده داده و هر من شده فکر کردن به به تازگی در مورد همه دستگاه های که می آیند و در اطراف هر یک هر روز انجام می دهند هیچ چیزی برای چند ساعت. آیا سیستم های آن را خوب نمی شود اگر ما استفاده از قدرت می تواند ما را از کسانی که برای تقویت ماشین آلات پردازش؟ در این مجموعه ای از مقالات من قصد دارم به دفتر نگاه بالقوه مزایای استفاده از شبکه با استفاده از محیط های virtualised.

در 2 بخش اجرا نگاه ما در مشاغل سرور خواهد شد ، و چگونه کار باید پیکربندی به منظور دستیابی به مقدار بزرگترین حالیکه پردازش اطمینان حاصل کرد که هر کار پردازش بدون شکست.

راه اندازی کارگر خود را -- یا سرور لنگی

گام بعدی در فرآیند راه اندازی کارگران مجازی شما. این برای من رفتن به استفاده از نصب و راه اندازی با استفاده از centOS VirtualBox. من قصد دارم به نصب خروجی زیر و پی اچ پی بر روی سرور ، همچنین به عنوان شناخته شده لنگی (nux ​​لی ، متر ySQL ، فسفر سلم) Server (ممکن است من ساخته شده است که نام بالا) است.

  • VirtualBox بر روی دستگاه شما نصب ویندوز (به دنبال لینک)
  • دانلود و نصب centOS (نسخه فعلی 5.3) در داخل یک ماشین مجازی ایجاد شده

نقطه وجود دارد هیچ من این قصد وجود دارد احتمالا در اون 1،000 از آموزش عالی وجود دارد (خوب ، در اینجا یک : ایجاد و Managing ماشین مجازی centOS تحت virtualbox ). نکته بسیار مهم توجه داشته باشید این است که گمان می کنم من به نام ماشین مجازی GridMachine من.

تا آنجا که انتخاب های من از مجازی سازی مشتری و سیستم عامل به هیچ دلیلی قانع کننده برای هر انتخاب بزرگ وجود دارد. VirtualBox چیزی که من در خانه ام دستگاه استفاده شده است و توسط سه سیستم عامل های بزرگ پشتیبانی می باشد. خود من به عنوان یک سیستم عامل خوب انتخاب centOS پایدار و من از آن استفاده بر روی وب سرور خود من. من اعتقاد زیادی در ابزار مناسب برای این کار (اگر چه من هستم استفاده از 'استفاده از سریعترین و ساده ترین برای شما' ذهنیت در اینجا) ، بنابراین اگر سیستم عامل ایکس را اجرا می کند کد خود را سریعتر و مفیدتر استفاده کنید که به جای :)

مهم تر مطمئن شوید که ماشین مجازی خود را با استفاده از DHCP ، در غیر این صورت برای هر ماشین مجازی جدید که نیاز به پیکر بندی جداگانه که چیزی است که ما انجام want.By نیست با استفاده از DHCP ما نیازی به پیکربندی تنظیمات شبکه به صورت جداگانه برای ماشین آلات کارگر ، DHCP خواهد دست از پلیس عراقی برای شما. بنابراین شما می توانید ماشین مجازی خود را در مورد دفتر بدون هیچ گونه نگرانی در مورد ایجاد هر یک تا کپی (این را بهبود می بخشد و مقیاس پذیری را کاهش می دهد دولت کارگر).

روند شما باید برای رسیدن به هدف می شود دستگاه های جدید فیزیکی برای به دست آوردن ، نصب VirtualBox ، و پس از آن تقریبا اعزام تصویر مجازی بدون خیلی دیگر. این ممکن است عاقلانه به راه اندازی همه کارگران خود را بر روی یک زیرشبکه متفاوت است به طوری که شما حداقل می توانید ببینید که چگونه بسیاری از ماشین های در حال اجرا هستند. شما همچنین می خواهید راه اندازی ماشین آلات خود را در اجاره نامه اجاره نامه طولانی یا نامحدود DHCP نیاز دارم.

چگونه به اجرا در مشاغل کارگری

این منطقه جالب توجه است و چندین روش معتبر برای کار بر روی پردازش کارگر وجود دارد. در اینجا من فقط دو بارز ترین بحث :

  • Perpetually اسکریپت در حال اجرا : اسکریپت ، می توانند به پوسته اسکریپت ، اسکریپت پی اچ پی یا یک بار در اعدام اجرا می شود و کارگر به عنوان بخشی از حلقه بی پایان. من این روش به عنوان یکی از سقوط اسکریپت با تخفیف و به طور بالقوه کارکنان خود را متوقف بدون نوعی از مداخله اجرا شود.
  • Cron اعدام اسکریپت بر اساس : هر دقیقه ایکس شبح cron لگد کردن تماس به خط خود را به چیز رفتن. بدون چک کردن برخی از این می تواند به بسیاری از نسخه های بسیاری از اسکریپت کارگر شما در حال اجرا منجر شود.

تصمیم من این بود تا با cron که لگد کردن یک اسکریپت پوسته هر 10 minutes. اسکریپت پوسته من انجام وظایف زیر بروید :

  1. دریافت لیست grep روند و این کار را برای 'پی اچ پی'. اگر نه پس از آن ادامه یافت.
  2. تماس با کد کار خود ، در مورد من این خواهد بود چیزی مبتنی بر پی اچ پی
  3. اسکریپت کارگری تکمیل اجرای آن
  4. آماده برای رفتن دوباره در تماس بعدی مناسب

اسکریپت باش من به نظر می رسد چیزی شبیه به زیر است :

  #! / بن / ش
 اگر تبر ص | grep - پنجم grep | grep> پی اچ پی / توسعه تمدن / تهی
 سپس
     اکو "فرصت های شغلی در حال حاضر پردازش ، خروج"
 دیگر
     اکو "فرصت های شغلی در حال اجرا نیست ، اکنون شروع"
     yourJobProcessingScript.php پی اچ پی
 فی 

توجه : در اکو هستند تقریبا به طور کامل بی معنی ، اما ممکن است به آنها کمک کند بعد کسی که می آید همراه را امتحان کنید و ویرایش کنید.

که آمده است تا از دستگاه کارگر مجازی ، سریع ، ساده و آسان برای کپی کردن به هر قطعه ای جدید از سخت افزار است که مجموعه ای دریافت کرده است. 'هوش و ذکاوت' از سیستم شبکه واقعا در سیستم عامل مجسم نمی باشد ، آن همه برای انجام با کد ایجاد شده به کار روند ، پیکربندی شغل ، و در حصول اطمینان از اینکه کار اجرا می شود در زمان مناسب (به عنوان مثال هنگامی که میزبان غیر فعال است .

راه اندازی ویندوز به مقداردهی اولیه کارگران

وظیفه اول این است که کار از دستور مورد نیاز برای اجرای ماشین مجازی را از خط فرمان ویندوز. اگر شما محل نصب پیش فرض virtualBox در و تو به نام GridMachine کارگر خود و سپس دستور مورد نیاز بار کردن کارگر به شما است :

  "ج : \ فایلها برنامه \ یکشنبه \ VirtualBox \ VBoxManage.exe" GridMachine startvm 

با این حال برای اجرای اسکریپت در 'بی سر' دولت ما نیاز به استفاده از :

  "ج : \ فایلها برنامه \ یکشنبه \ VirtualBox \ VBoxHeadless.exe" - startvm GridMachine -- vrdp = خاموش 

این ماشین مجازی بدون رابط کاربری گرافیکی و شروع به آن اجازه می دهد برای نجات دولت برازنده. آرگومان دوم خاموش RDP پس از آن نشانی از RDP در تضاد نیست با پنجره ها ، یا 3389 به شما یک پیام در مورد گوش دادن پورت را مشاهده کنید. نام ماشین مجازی است حساس مورد!

بعد ، ما باید آنها را تنظیم ویندوز به پا زدن کردن ماشین مجازی کارگر ما پس از آن که دستگاه غیر فعال شده است. برای این کار (بر روی ویندوز ایکس پی) شما نیاز به شروع برو --> تمام برنامه ها --> لوازم جانبی --> ابزارهای سیستم --> زمان بندی وظایف به شرح زیر :

وظایف برنامه ریزی شده

کلیک کنید بعد بر روی اضافه کردن زمان بندی وظیفه 'به دنبال آن فهرست برای اضافه کردن یک برنامه سفارشی. هدایت به اسکریپت VBoxManage خود کلیک کنید و خوب. برنامه کار خود را برای هر یک از گزینه های (ما این در یک دقیقه تغییر) و ادامه خواهد داد. پس از پرش صفحه نمایش ویندوز شما خواهد پرسید که شما می خواهید برای اجرای این کار ، من می خواهم یا 'مدیر' نشان می دهد یا ایجاد یک کاربر جدید ممتاز. به یاد داشته باشید ما نمی خواهیم که با حساب هیات استاندارد در ماشین در هر نقطه به هم بزنه. کلیک کنید گزینه های بعدی را چک کرده و نشان های پیشرفته برای این کار.

تا آخر کادر اجرا اضافه کردن رشته 'GridMachine startvm' ما و اطمینان حاصل شود که اجرای تنها زمانی که unticked وارد در سمت چپ می باشد. تعداد دفعات بعدی کار برنامه و تغییر رها کردن برنامه به گزینه 'زمانی که بیکار' را انتخاب کنید مقدار زمانی که می خواهید دستگاه می توان به غیر فعال است ، قبل از رفتن به تب بعدی.

در نهایت گزینه که ایالات توقف کار اگر آن را در حال اجرا مقدار ایکس از زمان ، untick اما تیک گزینه برای متوقف کردن کار در صورتی که دستگاه دیگر بیکار فرض میشود.

برنامه

که آن را پس از آن برای راه اندازی میزبان ویندوز!

خلاصه

در این بخش در حال حاضر راه اندازی یک ماشین مجازی به عمل به عنوان کارگر ، و همچنین به عنوان روشی که در آن ما تماس بگیرید و ما کار اجرای اسکریپت پردازش (برای خودم یک اسکریپت پی اچ پی). از اینجا به ما در مورد چگونگی راه اندازی نسخه ما را از ویندوز به راه اندازی ماشین مجازی را در حالت بی سر هنگامی که کامپیوتر غیر فعال می شود ، و صرفه جویی دولت خود را زمانی که کاربر رزومه استفاده از دستگاه نگاه کنند. امیدوارم در این مرحله شما چگونه با دیدن آن ساده است به راه اندازی چنین سیستمی و خارش به گرفتن برخی از آزمایش های خود را رفتن!

دفعه بعد

در قسمت 4 ما خواهید بود به دنبال در استفاده از ابزارها جهت اطمینان حاصل شود که شما در حال اجرا را به آخرین نسخه از کد و منابع داده به طوری که نتایج به دست آمده همیشه تا به روز با آخرین اطلاعات کسب و کار و منطق.

دفتر محاسبات گیرید با استفاده از محیط های مجازی -- قسمت 1

توسط لوید Watkin استیون ، جمعه 2009 دسامبر 4 11:23

معرفی

من در روز کار در یک شرکت دسته ای که در آن ما بسیاری از مشاغل را اجرا پردازش میلیونها پرونده داده و هر من شده فکر کردن به به تازگی در مورد همه دستگاه های که می آیند و در اطراف هر یک هر روز انجام می دهند هیچ چیزی برای چند ساعت. آیا سیستم های آن را خوب نمی شود اگر ما استفاده از قدرت می تواند ما را از کسانی که برای تقویت ماشین آلات پردازش؟ در این مجموعه ای از مقالات من قصد دارم به دفتر نگاه بالقوه مزایای استفاده از شبکه با استفاده از محیط های virtualised.

به عنوان یک پی اچ پی توسعهدهنده من قصد دارم برای استفاده از ابزار هایی که هر روز استفاده کنم یعنی ، لینوکس ، خروجی ، پی اچ پی ، VirtualBox و خرابکاری (SVN). با این حال من امیدوارم که این راهنما به به زبان های دیگر و تکنولوژی وفق دهند به همان اندازه نیز هست.

من راه حل ارائه خواهد شد بسیار آزادانه به نوع پردازش ما می باید برای دستیابی به هر حال این ممکن است درست باشد از طریق ماده را مشخص چیزها خواهم برای سادگی تغییر دهید ، یا برای تولید بیشتر حالات جالب استفاده شده است.

این محیط virtualised خواهد شد بر روی ویندوز اجرا از آنجایی که این ماشین آلات همان چیزی است که اکثریت دفاتر اجرا شود. پردازش که ماشین اداره نمی باید با کارکنان با استفاده از تداخل آن ماشین آلات ، باید بدون نگهداری در ماشین ، نیاز می شود و به سادگی گسترش پذیر به ماشین های جدید را به عنوان تبدیل شدن آنها در دسترس است. همچنین ، جدید ماشین های مجازی باید هر گونه نیاز به تنظیمات اضافی نه به عنوان این تا حد زیادی کاهش می دهد مقیاس پذیری و سهولت که در آن سیستم شبکه می تواند گسترش داده است.

چرا استقرار دفتر محاسبات گیرید؟

اولا شما ممکن است فکر کردن ، به همین دلیل نه تنها استفاده از یک ابر منابع محاسباتی مانند EC2 آمازون پلتفرم ؟ خب دلایل می تواند چند ، به عنوان مثال :

  • شما اطلاعات خاصی به محیط زیست واگذار نمی ابر رایانه
  • شما می توانید اطلاعات خاصی را به محیط زیست ابر رایانه به دلایل قانونی (مانند داده ها اجازه خروج از کشور) قرار داده است ، به طور بالقوه به دلایل قانونی ، به عنوان مثال سوابق بیمه خدمات درمانی.
  • شما می خواهید برای حفظ واحدهای پردازش خود را نزدیک کرده و کنترل کامل بر سخت افزار بیش از حد
  • شما بودجه پروژه را به اجرای موارد ابر
  • دفتر شما از اتصال به اینترنت را نداشته باشند و در نتیجه آن ممکن نیست که بتوان یک منبع برای استفاده از ابر
  • شما باران را دوست ندارد ، نشان می دهد ابرهای باران ، در نتیجه شما را به خوبی دور

من مطمئن هستم که این لیست می تواند ادامه پیدا کند ، اما من فکر می کنم که به اندازه کافی در حال حاضر.

مزایای استفاده از توری دفتر رایانه

خوب ، اجازه می دهد که انجام برخی از ریاضی (در سبک و فیزیک واقعی اجازه می دهد تا برخی از پیش فرض های فراگیر). تصور کنید شما سرور بزرگ پردازش چاق در حال اجرا 100 شغل در هر روز. در دفتر خود شما 50 ماشین که بیکار هستند 16 ساعت در روز ، هر یک از این ماشین آلات می باشد 10 ٪ به عنوان قدرتمند به عنوان پردازش فربه خود را جدا می شدیم. (همه نتایج : از اینجا به افزایش عملکرد دست کم گرفتن گرد).

بنابراین ، دستگاه 1 * 10 ٪ * قدرت 2 / 3 = 0.067 زمان یعنی 1 میز کار پردازش در زمان غیر فعال می تواند پروسه کامل 6 روز در هر شغل.

اگر شما در حال حاضر نشانی از این مقیاس طول می کشد تا آن را غیر فعال رومیزی 15 سرور به عنوان فرایند در بسیاری از مشاغل خود را به عنوان روز اصلی پردازش.

پس در دفتر وانمود ما را از ما می تواند 50 دستگاه سرویس دهنده پردازش ما افزایش قدرت از 1 تا پردازش سرور کامل 4 ، و یا ما می تواند پردازش 400 شغل در هر روز به جای 100.

مقررات ، برای هیچ سرمایه گذاری در سخت افزار جدید شرکت خود را به تازگی افزایش ظرفیت پردازش آن دسته 4 بار! به طور بالقوه شما قصد استفاده از قدرت خود را افزایش دهد اما از اکثر محیط های دفتر من شده است به دستگاه معمولا در سمت چپ یک شبه به هر حال ، بنابراین شما می توانید از این به عنوان یک ابتکار سبز را ببینید.

مزایای دیگر این سیستم نیز این معنی است که سرمایه گذاری در جدید (یا به روز شده) سرویس دهنده پردازش می تواند با تاخیر در صورتی ماشین آلات محل کار شما کافی و در حالی که قدرت از ماشین های اداری شبکه خود را دفتر خود را قدرتمند تر می شود به طور خودکار شما را بهبود بخشد.

فن آوری

آنچه شما نیاز دارید؟ (یا بیشتر به درستی چه من با استفاده از) :

  • ماشین آلات بیکار دفتر (در مورد من یدکی پنجره های قدیمی لپ تاپ ایکس پی)
  • VirtualBox (یا یکی دیگر از نرم افزار مجازی سازی مشتری)
  • ماشین مجازی با پی اچ پی ، running خروجی در حال اجرا قطع سیستم عامل ، من خواستار این سرور لنگی من :)
  • مشاغل به اجرا
  • سرور به کار (می تواند یکی دیگر از ماشین مجازی جایی)

نمونه مشاغل

انواع کارهایی که این سیستم طراحی شده است برای اجرا به شرح زیر است :

  • سیستم دریافت یک لیست از داده ها که بر اساس آن ما نیاز به بازی بازگشت و نتایج
  • تطبیق شامل چک کردن / جستجوی چند نسبتا استاتیک) منابع داده ها
  • نمایش نتایج : از منابع اطلاعات ممکن است اعتبار بیشتر ، نیاز به ادغام ، چک کردن از منابع اطلاعات اضافی در پاسخ به نتایج
  • داده ها را با سوابق مطابقت بازگشت ، به طور کامل دارای اعتبار و پردازش
  • هر رکورد در یک کار مستقل از بقیه

بنابراین اساسا ما به دنبال شغل در حال اجرا است که نیاز به ترکیبی از lookups پایگاه داده و برخی از crunching تعداد ، یک سناریو نسبتا معمولی در محیط کسب و کار.

راه حل های توری تنها سودمند برای پردازش کارهای از این نوع نیست. در واقع ، هر گونه فرایند است که می تواند به واحد های مستقل تقسیم می تواند به صورت موازی اجرا شود. مشاهده این ویکیپدیا برای مثال و اطلاعات بیشتر : محاسبات گیرید ، اما زن و شوهر از نمونه های معروف هستند Seti @ خانه و BIONC . در چارچوب برای اجرای شبکه های کامپیوتری وجود دارد ، و به این خوبی به ارزش نگاه کردن به.

چه خواهد شد میرسیم؟

در پایان این مقاله من امیدوارم که نشان می دهد که گسترش شبکه اداره نیست لازم شدیدا گران قیمت و یا زمان مصرف. من قصد دارم به بحث در مورد :

  • راه اندازی کار سیستم کنترل ، پیکربندی شغل
  • ایجاد یک ماشین مجازی مناسب پردازش
  • چگونه به راه اندازی سیستم در یک ماشین ویندوز
  • اطمینان حاصل کردن شما با استفاده از آخرین کد و داده
  • پیاده سازی و محک
  • با نگاه به آینده

من خواهم بود ساختمان (خوب من ساخته شده است ، سپس این را نوشتهاید) نرم افزار به عنوان مثال به آزمون مفاهیم در ماشین محلی با استفاده از ویندوز ایکس پی و ماشین مجازی 'GridMachine' من. کنترل سرور من کار خواهد شد ماشین اصلی اجرا می شود که من فدورا 11 .

این به هیچ وجه به معنای نشان دادن سیستم به طور کامل کار قوی ، به معنای آن بیشتر از یک تظاهرات و بحث که نشان می دهد این چیزها را می توان در یک فضای منطقی کوتاه در زمان و هزینه کمی به دست آورد. لطفا در صورت تمایل به من هر نظر ، اصلاح ، بهبود و یا ارسال و من بهترین من این مقاله به روز شده برای مسابقه به نگه داشتن انجام دهد.

دفعه بعد

در بخش 2 من سیستم شروع شده توسط به دنبال شغل در کنترل ، و نگاه کردن به چگونه کار باید پیکربندی به منظور دستیابی به بزرگترین مقدار در حالیکه پردازش اطمینان حاصل کرد که هر کار پردازش بدون شکست.

دفتر محاسبات گیرید با استفاده از محیط های مجازی -- قسمت 2

توسط لوید Watkin استیون ، جمعه 2009 دسامبر 4 11:23

معرفی

I work in a company where we run many batch jobs processing millions of records of data each day and I've been thinking recently about all the machines that sit around each and every day doing nothing for several hours. Wouldn't it be good if we could use those machines to bolster the processing power of our systems? In this set of articles I'm going to look at the potential benefits of employing an office grid using virtualised environments.

In Part 1 I gave an overview of the system and technologies I will be using as well as discussed some of the potential reasons why you would want to create an office grid.

Job Control

If you're going to be running jobs then you're going to need some way to manage them. Your job control system (on your job server) needs to be really well thought out before even attempting to run an office grid. So firstly, what are the tasks for a job control system:

  • Hand out jobs upon request from workers
  • Tell workers what type of jobs to run
  • Track jobs
  • Ensure that jobs are only run once
  • Provide job data to workers, or at least tell them where to get it

The system also needs to be extensible, a solution that works for now in a single case may be extended to run several types of jobs as the business sees the worth in a grid solution. For example, jobs may gain priorities, more than one job type may exist (ie several code bases), eventually you may even run several different worker machines that are optimised for each type of job (although that does move away from the 'generic worker' idea). Always try to think about the future when developing systems, a short term vision can lead to longer term frustration and increased development time.

Job Server

We're going to need somewhere to control our jobs from, this should be the only system in your grid that has a fixed resource locator, be that an IP address, host name, URL (using internal DNS), etc. This is because the workers need to know where to look for jobs, workers need to find the job control system (not the job control system find the workers).

The job server itself doesn't really have a complicated task (in a basic system anyhow), it needs to store a list of jobs, hand out jobs, receive results, and subsequently store them for later retrieval. How these parts (such as 'hand out jobs') are defined can be very basic. Later on we can extend the system to include an administration interface to add, edit, delete, suspend jobs but this is beyond this exercise.

There is no reason whatsoever then that your job server could not be a virtual machine running within your main processing server provided it doesn't drain too many resources from it. The job server however does need high availability, if it goes down on a Friday evening you're going to lose a whole weekend of processing, potentially costing you a couple of weeks worth of processing time (when compared to your main processing server alone). You may want to consider putting your job server on a load balanced environment for high availability.

راه اندازی مقدماتی

The basic setup for our job server will consist of what I'm calling one of my LiMP servers (that is Li nux, m ySql, P HP). The code running on the workers will actually work out what jobs it can run by interacting with with job control system databases. Later on we could create a web service and actually hand out jobs rather than having the workers do the hard work themselves, but for now we'll continue using the KISS principle (Keep it Simple, Stupid!).

So, lets create three mySQL tables to deal with jobs. These will be `jobs`, `jobRecords`, and `jobResults`.

jobs table Here I'm using SQL Buddy a great little alternative to phpMyAdmin just because its easier to install on centOS (for others see: 10 Great alternatives to phpMyAdmin )

This table consists of 5 simple fields,

  • id: Uniquely identify the job
  • name: Could be a client reference, or any number of other identifiers
  • Status: You need to know where the job is at, eg
    • 0: Not started
    • 1: Picked up
    • 2: Completed
  • started_by: Who's started doing the job? This isn't entirely required but is a nice to have. I'd suggest tracking workers by their IP address on your network
  • started_at: When did the worker start the job? By tracking jobs that have not completed within X amount of time we know we need to pick up the job once again and start processing by another worker. Workers could stop processing/go offline for any number of reasons, power failure, crash, network loss, etc.

It is easy how this table could be extended with a few additional fields to allow for statistics tracking, a finish time column to see how long the job took, a counter to see how many workers picked up the job (obviously this needs to tend to 1), job priority, the list can go on and on. In more complex job scenarios it would be possible to specify how much memory the worker would need access to (and therefore only use suitable workers), or even what type of worker would be required.

Lets add a few example jobs:

example jobs

The next table again is quite simple to understand, these are our job records. They are linked to the main jobs table by a column `jobs_id`. The make up of this table very much depends on the data that you need to supply to your workers, lets make a very simple example where we have four columns:

  • id: ID of the record
  • name: Person's name
  • address: Person's address
  • jobs_id: The job ID that this record is linked to

The third and final table consists of a results table, it has much the same make up as our records table, and with the addition of some columns could be part of the records table:

  • job_record_id: Link the result to the job table
  • result: The result data

…and that's all you need for job control! (albeit at a very basic level) In my case I'm pointed to another table where my data to process was located, but this could just as easily been a file, parameters to run simulation code, you name it.

Selecting a job

همانطور که قبلا ، کارگران را مدیریت کار ما برای ما در حال حاضر برای انجام دهید ، بنابراین همه ما باید واقعا انجام دهیم این است که پیدا کردن یک شغل نیاز به پردازش و دریافت اطلاعات. چگونه این کار می کنیم؟ خوب کار ما انتخاب معیارهای انتخاب و به دنبال شغل ، در گذاشتن من به شرح زیر است :

  1. نگاهی هر شغل است که با عنوان کامل اما کارگر ما از علامت زده نشده است و تنظیم مجدد آنها (__ME__ جایگزین با شناسه و آسان خواهد بود آدرس آی پی) :
      شغل تکمیلی `` `ست وضعیت` = `0 مکانی که در آن وضعیت` = 1 `و` = started_by __ME__ ؛ 
  2. ما با استفاده از معیارهای انتخاب شغل ، انتخاب شغل و به سیستم کنترل که که این کارگر است که برخورد با آن :
      شغل تکمیلی `` `ست وضعیت` = 1 ، `started_by` = __ME__ ، `=` started_at همین حالا () مکانی که در آن وضعیت `` = 0 یا
     (`وضعیت` = 1 `و` started_at> DATE_SUB (در حال حاضر () ، یک ساعت فاصله اکس)) سفارش شناسه `` صعودی ؛ 

    با گرفتن کارهای که منجر به مقدار ایکس از هم اطمینان می دهیم که تمام کارها در این رویداد از یک کارگر که توفنده و یا رفتن AWOL اجرا برنگشت.

  3. بعدی گرفتن اطلاعات مشاغل و پس از آن سوابق خود :
      * از انتخاب شغل `` `مکانی که در آن started_by` = __ME__ محدودیت 1 ؛
     انتخاب * از job_records `` `مکانی که در آن شناسه` = __JOBID__ ؛ 

پس از اتمام کار ما قرار دادن سوابق نتیجه ما و مارک کار خود به عنوان کامل است. به یاد داشته باشید می توانید به عنوان شغل به حالت تعلیق / سر در هر زمان اجازه می دهد برای برخی از نیرومندی در اسکریپت شما. ممکن است که کار را متوقف نیمی از راه را از طریق به روز رسانی کار سیستم کنترل ، به طوری چک کردن تعداد رکورد را در شغل و تعداد نتایج بدست آمده به کار کنترل سیستم ذخیره می شود حرکت و حکیم است.

علاوه بر این ، در حالی که این نشان می دهد چگونه می تواند واقعا شغل انتخاب می شود و موفق گذاشتن - از پرس و جوی شما باید قاب چکیده کنترل کار خود را به طوری که اگر شما تصمیم به تغییر سیستم ، به یک وب سرویس با استفاده از پرونده ، بر اساس کاپرفیلد ، و یا دیگر تعدادی از سیستم های آن را به کد در بالای آن تاثیر نمی گذارد.

فرصت های شغلی پیکربندی

جنبه های بعدی در نظر گرفتن حجم کار و تنظیمات است. با بازی با تنظیمات کار ما می توانیم تعادل بین سرعت عالی ، پاسخگویی فرایند و قابلیت اطمینان اعتصاب. نگاهی به زن و شوهر of حالات :

  1. مشاغل را هر روز 1 برای اجرا : این به این معنی که کارگران شما نیاز به 15 روز تا روند هر شغل (به یاد داشته باشید 10 ٪ از قدرت برای 2/3rds از وقت). این به وضوح پیکربندی عاقلانه نیست ، اندازه شغل شما این است راه خیلی بزرگ! این امر را حداقل دو برابر این زمان را برای یک کار پردازش اولیه باید کارگر برو AWOL (هم انتخاب کنید تا به آن است که در نتیجه به علاوه زمان بازفرآوری بازگردانده نمی شود). در ایده آل شما می خواهم و حداقل یک شغل کامل تیک تاک به آسانی پاک در پایان هر دوره طولانی بیکار ، که راه شما را بیش از مشاغل در بدترین حالت یک کار طول می کشید ، دو روز به روند باید اول بروید گم شده است.
  2. مشاغل را به 1 دقیقه اجرا کنید : این به این معنی که کارگران خود را در حدود 15 دقیقه هر شغل را اجرا کنند. در حالیکه این ممکن است در ابتدا به نظر می رسد ایده آل ، پردازش کار اضافی به شما سود در طول زمان ناهار ، معافیت های قهوه ها ، جلسات ، و غیره این سناریو فشار قرار می دهد در زمینه های دیگر از سیستم شما مشکلات و معرفی خود را دارد. به عنوان مثال ، در مرحله اول راه اندازی خود را / پردازش زمان می گذرد ، نسبت به حق کردن ، در نتیجه از دست دادن کارایی سیستم. شبکه شما برای رفتن به اطلاعات به طور مداوم به کار کارگران مختلف هیات خسته کننده که دونگ روز خود را به کار روز جریان. شما همچنین رفتن به فشار قرار دادن بیشتر را بر روی سرور پردازش کار خود را تا آن را به ظرف از تعداد بسیار بسیار زیادی از قطعات کوچک از کار را به صورت منظم. در نهایت ، در این وضعیت اگر سرور کار خود را پایین می رود شما قصد ایجاد یک ورود پشت عظیمی از کار uncompleted در حالی که کار می تواند بزرگتر از ادامه پردازش blissfully غافل که سرور کار بود تجربه مشکلات.

در حقیقت وجود نخواهد داشت پیکربندی یک ایده آل برای راه اندازی شبکه خود ، بسیار بستگی به منابع موجود ، نوع شغل فرد ، شغل برگرد الزامات زمان ، قابلیت های شبکه ، و غیره. با این حال برخی از دستورالعمل ها خواهد بود :

  • شغل حجم به طوری که هر کارگر می تواند از طریق حداقل 3-4 شغل در یک دوره 15 ساعت (به احتمال زیاد طولانی ترین مدت زمان بیکار) دریافت کنید
  • بازی با حجم کار به طوری که زمان راه اندازی می شود نسبتا ناچیز به زمان پردازش (با در نظر گرفتن نقطه در بالا) مقایسه شده است.
  • اگر کار می کند در دو کامل نیست مقدار زمانی (شاید کمتر) از شما انتظار آن را به کامل که چیز از دست رفته AWOL فرض آن و شروع به پردازش آن را با دیگر کارگر. این معنی است که شما ممکن است مجبور باشید تا سه بار در طول طبیعی برای آن به کار کامل (احتمالا دیگر اگر پس از آن کار می افتد). شما ممکن است بخواهید این زمان به کاهش دهد ، اما مراقب باشید نه بیش از حد آن را کاهش دهد که شما ممکن است شروع به تکثیر وظایف پردازش را به طور مرتب.
  • مشاغل باید مستقل از الزامات خارج تا آنجا که امکان پذیر است. سرور کار ، به عنوان مثال ، تنها باید در شروع و پایان هر کار می شود تماس گرفت.
  • آیا اشباع شبکه شما نیست ، این دو اثر منفی داشته باشد ، کارکنان خود را در طول روز را پیدا خواهد کرد با استفاده از شبکه های خسته کننده و مشکل ممکن است با اتصالات از زمان که تنها مشکل بدتر خواهد شد به عنوان شبکه خود را به شما در مقیاس با تجربه.
  • شغل اطمینان می توانید بر روی کارگران را اجرا کنید. اگر شغل تبدیل بیش از حد حافظه و یا دیسک فشرده شغل فضای فشرده ساقط شروع خواهد شد و تنها چیزی که شما متوجه شده است افت در تعداد مشاغل پردازش با هیچ دلیل واقعی چرا.

نمایش نتایج : از ارائه فرصت های شغلی

وقتی ارائه نتایج یک کار مهم است که برای بررسی نتایج دیگر کارگر نشده است ارسال شده ، به خصوص اگر کارگر حاضر شده است برای برخی از زمان خواب.

هنگامی که نتایج به دست آمده ارسال شده اطمینان حاصل شود که تعداد نتایج مسابقات تعداد رکورد در کار.

همانطور که پیش از این ، و نه می تواند بیش از تاکید کرد ، ایجاد تحمل خطا کار به بازیابی و ارسال نتایج :. The workers can (and most likely will) go into suspend mode at the most inconvenient of times and this needs to be catered for. Also once again abstracting away your results submission will help cater for future changes to your job control system much easier to deal with.

خلاصه

In this section we have looked at what a job control server needs to do and how to get a very basic system set up. We discussed how to retrieve a job from the control system and how best to configure jobs to get the most our of your office grid system. To finish, a paragraph or two on submitting results back to the job control server was presented.

  • A job control server manages jobs and ensures that all work units are completed
  • By abstracting your job select/results submission we can change the technology of the control server without much problems
  • Configure your jobs to ensure that they are run quickly and efficiently without putting too much pressure on your network infrastructure, and without duplicating processing tasks on a regular basis.
  • Ensure that you build fault tolerance and error checking into your routines, workers can suspend and resume and the most inconvenient of times. Remember to check if results have already been submitted by another worker.

Next time

In part 3 we'll create our virtual processing machine and set up our windows machines to become idle-time workers.

دفتر محاسبات گیرید با استفاده از محیط های مجازی -- قسمت 5

توسط لوید Watkin استیون ، جمعه 2009 دسامبر 4 11:03

معرفی

I work in a company where we run many batch jobs processing millions of records of data each day and I've been thinking recently about all the machines that sit around each and every day doing nothing for several hours. Wouldn't it be good if we could use those machines to bolster the processing power of our systems? In this set of articles I'm going to look at the potential benefits of employing an office grid using virtualised environments.

In Part 4 we looked at using tools to ensure that we're running the latest version of the code and data sources so that obtained results are always up-to-date with the latest business information and logic.

Pre-Deployment

Before deploying your grid system if there's one thing you do and one thing alone it's benchmark your current system ! No matter what you tell colleagues about how much extra work your system is going to do unless you have numbers to back this up your guarantees are nothing. So,

  • how many records can you process currently? Per Day? Per Hour?
  • How long does it typically take to turn around a job?
  • How much more capacity do you have?

There's also additional questions:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • What advantages do you hope/expect to get from a grid system?
  • Are your office machines capable of running the jobs?
  • Are your (or can you jobs be converted) to wrok in this style of running?

The last major point is to take your time on any major change like this. Update your processing code to work using the new methodology, benchmark again. Possibly set up your processing server to run a virtual machine, after all your processing server will just be another worker (just a very powerful one relatively). Allow the new process to settle.

گسترش

My suggestion would be to pop into the office one weekend perform all the installations and setup. Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Deployment for a system like this needs to be slow. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

ایست!

What if you want to stop your workers from running at some time? They are all out there running, regenerating, and trying their best to process data like hungry insects. The answer may seem obvious but its worth adding just in case its overlooked. Simply edit your processing script with an exit(0) or die() or some other statement to kill your processing job. An important reason why we always try to update to the latest processing script before any run!

Demonstration System

In order to write this set of short articles I created a very small grid to demonstrate the technologies and methodologies. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. By no means have I gone out and saturated a whole office with traffic and nor have I had access to a regular staff members PC to see how host performance was affected.

My demonstration system was very humble indeed. I used my regular desktop set up as a job control server. On this I had installed mySQL server installed set up as a master in replication, PHP , and SVN linked through apache (for access via worker VM).

I then created a centOS worker machine on VirtualBox on a 6 year old windows XP laptop. I setup scheduled tasks as specified after copying the VM onto the machine and let it go.

The virtual machine was set up with PHP, subversion, and mySQL. I checked out a branch named 'worker' from my job control servers repository and made sure it could be updated using 'svn update'. Next I setup mySQL as a slave and checked that data was replicating from mySQL on the job control server down to the worker VM. After all this I setup the bash script and the cron job.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Counted the number of similar names in a table from the data source held on the VM
  • Counted the number of names as above but splitting the name by spaces (ie forename, middle, surname)
  • Repeated this process 1,000 times

Each job took approximately 20 minutes to run. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. Newer machines may not have a pause of this long. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

Conclusions / Evaluation

The next obvious step would be to actually get a real world example and start to deploy a system such as this within an office environment and see what happens. Asking a business to commit to this without a trail blazing company to prove the technology and effectiveness may be a little difficult. Grid/Distributed computing is very popular is some circles and has some large applications (BIONC, SETI@Home, Folding@Home, etc). I did not, however, find a smaller scale and simple system like this in my searches that could be rolled out within an office environment.

I created a basically free system using mostly open source software and tools available in almost any office. The technologies were basically demonstrated and show to perform and work as expected. Hopefully I have show that with not much work and with a very simple setup you can deploy an office grid computing system that is powerful, cheap, and scalable all at the same time.

Once a system is up and running there is almost no end to the amount of customisation and improvements you can make. For example statistics / benchmarking can easily be added showing the worth of such a system every day. New machines can be added quickly and easily as and when they arrive with upgrades to existing hardware bolstering your processing power.

I hope you've enjoyed reading this series of articles and its given you food for thought on running an office grid system. The solution presented here won't necessarily work in all situations but should be adaptable to allow you to get your data processing done using your own solution.

Please feel free to send me any comments, corrections, or improvements and I'll do my best to keep this article updated to match.

Zend Framework: Fundamentals – Review

By Steven Lloyd Watkin , Saturday 28th November 2009 10:42 pm

My employer recently paid for a group of us developers to take the Zend Framework: Fundamentals course, here I'll summarise my thoughts and opinions on the course for others. For those looking to save time, here's my summary:

For developers who haven't had time to look at the Zend Framework this course (Zend Framework: Fundamentals) offers a good overall picture of the framework introducing you to the key areas and giving enough information in order to continue. For those who have spent time looking at the framework and have followed one or two tutorials this course does not offer much beyond.

Background

I've been a PHP developer for around 5-6 years, and have started working with the Zend Framework on a component basis over the last 6 months. I've developed and/or been a developer on a couple of small Zend Framework MVC sites. I'll be honest, I haven't had a huge amount of exposure to other frameworks from a coding point of view but have spent several hours researching the project websites and evaluating them. The framework and the community surrounding Zend Framework it is quite exciting and there seem to be huge possibilities in where its going.

About the Course

The course is delivered over 9 two hour webex sessions (with a 10-minute break in the middle). The time is spent going through a set of slides provided by Zend with discussion at any time. You can use a microphone to talk to the instructor, but to be honest I didn't see anyone use anything more than the chat window. In addition a VMWare Ubuntu machine is provided that has example code and projects set up an a trial version of Zend Studio. The course leader talks to attendees either over an integrated VoIP solution, or you can dial in using one of the many worldwide dial in numbers.

During the course the material consists of a brief overview of the Framework and the MVC pattern before heading into a sample guestbook application. The discussion demonstrated bootstrapping, Zend_Application, Db Tables, Database access, Forms, Filtering, ACL, Validating, etc, etc. Basically covering all the topics you'd require to get a basic site up an running all the time giving you the tools to go and get more advanced in the framework (although this did amount to 'See the website' much of the time).

Time is given to code up some examples, and to develop the 'guestbook' and simple 'wiki' application. Personally I felt that providing the code or each app and then asking us to develop what was essentially a copy alongside didn't really provide a good learning experience. I would have preferred to develop an application similar, but not identical. to the example application with the benefit of having a guide to refer to. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

The course style was informal, allowed for feedback and collaboration between attendees and the instructor. The course leader was friendly, approachable (email addresses were shared for questions), and whilst his presentation from the slides was a bit shaky seemed fully competent in the framework. He was clearly someone who used the framework on a regular basis rather than someone who is taught to teach the course, I liked the 'real world' experience in that respect.

Overall Feeling

In some ways I found the course a waste of time, in others it was very handy. Hopefully I'll get my reasons across clearly, and maybe provide some food for thought or useful feedback (knowing me this is unlikely!).

For myself this course was aimed at too low a level. Having gone through the quickstart guide, read Rob Allen's Zend Framework in Action, and worked with the framework a little I didn't really get anything too much. I would of liked the course to pick up from the end of the quickstart and develop additional skills.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. Other members of the development team that haven't spent the time looking into the framework finished each session with enthusiasm and asked questions which was really nice to see.

All was not lost, it was good to spend time confirming the basic details of the framework and get to ask a couple of questions in areas where I wasn't 100%. It was also time that I got to sit down each day and think about coding using the framework and future projects, something I wouldn't of been able to do otherwise (can you imagine your company agreeing to that? :) ). Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend Framework Certification

This was one question that kept coming to mind during the course, would it prepare me for the certification? The quick, easy is a resounding No . The course instructor was quite clear on that with the additional advice that for the certification you should really be using the framework on a day to day basis and feel very comfortable and confident in its usage and methodologies.

خلاصه

Given everything I've written above, I'll summarise everything in two easy bullet points:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • Used the Zend Framework: While it was nice to shore up some of the very basics I felt the time, effort, and funds to take the course could of been better spent elsewhere. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.












تم های پانوراما Themocracy

3 بازدید کنندگان آنلاین
1 guests, 2 bots, 0 members
حداکثر بازدید کننده امروز : 7 در 12:15 UTC
این ماه : 26 در 2011/07/05 12:35 UTC
این سال : 130 در 28-03-2011 22:40 UTC
تمام زمان حال : 130 در 28-03-2011 10:40 UTC