מדי פעם יוצא לי לכתוב בבלוג על מה שאני והצוות שלי עושים ב – Zend. אני לא נוהג לעשות את זה לעיתים קרובות מדי, כי אני משתדל שהבלוג ישאר בעל אופי של בלוג פרטי ולא ערוץ של Zend (בשביל זה יש את הבלוג של Zend) אבל לפעמים בא לי להשוויץ קצת, כמו במקרה של הגרסה האחרונה של Zend Server on AWS, שזמינה החל מהשבוע שעבר ב – AWS MarketPlace.
ההכרזה על המוצר החדש זכתה לסיקור מאד רחב בתקשורת הטכנולוגית, כולל כתבה ב – VentureBeat, פוסט מפרגן של Jeff Bar בבלוג הרשמי של AWS ובלוג טכנולוגי של דימה זברסקי, אחד מאנשי הצוות שלי, בו מוזכרים כל החידושים של הגרסה האחרונה. אני הייתי רוצה להתרכז במה שעשינו על מנת להפוך את Zend Server on AWS לסביבת ה – PHP טובה ביותר שתוכלו לקבל, במחיר שכל אחד יכול להרשות לעצמו.
Zend Server and Z-Ray
אם אתה כותבים קוד PHP ועוד לא ראיתם את Z-Ray, אתם מבזבזים זמן בלקרוא את הפוסט הזה. לכו ותנסו את הפלא הזה. לזנד יש דמו לאפליקציות PHP דוגמת WordPress, Drupal ו – Magento ול – Frameworks דוגמת ZendFramework ו – Laravel שלא דורש שרת או התקנה. רק תלחצו על הלינקים. אני בטוח שאחרי 2 דקות עם הדמו תבינו מה אתם מפספסים בתהליך הפיתוח שלכם כיום.
Z-Ray מאפשר לראות מה קורה בתוך קוד ה – PHP שלכם תוך כדי הרצת הקוד. תוספת קטנה בתחתית העמוד המבוקש מציגה אינפורמציה מלאה על הקוד שרץ, כמה זמן לקחה הריצה, כמה שמאבים היו דרושים, פירוט של כל השגיאות, תיעוד מלא של כל DB Query שרץ ו – Plugins יחודדים לאפליקציות פופולריות, הנותנים שכבה נוספת של מידע יקר ערך למפתח. Z-Ray מופעל כברירת מחדל במצב Development של המערכת אבל אפשר להדליק אותו בצורה מאובטחת גם ב – Production, בשילוב עם Security Token, המאפשר רק למי שיש לו את ה – Token, לראות את האינפורמציה שמגיעה מ Z-Ray.
אם תשתמשו ב – Zend Server on AWS דרך ה – Marketplace יש לנו בונוס קטן עבורכם – Plugin מיוחד שפותח עבור AWS, המאפשר לראות בזמן אמת נתונים על ה – Instance שלכם, כולל כתובות, סוג ה – Instance, התקנים מחוברים ועוד.
אוטומיציה
מאמץ גדול הושקע בגרסה זו בתהליכי אוטומציה במהלך פריסת המכונות, על מנת לאפשר לאנשי DevOps לחבר את תהליך בניית המכונות ב – AWS לתהליכים אחרים בארגון כגון Continuous Integration או Continuous Deployment.
על ידי שימוש ב – User Data של AWS, המשתמש יכול להוסיף הוראות בפורמט JSON, לביצוע פעולות שונות על השרת החדש לאחר שהוא עולה. ההוראות יכולות להיות פשוטות מאד, החל מקביעת סיסמת ה – Admin של Zend Server ועד פריסה מלאה של קוד מ – git או מקורות אחרים, הרצת סקריפטים לאחר עליה וצירוף השרת ל – Cluster קיים במקרה של Scaling.
האוטמציה מאפשרת לבנות מערכות מורכבות מאד המבוססות על ה – Image של Zend Server on AWS כמעט ללא מגבלות. לדוגמא, היכולות להריץ כל Script אחרי עליית המכונה יכולה לשמש לבדיקות של המכונה לפני כניסה ל – Production, הגדרת משתמשים, הפעלת כלי אוטומציה וניהול דוגמת Puppet או Chef או התקנת תוכנות צד שלישי הדרושות להרצת האפליקציה.
כל הפרטים המלאים בבלוג של Zend.
שילוב עם כלים אחרים של AWS
אחד היתרונות הגדולים של AWS הוא מגוון הכלים שיש בידי המשתמש. המגוון הזה מאפשר לבנות מערכות מורכבות מאד בצורה יחסית פשוטה, עם יכולת לגדול בהתאם לדרישות המערכת. Zend Server on AWS מאפשר גישה מאד נוחה לכלים אלו ואף משתמש בחלק מהם על מנת לתת למשתמשים יכולות חדשות.
במסגרת כלי ה – Deployment, ניתן כיום לקחת קוד ששמור על S3 ולפרוס אותו על השרת בצורה אוטומטית. שימוש ב – User Data מאפשר לקבוע מראש את כל הגדרות ה – Security הדרושות על מנת להתחבר ל – S3 bucket ולהפוך את התהליך לאוטומטי לחלוטין.
בנוסף, וזה לא משהו חדש אבל ממש שימושי, קיים כלי באתר של Zend המאפשר לבנות CloudFormation Templates. מי שלא מכיר את CloudFormation, זהו כלי של AWS לבניית קונפיגורציות של שרתים (בדרך כלל יותר מאחד) ושרותים אחרים (כגון RDS, ELB וכו׳), סוג של טופולוגיית רשת או Blueprint, המאפשר בניה של סביבות מורכבות בלחיצת כפתור. הכלי הפשוט הזה מאפשר לבנות מערכת Production לאפליקציות PHP עם יכולות Scaling & High Availability בפחות מחמש דקות של עבודה. ה- Template נבנה עם כל מה שצריך על מנת להריץ את ה – Cluster, כולל הגדרות Security, בסיסי נתונים, Auto Scaling Group & Rules, ELB ועוד. אם יצא לכם לבנות משהו דומה לדיאגרמה הזאת על AWS, אני בטוח שתעריכו את הפשטות של פתרון זה.
אתם יותר ממוזמנים לנסות את Zend Server on AWS. המוצר זמין ל – 30 יום נסיון ללא תשלום (ואם אתם על Free Tier של AWS לא תשלמו על כלום אם אתם רצים על t2.micro). גם לאחר 30 יום המחיר לשעת שימוש בגרסת הפיתוח הוא רק ¢3 לשעה.
רוב השיפורים בגרסה האחרונה הם תוצאה ישירה של בקשות של משתמשים. אם יש לכם שאלות, בעיות או סתם בא לכם לתת פידבק אני יותר מאשמח לשמוע.