HTTP/1.0 200 OK Accept-Ranges: none Content-Location: http://www.evilprofessor.co.uk/category/computing/ Content-Type: text/html; charset=UTF-8 Date: Fri, 20 May 2011 01:44:53 GMT X-Frame-Options: ALLOWALL Set-Cookie: PREF=ID=a5b3a062d7058765:TM=1305855893:LM=1305855894:S=Q-f2lBwkzaVHgj4F; expires=Sun, 19-May-2013 01:44:54 GMT; path=/; domain=translate.googleusercontent.com X-Content-Type-Options: nosniff Server: translation Expires: Fri, 20 May 2011 01:44:53 GMT Cache-Control: private Evilprofessor.co.uk המיחשוב »

קטגוריה: מחשוב

פרוקסי אפאצ 'י עם לעכל אימות

לפי ווטקין לויד סטיבן , 27 במרץ 2011 יום ראשון 12:57

פוסט זה יהיה במהירות להראות לך איך להגדיר proxying עם אימות בסיסי באמצעות אפאצ 'י .

במקרה שלי, רציתי להיות קצת הילוכים סיקור הלקוח הזמין דרך האינטרנט, כדי שאוכל לבדוק על ו adminster סיקור הורדות המדינה (כגון האחרונה לשחרור פדורה), כנדרש. הילוכים עצמו פועל הלקוח האינטרנט שלה על יציאת 9091 כברירת מחדל. במקום לטרוח פתיחת יציאות נוספות על חומת האש שלי והוספת nessecary הפניית פורט הכללים החלטתי פרוקסי רק שיחות דרך תמסורת באמצעות אפאצ 'י באמצעות mod_proxy .

המשך קריאה "אפאצ 'י פרוקסי עם לעכל אימות'»

Zend Framework: לדקלם אם קיים

לפי ווטקין לויד סטיבן , 12 דצמבר 2010 יום ראשון 16:19

תקציר

זהו פוסט מהיר כדי לדון עוזר תצוגה פשוטה למדי יצרתי עבור טיוח המסגרת Zend להציג סגנון הקובץ רק אם היא קיימת. בדרך כלל מבקשים את הקוד כדי להבהיר קובץ שאינו קיים תזרוק חריגה. לכן יצרתי עטיפה עבור Zend_View:: לדקלם () שיטה שבה נקבע אם הקובץ קיים ואם כן מעבד, אחרת פשוט מחזירה מחרוזת ריקה.
המשך קריאה "Zend Framework: לדקלם אם קיים '»

Zend מהנדס מוסמך (ZCE) 5.3

לפי ווטקין לויד סטיבן , 30 ספטמבר 2010 יום חמישי 21:00

עם שחרורו הרשמי של מהנדס מוסמך בתוכנית (ZCE) Zend עבור 5.3 חשבתי לתת רושם מהירה שלי מה דעתי על הבחינה.

קצת רקע על עצמי: אני הוצג לראשונה ל -PHP על 7 שנים לפני עבדו בצורה מקצועית מאז 2006 ב-PHP. כרגע אני עובד על מרגש הזנק בשם Brightpearl מבוסס בריסטול, בריטניה , ייצור, משולב ראיית חשבון CRM, תוכנות מסחר אלקטרוני. אני לא השיגו בעבר כל הכישורים ZCE הקודם. אני כרגע להתפתח 5.2.X הסדרה ולא השתמשו באמת כל התכונות ספציפיים 5.3 (אני מחכה Zend Framework 2 ו דוקטרינת 2) במפעלי פיתוח שלי.
המשך קריאה "Zend Certified Engineer (ZCE) 5.3" »

במסגרת Zend לפי הגדרות פריסה Module - המשך טיפול

לפי ווטקין לויד סטיבן , יום שלישי 16 2010 08:48 פבואר

כפי מעקב להודעה הקודמת שלי על לכל מודול הגדרות הפריסה מבוססת על Zend Framework , עדכנתי את הקוד דורשים תצורה פחות מכן, לפני (לא שזה נדרש יותר כי כמה שורות תצורת היישום שלך!).
המשך קריאה "Zend Framework לכל מודול פריסה הגדרות - המשך טיפול" »

משרד גריד באמצעות סביבות וירטואליות - חלק 4

לפי ווטקין לויד סטיבן , 4 בדצמבר 2009 יום שישי 11:59

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים כל יום חשבתי לאחרונה על כל מכונות יושבים כל יום עושה כלום במשך כמה שעות. האם לא יהיה זה טוב אם היינו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני הולך להסתכל על היתרונות הפוטנציאליים של העסקת משרד הרשת באמצעות סביבות וירטואליות.

ב חלק 3 יצרנו מכונה וירטואלית עיבוד שלנו להגדיר את Windows מכונות להפוך הזמן עובדים, בטלה.

הרצת קוד האחרונה

באופן בלתי נמנע לאחר יצירת עסקים הפועלים ההיגיון שלך ישתנה, חרקים יהיה למצוא, יותר קוד יעיל יותר יופק ובכך משאיר העובדים שלך ישבו סביב עיבוד נתונים באמצעות קוד מסריח הישן . אז איך אנחנו מבטיחים שאנחנו תמיד בגרסה העדכנית ביותר של סקריפטים עיבוד שלנו?

ישנן כמה דרכים פשוטות מאוד קל שאנחנו יכולים לעשות את זה, את הטריק עם זאת, היא להפחית את כוח העיבוד ותעבורת הרשת בהשגת זה. מאפשר להתחיל עם הפשוט של פתרונות ולשפר אותו לאט על פני כמה חזרות.

השיטה הראשונה יהיה פשוט להתחבר לשרת שלנו התפקיד שליטה (דרך סמבה, FTP, או דומה) ומורידה את הגירסה האחרונה של הקוד. לא מאוד יעיל, אבל זה יעשה את העבודה. מאפשר לשפר את זה קצת, איך על יצירת סקריפט ו-rsync להשתמש כי בכל פעם במקום? לחילופין מה לשים על עיבוד התסריט האחרונה שלנו לתוך חתרנות לבדוק את הקוד בתחילה ולאחר מכן רק לעדכן את קוד שלנו על לרוץ כל ( עדכון SVN )?

בסופו של דבר אנחנו יכולים בסופו של דבר עם תסריט bash (שנקרא על ידי cron כל 10 דקות) אשר נראה פשוט כמו זה:

  #! / Bin / sh
 אם הגרזן נ"ב | grep-v grep | grep php > / dev / null
 אז
     הד "איוב הוא עיבוד כרגע, יציאה"
 אחר
     הד "איוב לא פועל, להתחיל עכשיו"
     cd / path / to / עובד / להעתיק
     svn עדכון
     PHP yourJobProcessingScript.php
 Fi 

