כיצד לבנות יישומי אינטרנט ניתנים להרחבה

כיצד לבנות יישומי אינטרנט ניתנים להרחבה


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

דוגמה לאתר פופולרי שהוגדל בהצלחה.

כשמסתכלים על הצמיחה של פייסבוק, זה יהיה מדהים לציין איך היא גדלה עם השנים. גם אם אינך משתמש פייסבוק רגיל, יהיה קשה להתעלם מההשפעה שיש לערוץ המדיה החברתית על ארגונים ועסקים. על פי נתון, ישנם יותר מ -1.94 מיליארד משתמשי פייסבוק פעילים עבור מרץ 2017 , שרושמים עלייה של למעלה מ-18% מדי שנה. באשר למשתמשים פעילים בנייד יומיים, המספרים מדהימים על 1.15 מיליארד משתמשים.

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

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

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

להלן כמה אפשרויות פשוטות לשינוי קנה מידה של יישומי האינטרנט שלך:

1. הגדלה

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

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

2. שמירה במטמון

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

3. סוג המחיצות שיש לבצע

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

דברים שכדאי לזכור בעת שינוי קנה מידה של יישומים, שים לב לנקודות אלו בזמן המשימה

1. אין פשרות בזמן פעילות האתר

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

2. אפשרות שליפה

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

3. ביצועים

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

4. יכולת ניהול

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

סיכום

קיימת תפיסה שגויה לפיה PHP אינו ניתן להרחבה. כיצד אם כן יפעלו אתרי PHP אחרים בקנה מידה גבוה? מדרגיות היא יותר על ארכיטקטורת יישומים, ולא רק על שפה. הזמן הנדרש לפיתוח יישומי אינטרנט ניתנים להרחבה תלוי במורכבות האפליקציה ובמסגרת המשמשת. ישנן שתי שכבות תכנות שונות באפליקציה ניתנת להרחבה: Front End ו- Back end . כפי שהשם מרמז, Front End הוא משהו שהמשתמש מקיים איתו אינטראקציה והממשק יכול להיות כל דבר מאנדרואיד ועד iOS. הקצה האחורי מורכב מכ-80% מסך העבודה, אך המשתמש אינו מודע לחלק זה באפליקציית האינטרנט שלו. פונקציונליות משחקת תפקיד מרכזי בהרחבה. משתמש עשוי לרצות לטעון תמונות, ולכן יש לשקול מדרגיות אחסון מכיוון שהוא עשוי להצטרך לאחזר אותה בכל עת. להורדות ובקשות של תמונות טובות יותר, זמן אחזור נמוך חשוב מאוד.

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

Flickr.com/ klarititemplateshop.com/ Blogtrepreneur


על המחבר: Deepak הוא ראש PHPBabu ועובד גם בחברת האם YUHIRO Technologies Private Limited כמנהל משרד.

כתיבת תגובה