מהו הערימה ההנדסית? + דוגמה

מהו הערימה ההנדסית? + דוגמה
Anonim

התשובה הקצרה היא כי אנו משתמשים Flask עבור Python על backend, עמוד השדרה עבור Javascript על החזית, ולאחסן את הנתונים שלנו MongoDB, Redis, ו ElasticSearch. אנחנו מתארחים ב- AWS.

מה זה ערימה?

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

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

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

שלנו (כמעט) מחסנית מלאה

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

  • עמוד השדרה כדי לארגן את Javascript שלנו
  • מצפן לעשות שימוש חוזר ולארגן את ה- CSS שלנו
  • Flask, מסגרת Python לשרת את JSON + HTML API ולעבד דפי HTML מלאים
  • pyres עבור התורים המשימה שלנו (סביר סלרי בקרוב)
  • MongoDB לאחסון הנתונים שלנו (אולי Postgres בקרוב)
  • Redis כדי לשמור מטמון דברים כמו הזנות ברחבי האתר, מגמות שאלות, וכל מיני סטטיסטיקות שימוש
  • חיפוש אלסטי לחיפוש
  • Nginx כדי לשרת את האתר
  • צרו כדי לצמצם, לדחוס ולעדכן את ה- JavaScript ו- CSS שלנו
  • Capistrano לפרוס את האפליקציה שלנו ולבצע מספר משימות מועילות אחרות
  • בובות כדי להגדיר את התוכנה שאנחנו צריכים על שרתים חדשים

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

  • AWS aka אמזון שירותי אינטרנט לארח את השרתים שלנו, נכסים סטטיים, כמו CDN
  • Cloudflare עבור DNS, אחסון במטמון ורמת אבטחה מסוימת
  • Google Analytics ו Mixpanel לניתוח
  • Papertrail לרישום מרכזי
  • Sentry למעקב אחר שגיאות בצד הלקוח
  • DataDog לניטור השרתים והשירותים שלנו
  • חדש Relic לניטור ביצועי App Flask
  • Customer.io לשלוח הודעות דוא"ל על סמך מה שאתה עושה או לא לעשות באפליקציה
  • Github כדי שיתוף פעולה קוד אירוח

וכנראה רבים אחרים.

זה לוקח הרבה חתיכות לבנות ולהפעיל אתר אינטרנט, אבל בעזרת כלים בנויים היטב, זה לא כל כך קשה!