עכשיו אנחנו יכולים להיות בטוחים כי עם כל סיבוב אנחנו בהחלט מפעיל את הקוד האחרון. אנחנו מבטיחים את זה על ידי עדכון בסיס הקוד שלנו בכל פעם שאנו מבצעים לרוץ הפחתת תעבורת הרשת על ידי היחידה להעביר את ההבדלים הקובץ ברחבי הרשת שלנו.

בהגדרת ההפגנה שלי, עשיתי בדיוק כמו לעיל. Subversion היה מותקן בשרת שלי עבודה עיבוד ואני פשוט משך את קוד האחרונה מסניף "העובד" באמצעות "עדכון svn". אני גם הוסיף תג מספר הגירסה סקריפט עיבוד שלי אשר הוחזר באתר כחלק לחזור התוצאות. בדרך זו יכולתי לראות כי הקוד שלי היה להיות מעודכנים כל הזמן העתקתי המטען שלי לתוך כלומר עובד הסניף, כי הייתי בהחלט מפעיל את התסריט לעיבוד האחרונה.

באמצעות הנתונים האחרונים

אם עיבוד העבודה שלך עושה שימוש במקורות נתונים ואז בשלב מסוים האלה הולכים להיות מעודכן מדי. אלא אם קוראים מקורות הנתונים על בסיס נדיר מאוד שאתה הולך להציף את הרשת עם התנועה ברגע לעובדים שלך להתחיל לרוץ להביא הכל כדי קיפאון. עבור הפתרון שלי החלטתי שאני רוצה להעביר מקורות הנתונים שלי מסביב עם מכונות וירטואליות שלי.

החזק אתה הסוסים שם! מה אם מקורות הנתונים שלי הם ענקיים? ובכן זה באמת מקרה של כמות הנתונים אנחנו מדברים? זה עשוי להיות יעיל יותר עלות להתקין כונן קשיח גדול נוסף למכונת כל מאשר לרכוש שרת עיבוד נוספת. זו שאלה של תקציב הוא עד העסק להחליט. זה אולי כי מקורות המידע שלך הם גדולים כל כך ישים רק שלה כדי לשמור על כמות הנתונים מכונות העובד שלך. במקרה כזה מה היית עושה? טוב שאנחנו יכולים להסתכל קורא שרת הנתונים המקומי, אבל זה עלול לגרום לבעיות עם הרשת. במקרה זה מערכת רשת כגון זה עלול להיות מציאותי כוללים בסביבת המשרד שלך. ייתכן גם כי אתה יכול להסתכל לתוך אסטרטגיות פועל חלופי, למשל רק קורא לעובדים שלך 20:00-06:00 כל לילה ו / או נתונים ויסות בקשות המקור.

נעה על נניח מקורות הנתונים שלנו הסכום ל 100GB של נתונים. ובכן, כן זה לא מעט נתונים לנוע סביב הרשת על העדכון. איך היינו להבטיח שיהיה לנו את העותק האחרון של הנתונים במקרה זה? Rsync היא אפשרות, אבל באופן אישי אני חושב על ידי הרצת קוד האחרונים הנתונים בשרת שלך עבודה עיבוד להגדיר זאת כמאסטר שכפול (עם יומן bin נחמד ארוכה) עשוי להיות הדרך ללכת:

שכפול לפי כל הגדרה של העובדים שלך כעבד הבקרה עדכונים עבודה שרת למקורות הנתונים שלך יהיה לטפטף יפה לעובדים שלך מבלי להגדיל את ענקית בפעילות הרשת (כלומר, אלא אם כן אתה מבצע עדכון נתונים ענק וכל העובדים שלך בעיטה בבת אחת). זו יש יתרונות על פני rsync כי אתה לא מקבל שתיקה ארוכה לפני כל עבודה, כמו עדכונים באתר, MySQL daemon על העובד שלך יהיה לעדכן את הנתונים שלה תוך עיבוד ממשיך.

זה איך אני מגדיר את שרת ההפגנה שלי. להגדיר שכפול עקבתי אחרי מדריך על mySQL באתר ( הגדרת השכפול ) ותוך 20 דקות אני כבר עובד inital שלי משכפלים את השליטה העבודה במערך השרתים. עבור כל עובד נוסף את הגדרות השכפול ואת התהליך עובד כל הזמן כאשר VM הועתק.

תקציר

בחלק זה של המאמר בחנו כמה קל ונטול כאבים היא לשמור על קוד עיבוד שלך מעודכנים על ידי rsync using או subverion (SVN) כדי לעשות את העבודה ולהפחית את תעבורת הרשת ב time. אותו דנו גם כמה כדי לשמור מידע מקור הנתונים עדכני ידי הפעלתו לטפטף על כל העובדים שלך. כך אנו מבטיחים כי אנחנו באזור לשמור על קשר עם לוגיקה עסקית ומידע במערכת שלנו במשרד הרשת. יהיו כמובן להיות חלופות אינספור כדי ביצוע משימות אלה, אבל כאן היו שתי דוגמאות פשוטות כדי להראות עד כמה קל הפתרון הוא לבוא.

בפעם הבאה

ב הסופי חלק של סדרה זו, aptly בשם חלק 5 , נדבר על פריסת מערכת זו. אני לסכם את מה שנלמד ומה שהצלחתי ליצור.

משרד גריד באמצעות סביבות וירטואליות - חלק 3

לפי ווטקין לויד סטיבן , 4 בדצמבר 2009 יום שישי 23:37

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים כל יום חשבתי לאחרונה על כל מכונות יושבים כל יום עושה כלום במשך כמה שעות. האם לא יהיה זה טוב אם היינו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני הולך להסתכל על היתרונות הפוטנציאליים של העסקת משרד הרשת באמצעות סביבות וירטואליות.

ב חלק 2 הבטנו משרות שרת יפעל, וכמה עבודות צריך להיות מוגדר על מנת להשיג הכמות הגדולה ביותר של תוך עיבוד להבטיח כי כל עבודה מעובד ללא יוצא מן הכלל.

הגדרת העובד שלך - או שרת צולע

השלב הבא בתהליך הוא להגדיר עובדים הווירטואלי שלך. בשביל זה אני הולך להשתמש ההתקנה של CentOS באמצעות VirtualBox. אני הולך להתקין mySQL ו PHP על השרת, המכונה גם צליעה (nux ​​לי, מ ySQL, P-HP) Server (אני אולי עשו את זה שם למעלה).

  • התקנת VirtualBox על המחשב שלך Windows (בקישור)
  • הורד והתקן CentOS (הגרסה הנוכחית 5.3) בתוך מכונה וירטואלית שנוצרה

