אתר סטטי - חוזרים אחורה לצורך קפיצה מטאורית קדימה

06 אוק׳ 2020 | 5 דק' קריאה

אתר סטטי. קרדיט: Domenico Loiaאתר סטטי. קרדיט: Domenico Loia

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

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

מטיילים אחורה בזמן

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

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

התעסקות עם שרתים

ההתנהלות עד היום

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

מה השתנה היום

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

עבודה עם אתרים סטטיים - Static Websites

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

למה כן

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

אבטחת מידע

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

עלויות

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

מהירות

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

אתגר

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

למה לא

ריבוי מערכות

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

שינוי חשיבה

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

אהבתי, מאיפה מתחילים?

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

מה אני מנסה להגיד פה בעצם? אם הייתי מרים אפליקצית one-page application מורכבת, שעושה פעולות ומניפולציות על דאטה, אז כנראה הייתי משתמש במערכת כמו firebase, שתספק לי דטה בייס על סטרואידים, עם אותנטיקציה וכו'

רשימה קצרה של מערכות ליצירת בלוגים:

בעקבות הצורך, גם הפריימוורקים הגדולים כבר תומכים היום באפשרות לייצר אתר סטטי out-of-the-box, ללא שימוש בפלאגינים חיצוניים, לדוגמה Next.js.

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

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


אתר סטטי, static website, פיתוח תוכנה