אין טעם לי ללכת זה יש כנראה של 1000 של הדרכות גדול בחוץ (אישור, הנה אחד: יצירה Managing מכונה וירטואלית CentOS תחת VirtualBox ). נקודת חשוב לציין אני מניח כי קראתי GridMachine וירטואלי שלי.

ככל הבחירות שלי של הלקוח הווירטואליזציה של מערכת ההפעלה ללכת אין סיבה משכנעת גדולה עבור כל בחירה. VirtualBox היא משהו אני משתמש במחשב בבית שלי, והוא נתמך על ידי שלושת מערכות ההפעלה הגדולות. בחרתי CentOS כמו מערכת ההפעלה שלה יציבה טובה ואני משתמש בו בשרת האינטרנט שלי. אני מאמין גדול בכלים המתאימים לעבודה (אם כי אני החלת "להשתמש המהירה והקלה ביותר עבורך" המנטליות פה), אז אם מערכת ההפעלה X רץ הקוד שלך מהר יותר וביעילות רבה יותר לשימוש, כי במקום:)

חשוב לוודא כי VM שלך משתמש ב-DHCP, אחרת עבור כל מכונה וירטואלית חדשה היה צריך להיות מוגדר בנפרד וזה משהו שאנחנו לא want.By באמצעות DHCP אנחנו לא צריכים להגדיר הגדרות רשת בנפרד עבור מכונות העובד, DHCP יהיה ביד את כתובות ה-IP בשבילך. לכן אתה יכול להעתיק מכונה וירטואלית שלך על המשרד מבלי לדאוג לגבי הגדרת כל אחד למעלה (זה משפר את המדרגיות מפחית הממשל העובד).

תהליך אתה צריך לשאוף להשיג יהיה להשיג מכונה פיזית חדשה, להתקין את VirtualBox, ולאחר מכן די הרבה לפרוס את התמונה הווירטואלי בלי הרבה דברים אחרים. זה יכול להיות חכם כדי ההתקנה את כל העובדים שלך ברשת משנה שונים, כך שתוכל לפחות לראות איך מכונות רבות פועלות. בנוסף, עליך להגדיר את המכונות שלך על חכירה ארוכה או חכירה DHCP מוגבל.

כיצד להפעיל את ג 'ובס על העובד

זהו תחום מעניין ויש שיטות תקף מספר למשרות עיבוד על העובד. כאן אני רק לדון בשני הברורה ביותר:

  • הרף פועל סקריפט: סקריפט, יהיה זה סקריפט מעטפת, או סקריפט PHP מבוצע פעם אחת על העובד והוא פועל כחלק בלולאה אינסופית. אני מוזלים בשיטה זו כמו התרסקות אחת של התסריט ואת פוטנציאל העובדים שלך יפסיק לפעול ללא התערבות כלשהי.
  • ביצוע Cron התסריט מבוסס: בכל x דקות את השד cron בעיטות מחוץ קריאה התסריט שלך כדי להתחיל להזיז את העניינים. בלי לבדוק כמה זה יכול להוביל עותקים רבים רבים של התסריט העובד שלך פועל.

ההחלטה שלי היתה ללכת עם cron אשר בעיטות מחוץ תסריט פגז כל 10 minutes. סקריפט מעטפת שלי מבצע את המשימות הבאות:

  1. קבל רשימה תהליך grep הזה עבור "PHP". אם לא נמצא ואז להמשיך.
  2. Call קוד התפקיד שלך, במקרה שלי זה יהיה משהו מבוסס PHP
  3. התסריט עובד משלימה להפעיל שלה
  4. מוכן ללכת שוב על שיחת המתאים הבאה

סקריפט bash שלי נראה כמו משהו הבאות:

  #! / Bin / sh
 אם הגרזן נ"ב | grep-v grep | PHP> grep / dev / null
 אז
     הד "איוב הוא עיבוד כרגע, יציאה"
 אחר
     הד "איוב לא פועל, להתחיל עכשיו"
     PHP yourJobProcessingScript.php
 Fi 

הערה: הד של כמעט חסר טעם לחלוטין, אבל יכול לעזור לאדם הבא אשר בא לנסות ולערוך אותם.

זה מסכם את הגדרת המכונה הווירטואלית עובדת, מהיר, פשוט, קל להעתיק כל יצירה חדשה של חומרה כי הוא קיבל. "החוכמה" של מערכת רשת באמת אין במערכת ההפעלה דמיינו, שלה כל לעשות עם הקוד יצר עבודות בתהליך, את תצורת העבודה, וגם לוודא כי העבודה פועל כאשר כלומר המתאימה (כאשר המארח הוא סרק ).

הגדרת Windows כדי לאתחל את העובדים

המשימה הראשונה היא לעבוד את הפקודה נדרש להפעיל את המכונה הווירטואלית משורת הפקודה של Windows. אם התקנת VirtualBox ב ברירת המחדל למיקום ויש לך בשם GridMachine העובד שלך ואז את הפקודה נדרשת כדי לטעון את העובד שלך הוא:

  "C: \ Program Files \ יום ראשון \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

זאת כדי להריץ את הסקריפט בתוך מדינה "חסרת הראש" אנחנו צריכים להשתמש:

  "C: \ Program Files \ יום ראשון \ VirtualBox \ VBoxHeadless.exe" startvm GridMachine - vrdp = off 

פעולה זו תפעיל את המכונה הוירטואלית ללא GUI ולאפשר לו לשמור את המדינה בכבוד. הטיעון השני מכבה RDP כך שלא תתנגש עם חלונות RDP, או לתת לך הודעה על האזנה על פורט 3389. שם מכונה וירטואלית היא תלויית רישיות!

הבא, אנחנו נצטרך להגדיר את Windows עד לבעוט מחוץ VM העובד שלנו פעם המכונה לא היה פעיל. כדי לעשות זאת (ב-Windows XP) תצטרך ללכת התחל -> כל התוכניות -> עזרים -> כלי מערכת -> משימות מתוזמנות להלן:

משימות מתוזמנות

לחץ על הבא על "הוסף משימה מתוזמנת" ואחריו עיון כדי להוסיף תוכנית מותאמת אישית. נווט סקריפט VBoxManage שלך ​​ולחץ על אישור. תזמון המשימות שלך עבור כל אחת מהאפשרויות (נשנה את זה בעוד רגע) ולהמשיך. לאחר לדלג על חלונות המסך הבא יבקש מכם אשר ברצונך להפעיל את המשימה הזו, הייתי מציע גם "מנהל" או יצירת המשתמש המיוחסים חדש. זכור שאנחנו לא רוצים להפריע בחשבון וצוות סטנדרטי במחשב בכל נקודה. לחץ על אפשרויות להראות הבאה ולבדוק מתקדמים עבור משימה זו.

עד סוף להפעיל הטקסט להוסיף מחרוזת "GridMachine startvm 'שלנו להבטיח להפעיל רק כאשר הוא מחובר שמאל unticked. בקר המשימות לוח הזמנים הבא ולשנות את לוח הזמנים טיפה למטה אל האפשרות "כאשר סרק", לבחור את כמות הזמן שאתה רוצה המחשב יהיה פעיל לפני שעבר לכרטיסיה הבאה.

לבסוף untick את האפשרות הקובע להפסיק את הפעילות, אם זה כבר פועל סכום X של זמן, אבל לעשות לתקתק את האפשרות להפסיק את הפעילות, אם המכשיר אינו פעיל.

לוח זמנים

זהו זה עבור תוכנית ההתקנה של Windows המארח!

תקציר

בחלק זה הקמנו מכונה וירטואלית לפעול כעובד, כמו גם את הדרך שבה אנו קוראים ולבצע עיבוד תפקידנו סקריפטים (לעצמי סקריפט PHP). מכאן אנו מתבוננים כיצד להגדיר עותקים שלנו של Windows כדי להפעיל את המכונה הווירטואלית במצב בלי ראש, כאשר המחשב הופך להיות לא פעיל, ולשמור המדינה שלה כאשר המשתמש קו"ח הקישורים של המכונה. יש לקוות, בשלב זה, אתה רואה כמה זה פשוט להקים מערכת כזו הם גירוד לקבל כמה ניסויים הולך עצמך!

בפעם הבאה

ב חלק 4 נהיה מסתכל שימוש בכלים על מנת להבטיח כי אתה מפעיל את הגירסה העדכנית ביותר של נתונים ממקורות קוד כך התוצאות שמתקבלות הן תמיד עדכני עם העדכנית מידע עסקי לבין ההיגיון.

משרד גריד באמצעות סביבות וירטואליות - חלק 1

לפי ווטקין לויד סטיבן , 4 בדצמבר 2009 יום שישי 11:23

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים כל יום חשבתי לאחרונה על כל מכונות יושבים כל יום עושה כלום במשך כמה שעות. האם לא יהיה זה טוב אם היינו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני הולך להסתכל על היתרונות הפוטנציאליים של העסקת משרד הרשת באמצעות סביבות וירטואליות.

כמו PHP Developer אני הולך להשתמש בכלים כי אני משתמש בכל יום דהיינו, לינוקס, mySQL , PHP, VirtualBox חתרנות (SVN). עם זאת אני מקווה מדריך זה יהיה להסתגל שפות וטכנולוגיות אחרות באותה מידה.

הפתרון שאני מספקים יהיה מבוסס באופן רופף מאוד על סוג של עיבוד היינו צריכים להשיג זאת זה לא יכול להיות נכון את המאמר במלואו כפי שאני אשנה דברים למען הפשטות, או לייצר תרחישי השימוש מעניינים יותר.

אלה סביבות וירטואליות יפעל על מכונות Windows מאז זה מה שרוב משרדי לרוץ. עיבוד כי מכונות למשרד לא אמור להפריע הצוות באמצעות המכונות האלה, צריך לא דורשים תחזוקה ליד המכונה, ולהיות בקלות לפריסה על מחשבים חדשים כפי שהם מתפרסמים. כמו כן, מכונות וירטואליות חדשות לא צריך לחייב כל תצורה נוספות כמו זו מקטינה מאוד את יכולת ההרחבה הקלות שבה את מערכת הרשת ניתן להארכה.

מדוע פרוס גריד Office?

ראשית ייתכן שאתה חושב, למה לא פשוט להשתמש במשאב ענן מחשוב כגון פלטפורמת EC2 של אמזון ? ובכן הסיבות יכול להיות מספר, למשל:

  • אתה לא להפקיד נתונים מסוימים בסביבת ענן מחשוב
  • אתה לא יכול לשים את הנתונים מסוימים לסביבת ענן מחשוב מטעמים משפטיים (כגון נתוני לעזוב את הארץ), פוטנציאל מסיבות משפטיות, כגון רשומות NHS.
  • אתה רוצה לשמור על יחידות עיבוד שלך קרוב לך שליטה מלאה על החומרה מדי
  • אתה לא צריך את הכספים לפרויקט כדי להפעיל מופעים ענן
  • למשרד שלך אין חיבור לאינטרנט ולפיכך שלה לא ניתן להשתמש משאב ענן
  • אתה לא אוהב גשם, עננים מציע גשם, ולכן אתה ממשיך גם משם

אני בטוח ברשימה יכול להמשיך, אבל אני חושב שזה מספיק לעת עתה.

היתרונות של רשת המחשוב של Office

ובכן, מאפשר לעשות קצת מתמטיקה (ו בסגנון הפיסיקה נכון מאפשר לבצע כמה הנחות גורפות). תאר לך עיבוד גדול שרת בשרני פועל 100 משרות ליום. במשרד שלך יש לך 50 מכונות, אשר אינן פעילות 16 שעות ביממה, כל המכונות האלה הוא 10% חזק כמו עיבוד בשרני שלך לנתק. (כל התוצאות כאן מעוגלים כדי להגדיל את ביצועי לזלזל).

אז, 1 מכונת * 10% * כוח 2 / 3 הזמן = 0.067 1 כלומר עיבוד שולחן העבודה בזמן המתנה יכול התהליך 6 משרות מלאות ליום.

אם אתה עכשיו בקנה מידה זה את זה לוקח 15 שולחנות עבודה סרק כדי התהליך כמו עבודות רבות ליום כשרת עיבוד העיקרית שלך עושה.

אז במשרד פנים שלנו של 50 מכונות יכולנו להגדיל את כוח העיבוד שלנו מהשרת 1 עד 4 שרתי עיבוד מלא, או שאנחנו יכולים להיות עיבוד 400 משרות ליום במקום 100.

שימו לב, עבור ההשקעה לא בחומרה חדשה החברה שלך גדל רק עיבוד אצווה שלה קיבולת 4 פעמים! פוטנציאל אתה הולך להגדיל את צריכת החשמל שלך, אבל מסביבות Office ביותר הייתי מכונות נותרים בדרך כלל על הלילה ממילא, כך שאתה יכול לראות את זה כיוזמה ירוק.

יתרונות נוספים גם אומר כי השקעה חדשה (או עדכון) שרתי עיבוד ניתן לעכב אם מכונות למשרד שלך מספיקים וכי כפי שאתה לשפר את הכוח של מכונות למשרד שלך לרשת המשרד שלך הופך להיות חזק יותר באופן אוטומטי.

טכנולוגיות

מה אתה צריך? (או יותר נכון מה שאני משתמש):

  • המתנה מכונות למשרד (במקרה שלי מחשב נייד של Windows XP הישן חילוף)
  • VirtualBox (או אחר תוכנת הלקוח וירטואליזציה)
  • מכונה וירטואלית עם PHP, mySQL running מפעיל לקצץ OS, אני מתקשר שלי צולע השרתים האלה:)
  • משרות לרוץ
  • שרת איוב (יכול להיות אחרת מכונה וירטואלית איפשהו)

טיפוסי משרות

סוגי עבודות כי זו המערכת מתוכננת לרוץ הוא כדלקמן:

  • המערכת מקבלת רשימה של נתונים שעליהם אנו צריכים להתאים ולחזור תוצאות
  • ההתאמה כוללת בדיקה / מחפשים כמה (סטטי למדי) מקורות נתונים
  • תוצאות ממקורות נתונים עשויה לדרוש אימות נוסף, מיזוג, בדיקת מקורות מידע נוספים בתגובה לתוצאות
  • הנתונים הוא חזר עם רשומות תואמות, תוקף מלא ומעובד
  • כל רשומה בתוך העבודה אינה תלויה בשאר

אז בעצם אנחנו מסתכלים פועל משרות הדורשות תערובת של חיפושי מסד וכמה גריסת מספר, תרחיש טיפוסי למדי בסביבה עסקית.

פתרונות גריד הם לא רק יתרון עבור עיבוד עבודות מסוג זה. בעיקרון, כל תהליך שבו ניתן לפצל יחידות עצמאיות ניתן להפעיל במקביל. ראה זה ויקיפדיה עבור דוגמאות ו מידע נוסף: גריד , אבל כמה דוגמאות מפורסמות הם SETI @ Home ו BIONC . ישנן מסגרות להפעלת רשתות מחשוב, ואלה גם שווה להסתכל לתוך.

מה נשיג?

בסוף המאמרים האלה אני מקווה להראות כי פריסת הרשת המשרד לא צריך להיות עצומה רב יקר או הזמן. אני הולך לדבר:

  • הגדרת מערכת בקרת עבודה, תצורת העבודה
  • יצירת מכונה וירטואלית מתאימה לעיבוד
  • כיצד ההתקנה של המערכת על מכונה חלונות
  • הבטחת אתה משתמש בקוד האחרונים נתונים
  • פריסה בהשוואות
  • במבט קדימה

אני אהיה בבניין (אישור בניתי, ולאחר מכן כתב את זה) יישום לדוגמה לבחון את המושגים במחשב המקומי באמצעות Windows XP ו מכונה וירטואלית "GridMachine 'שלי. שליטה תפקידי השרת יהיה מכונת הראשי שלי אשר פועל פדורה 11 .

זה בשום אופן לא התכוון להדגים מערכת חזקים עובד באופן מלא, שלו היתה יותר של הפגנה ודנו מראה כי אלו דברים ניתן להשיג רווח קצר סבירה של זמן ובעלות קטנה. אל תהסס לשלוח לי שום הערות, תיקונים או שיפורים ואני אעשה כמיטב יכולתי כדי לשמור את המאמר הזה עודכן כדי להתאים.

בפעם הבאה

ב חלק 2 אתחיל מלהסתכל העבודה מערכת השליטה, ולהביט לתוך כמה עבודות צריך להיות מוגדר על מנת להשיג הכמות הגדולה ביותר של תוך עיבוד להבטיח כי כל עבודה מעובד ללא יוצא מן הכלל.

משרד גריד באמצעות סביבות וירטואליות - חלק 2

לפי ווטקין לויד סטיבן , 4 בדצמבר 2009 יום שישי 11:23

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים כל יום חשבתי לאחרונה על כל מכונות יושבים כל יום עושה כלום במשך כמה שעות. האם לא יהיה זה טוב אם היינו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני הולך להסתכל על היתרונות הפוטנציאליים של העסקת משרד הרשת באמצעות סביבות וירטואליות.

ב חלק 1 נתתי סקירה כללית של מערכת וטכנולוגיות אני יהיה להשתמש גם דנו כמה מן הסיבות האפשריות למה אתה רוצה ליצור רשת Office.

עבודה ובקרה

אם אתה הולך להיות מפעיל משרות מכן אתה הולך צריך קצת דרך לנהל אותם. שליטה תפקידך במערכת (בשרת העבודה שלך) צריך להיות באמת חשב היטב לפני אפילו מנסה להפעיל רשת Office. אז ראשית, מה הן המשימות של מערכת בקרת עבודה:

  • מחלקים משרות לפי בקשה של העובדים
  • תגיד עובדים איזה סוג של משרות לרוץ
  • עקוב אחר משרות
  • להבטיח כי עבודות רק לרוץ פעם
  • לספק נתונים עבודה לעובדים, או לפחות לספר להם איפה להשיג אותו

המערכת גם צריכה להיות להרחבה, פתרון זה עובד כעת במקרה בודד ניתנת להארכה כדי להפעיל סוגים שונים של עבודות כמו העסק רואה את שווה בפתרון הרשת. לדוגמה, עבודות עשויים להרוויח עדיפויות, יותר מסוג אחד העבודה יכולה להתקיים (כלומר בסיסים קוד כמה), ובסופו של דבר ייתכן אפילו להריץ כמה מכונות העובד שונים כי הם אופטימיזציה עבור כל סוג של עבודה (אף כי אין להתרחק מן העובד "גנרי "הרעיון). תמיד מנסה לחשוב על העתיד, כאשר מערכות בפיתוח, חזון לטווח קצר יכול להוביל לתסכול ארוך טווח זמן הפיתוח גדל.

איוב Server

אנחנו הולכים צריך איפשהו לשלוט משרות שלנו, זה צריך להיות במערכת רק ברשת שלך, כי יש Locator משאב קבוע, להיות כתובת IP, שם המארח, כתובת האתר (באמצעות DNS פנימי), וכו 'זה בגלל העובדים צריך לדעת איפה לחפש עבודה, עובדים צריכים למצוא את השליטה עבודה במערכת (לא את מערכת בקרת עבודה למצוא את העובדים).

שרת העבודה עצמה אינה באמת יש משימה מסובכת (ממילא מערכת בסיסית), זה צריך לאחסן רשימה של מקומות עבודה, לחלק משרות, לקבל תוצאות, ולאחר מכן לאחסן אותם אחזור מאוחר יותר. כיצד חלקים אלה ('יד' ובים ", כגון) מוגדרים יכול להיות מאוד בסיסי. מאוחר יותר אנו יכולים להרחיב את המערכת לכלול ממשק הניהול להוסיף, לערוך, למחוק, להשעות את העבודות, אבל זה מעבר לתרגיל הזה.

אין שום סיבה שהיא, אז שרת העבודה שלך לא יכול להיות וירטואלי פועל בתוך שרת עיבוד העיקרית שלך בתנאי זה לא לטמיון משאבים רבים מדי ממנו. שרת העבודה אולם אין צורך בזמינות גבוהה, אם הוא יורד ביום שישי בערב, אתה הולך לאבד סוף שבוע שלם של עיבוד, פוטנציאל עולה לך כמה שבועות שווה של זמן עיבוד (לעומת שרת עיבוד העיקרית שלך לבד) . אולי אתה רוצה לשקול לשים שרת העבודה שלך על סביבה מאוזנת לטעון עבור זמינות גבוהה.

יסוד הגדרת

התצורה הבסיסית של שרת העבודה שלנו תכלול את מה שאני קורא את אחד השרתים צולע שלי (כי הוא nux לי, ySql מ ', P-HP). הקוד רץ על עובדים תיאה יהיה ממש להבין מה משרות זה יכול לרוץ על ידי אינטראקציה עם מסדי נתונים עם שליטה העבודה במערכת. מאוחר יותר נוכל ליצור שירות אינטרנט למעשה לחלק משרות במקום שיש לעובדים לעשות את העבודה הקשה עצמם, אך לעת עתה נמשיך באמצעות עקרון KISS (לשמור את זה פשוט, טיפש!).

אז, מאפשר ליצור שלושה mySQL שולחנות להתמודד עם עבודות. אלה יהיו `עבודות`, `jobRecords`, ו `jobResults`.

משרות השולחן כאן אני משתמש ב SQL באדי חלופה מעט גדולה phpMyAdmin רק בגלל שלה יותר קל להתקין על CentOS (לאחרים לראות: 10 חלופות נהדר phpMyAdmin )

טבלה זו כוללת 5 שדות פשוטה,

  • מק"ט: לזהות את העבודה
  • שם: יכול להיות הפניה ללקוח, או כל מספר מזהים אחרים
  • סטטוס: אתה צריך לדעת איפה העבודה היא בבית, למשל
    • 0: לא נכתבו
    • 1: הרים
    • 2: הושלם
  • started_by: מי התחיל לעשות את העבודה? זה אינו נדרש לחלוטין, אבל הוא נחמד שיש. הייתי מציע מעקב אחר העובדים באמצעות כתובת ה-IP שלהם ברשת
  • started_at: מתי העובד להתחיל את העבודה? על ידי מעקב אחר עבודות שלא הושלם בתוך סכום X של זמן אנחנו יודעים שאנחנו צריכים להרים את העבודה שוב ולהתחיל עיבוד על ידי עובד אחר. העובדים יכולים לעצור עיבוד / ללכת לפורום עבור כל מספר של סיבות, הפסקת חשמל, התרסקות, רשת אובדן, וכו '

זה קל איך זה יכול להיות שולחן המורחבת עם כמה שדות נוספים, כדי לאפשר מעקב אחר נתונים סטטיסטיים, עמודה הזמן לסיים כדי לראות כמה זמן עבודה לקח, מונה כדי לראות איך עובדים רבים הרימה את העבודה (כמובן זה צריך נוטים 1), עדיפות לעבודה, הרשימה יכולה להמשיך עוד ועוד. יותר תרחישים עבודה מורכבים יהיה אפשר לציין כמה זיכרון העובד היה צריך גישה (ולכן רק שימוש עובדים מתאימים), או אפילו איזה סוג של העובד יהיה צורך.

מאפשר להוסיף כמה משרות לדוגמה:

לדוגמה משרות

הטבלה הבאה שוב הוא די פשוט להבין, אלו רשומות העבודה שלנו. הם מקושרים השולחן משרות העיקרי של טור `jobs_id`. להפוך את השולחן הזה מאוד תלוי את הנתונים שאתה צריך לספק לעובדים שלך, מאפשר לבצע דוגמה פשוטה מאוד, שם יש לנו ארבעה עמודים:

  • להקליט את הזהות: הזהות של
  • שם: שם של אדם
  • כתובת: כתובת של אדם
  • jobs_id: ID עבודה כי שיא זה מקושר

הטבלה השלישי והאחרון מורכב השולחן תוצאות, יש לו הרבה באותו לפצות כפי שולחננו רשומות, ועם תוספת של כמה עמודות יכול להיות חלק של הטבלה הרשומות:

  • שולחן העבודה job_record_id: קישור אל התוצאה
  • התוצאה: הנתונים התוצאה

... וזה כל מה שאתה צריך עבור עבודה! (אם כי ברמה בסיסית מאוד) במקרה שלי אני הצביע על שולחן אחר שבו הנתונים שלי כדי התהליך נמצא, אבל זה יכול היה בקלות קובץ, פרמטרים כדי להפעיל קוד סימולציה, אתה שם את זה.

בחירת עבודה

כאמור, העובדים יעשו וניהול העבודה שלנו בשבילנו עכשיו, אז כל מה שאנחנו צריכים באמת לעשות זה למצוא עבודה, כי צריך לעבד ולקבל את המידע. איך היינו עושים את זה? ובכן לבחור בחירה תפקידנו קריטריונים לחפש משרות, ב SQL עשיתי את הפעולות הבאות:

  1. קח את כל עבודות שלא מסומנים כמו להשלים אבל מן העובד שלנו לאפס אותם (__ME__ תחליף עם מזהה, הקלה ביותר תהיה כתובת IP):
      UPDATE `עבודות` SET `מעמד` = 0 WHERE `מצב` ו `= 1 started_by` = __ME__; 
  2. באמצעות הבחירה תפקידנו קריטריונים, בחר עבודה ולספר את מערכת הבקרה כי עובד זה היא להתמודד עם זה:
      UPDATE `עבודות` SET `מעמד` = 1, `started_by` = __ME__, `started_at = NOW () WHERE` מעמד `= 0 או
     (`מצב = 1 ו` started_at> DATE_SUB (NOW (), מרווח X שעה)) ORDER BY `id` ASC; 

    על ידי גרירה משרות שלא חזרו תוצאות בסכום X זמן אנו מבטיחים כי כל העבודות הן להופיע במקרה של עובד מתרסק או הולך נפקד.

  3. הבא לתפוס את המשרות פרטים ואחריו את הרשומות עצמם:
      SELECT * FROM `עבודות` איפה `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

עם סיום העבודה אנו להוסיף שלנו התוצאה הרשומות ולסמן את העבודה כמו שלמה. זכור כמקום עבודה יכולים להשעות / לחדש בכל עת לאפשר חוסן חלק בתסריט שלך. זה יכול להיות שהמשימה משהה חצי דרך דרך לעדכן את מערכת בקרת עבודה, כך בודקים את מספר הרשומות בעבודה ואת מספר התוצאות הציל חזרה למערכת הבקרה העבודה תהיה צעד נבון.

בנוסף, בזמן הזה ממחיש עד כמה משרות ניתן לבחור והצליח מ-SQL שאילתה מסגרת אתה צריך להיות ממש לפשט פקד את העבודה שלך, כך שאם תחליט לעבור באמצעות שירות אינטרנט, מבוסס מערכת הקבצים, XML , או אחרת מספר מערכות זה לא ישפיע על קוד שמעליו.

איוב תצורת

ההיבט הבא הוא לשקול גודל העבודה ואת התצורה. על ידי משחק עם הגדרות התפקיד שאנחנו יכולים על איזון מעולה בין מהירות, שכפול התהליך, ואמינות. קח כמה ofa תרחישים:

  1. משרות לקחת 1 כל יום לרוץ: משמעות הדבר היא כי העובדים שלך צריך 15 ימים כדי לעבד כל העבודה (זוכרים 10% של הכוח עבור 2/3rds הזמן). זה בבירור לא תצורה חכם, גודל התפקיד שלך הוא גדול מדי! זה ייקח לפחות להכפיל את הזמן כדי להשיג עבודה מעובד לעובד הראשונית צריכה ללכת נפקד (הזמן להרים שזה לא חזר תוצאה בתוספת זמן עיבוד מחדש). ב אידיאל היית אחד לפחות משרה מלאה כחכח קלות עד סוף תקופת המתנה ארוכה מדי, ככה אתה שומר משרות תקתוק שוב על המקרה הגרוע ביותר בעבודה היה לוקח יומיים כדי התהליך הראשון צריך ללכת חסרים.
  2. משרות לקחת 1 דקה לרוץ: משמעות הדבר היא כי העובדים שלך לקחת בערך 15 דקות כדי להפעיל את כל העבודה. בעוד זה עלול בתחילה נראה אידיאלי, לך לקבל עיבוד עבודה נוספת בזמן ארוחת צהריים, הפסקות קפה, פגישות, וכו תרחיש זה מניח עומס על אזורים אחרים של המערכת מציג בעיות משלה. לדוגמה, ראשית ההגדרה שלך / זמן יחס עיבוד הוא הולך ישר, ולכן מאבדים יעילות המערכת. הרשת שלך הולכים להיות כל הזמן הזרמת מידע עבודה לעובדים שונים צוות מתסכל שהם דונג יום שלהם לעבודת יום. אתה גם הולך לשים להתאמץ יותר על השרת שלך עבודה עיבוד כפי שהוא צריך לחלק המון חתיכות קטנות של עובדים על בסיס קבוע. לבסוף, במצב זה אם שרת העבודה שלך יורד שאתה הולך ליצור להיכנס שוב ענק של עבודה הושלמו ואילו משרות גדול יכול של המשך עיבוד מודע מבורך כי שרת העבודה היה נתקל בקשיים.

במציאות לא יהיה בתצורת אחד אידיאלי עבור תוכנית ההתקנה של הרשת שלך, הרבה תלוי המשאבים הזמינים, סוגי העבודה, תפנית במשרה דרישות, יכולת הרשת, וכן הלאה. אולם הנחיות כמה יהיה:

  • משרות גודל כך כל עובד יכול לעבור לפחות 3-4 משרות תקופה של 15 שעות (הזמן הארוך סביר להניח תקופת המתנה)
  • לשחק עם גודל המשימה, כך זמן ההתקנה הופך משמעותי למדי לעומת זמן עיבוד (בהתחשב בשלב לעיל).
  • אם העבודה אינה מוחלטת להכפיל את כמות הזמן (ואולי פחות) אתה מצפה להשלים אותו להניח כי נפקד נעלם שלה מתחילים לעבד אותו עם עובדת אחרת. זה אומר שאתה יכול לחכות עד שלוש פעמים את אורך נורמלי של עבודה עבור אותו כדי להשלים (ואולי יותר, אם את העבודה לאחר מכן נכשל). אולי אתה רוצה להפחית את הזמן הזה, אבל להיזהר שלא לצמצם אותו יותר מדי כמו שאתה יכול להתחיל לשכפל משימות עיבוד על בסיס קבוע.
  • ג 'ובס צריך להיות עצמאית של דרישות מחוץ ככל האפשר. שרת העבודה, למשל, צריך רק לפנות אל ההתחלה והסיום של כל עבודה.
  • אין להרוות את הרשת, זה יהיה שתי השפעות שליליות, צוות היום שלך תמצא באמצעות הרשת מתסכל ובעיות ניתן מנוסה עם קשרים העיתוי מתוך בעיה כי רק יחמיר כפי שאתה בהיקף הרשת שלך.
  • משרות ודא יכול לרוץ על העובדים שלך. אם משרות הופכים מדי זיכרון עבודות שטח אינטנסיבית או דיסק אינטנסיבית יתחיל להפיל והדבר היחיד תבחין היא ירידה במספר המשרות מעובד בלי שום סיבה אמיתית מדוע.

תוצאות הגשת עבודה

When submitting the results of a job it is important to check that results have not been submitted by another worker, especially if the current worker has been dormant for some time.

When results are submitted ensure that the number of results matches the number of records within the job.

As stated previously, and can not be over emphasised, build fault tolerance into job retrieval and results submission. 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.

בפעם הבאה

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

משרד גריד באמצעות סביבות וירטואליות - חלק 5

לפי ווטקין לויד סטיבן , 4 בדצמבר 2009 יום שישי 11:03

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים כל יום חשבתי לאחרונה על כל מכונות יושבים כל יום עושה כלום במשך כמה שעות. 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.

ב חלק 4 הסתכלנו באמצעות כלים כדי להבטיח שאנחנו מפעילים את הגירסה העדכנית של נתונים ממקורות קוד כך התוצאות שמתקבלות הן תמיד עדכני עם העדכנית מידע עסקי לבין ההיגיון.

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,

  • כמה שיאים תוכל תהליך כרגע? Per Day? Per Hour?
  • How long does it typically take to turn around a job?
  • How much more capacity do you have?

יש גם שאלות נוספות:

  • 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?
  • האם שלך (או אתה יכול להיות מומר בעבודות) לעבוד בסגנון הזה של ריצה?

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. אולי להגדיר שרת עיבוד שלך כדי להפעיל מכונה וירטואלית, אחרי כל שרת עיבוד שלך תהיה רק ​​עוד עובד (רק אחד חזק מאוד יחסית). לאפשר את תהליך חדש להתיישב.

פריסה

My suggestion would be to pop into the office one weekend perform all the installations and setup. האם זה רק לפני שבועיים חופשה של ולהשאיר מסכן אחרים כדי להתמודד עם התוצאות ... ואולי לא ...

Deployment for a system like this needs to be slow. למרות היותה פשוטה יחסית להקים מערכת זו תשפיע על התשתיות למשרד כולו שלך (גם זה דיגיטלי). ראשית, לרדד על כמה מכונות בו זמנית, לנטר את תעבורת הרשת, איך את המארחים העובד לבצע על בסיס יום יומי. 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. בדוק זה כך, או שאתה לפחות האצטדיון הזה. If not, investigate what is going on before moving on. חזור על המעגל הזה עד שאתה בשמחה יש כל מכונות למשרד לרוץ בלי להרוג את ביצועי מכונת הפרט או שחיקה הרשת על שמריה.

בכל עת להמשיך בהשוואות, גם לאחר פריסת כל מבוצעים. בדוק כמה עדכונים הקוד החדש להשפיע המהירות של המערכת שלך, לבדוק את כל העובדים מדווחים על עבודות עיבוד. 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? הם יוצאים כל שם פועל, התחדשות, ומנסה כמיטב יכולתם כדי לעבד את הנתונים כמו חרקים רעבים. 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. סיבה חשובה מדוע אנחנו תמיד מנסים לעדכן את התסריט לעיבוד האחרונה לפני להפעיל את כל!

Demonstration System

כדי לכתוב זו קבוצה של מאמרים קצרים יצרתי רשת קטנה מאוד כדי להדגים את טכנולוגיות ומתודולוגיות. קראתי הרבה מאמרים, מדריכים, והשתמשו בכלים שונים לצורך ההתקנה ולעקוב אחר המתרחש. 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.

המכונה הווירטואלית שהוקמה עם PHP, חתרנות, ו-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):

  • קרא בשדה שם
  • 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)
  • חזר על תהליך זה 1000 פעמים

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.

השארת המחשב הנייד כדי המתנה הביא עובד מתחיל תהליך משרות מהשרת שליטה בעבודה. 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. אני הראו כי מערכת כזו עובד בקנה מידה (מאוד) קטן עם עוד כמה ניסויים יכול להיות scaled עד לנצל את המשאבים של מכונות של המשרד. 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

הצעד הברור הבא יהיה בעצם לקבל דוגמה העולם האמיתי ולהתחיל לפרוס מערכת כגון זו בסביבת המשרד ולראות מה קורה. 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. הטכנולוגיות היו הפגינו בעצם ולהראות לבצע עבודה כצפוי. אני מקווה שיש לי להראות כי עם עבודה לא רב עם ההתקנה פשוטה מאוד אתה יכול לפרוס רשת Office מחשוב המערכת כי הוא חזק, זול, וניתן להרחבה בכל באותו הזמן.

לאחר מערכת היא ולהפעלתו כמעט אין סוף לכמות של התאמה אישית שיפורים שאתה יכול לעשות. 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.

אני מקווה שאתה נהנה לקרוא את סדרת המאמרים שלו נתן לכם חומר למחשבה על הפעלת המערכת לרשת המשרד. הפתרון המוצג כאן, לא בהכרח יעבוד בכל המצבים, אך צריך להיות בעל יכולת הסתגלות כדי לאפשר לכם לקבל את הנתונים עיבוד נעשה באמצעות פתרון משלך.

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: יסודות - סקירה

לפי ווטקין לויד סטיבן , 28 בנובמבר 2009 יום שבת 22:42

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.

רקע

אני כבר PHP המפתחים סביב 5-6 שנים, ויש להם התחיל לעבוד עם Zend Framework על רכיב בסיס בחודשים האחרונים 6. 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. מנהיג כמובן מדבר המשתתפים גם על פתרון ה-VoIP משולבת, או שאתה יכול לחייג באמצעות אחד לחייג ברחבי העולם רבים מספרים.

During the course the material consists of a brief overview of the Framework and the MVC pattern before heading into a sample guestbook application. הדיון הפגינו bootstrapping, Zend_Application, טבלאות DB, גישה למסדי נתונים, טפסים, סינון, ACL, אימות, וכו 'וכו' בעיקרון מכסה את כל הנושאים היית דורשים לקבל באתר בסיסיים עד הזמן להפעיל את כל לתת לך את הכלים ללכת ולקבל מתקדמים יותר במסגרת (אם כי זה היה סכום כדי "לראות את האתר" רוב הזמן).

זמן ניתנת הקוד עד כמה דוגמאות, ועל מנת לפתח את "האורחים" יישום "ויקי" פשוטה. באופן אישי אני חש כי מתן קוד או כל יישום ולאחר מכן לשאול אותנו לפתח את מה שהיה ביסודו עותק לצד לא ממש מספקים חווית למידה טובה. 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.

ההרצאה האחרונה כללה עובדים על יישום wiki בעזרת / הדרכה ממדריך. 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 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.

בסך הכל מרגיש

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? :) ). אחרון חביב אתה גם מקבל תעודת נחמד Zend לומר לך למד את הקורס (אם כי על ידי דוא"ל).

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 . המדריכה בקורס היה די ברור על כך עם העצה נוספות עבור הסמכת אתה באמת צריך להיות באמצעות מסגרת ביום על בסיס יום ולהרגיש נוח מאוד בטוחים השימוש שלה מתודולוגיות.

תקציר

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

  • חדש על Zend Framework: קורס זה עושה בדיוק מה שאתה מצפה, זה נותן לך מבוא נחמד במסגרת ו הארקה טובה על היסודות שמהם אתה יכול לבנות. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • השתמשו Framework Zend: אמנם זה היה נחמד כדי לחזק את חלק בסיסי מאוד הרגשתי את המאמץ, הזמן, וקרנות לקחת כמובן יכול של בוזבז טוב יותר במקום אחר. 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 visitors online now
2 guests, 1 bots, 0 members
מקס מבקרים היום: 16 בשעה 12:39 בבוקר UTC
החודש: 26 ב 2011/07/05 12:35 UTC
השנה: 130 ב 28-03-2011 22:40 UTC
כל הזמן: 130 ב 28-03-2011 10:40 UTC