לפני שמתחילים לפתח עבור סביבת הענן, צריך להכין את סביבת העבודה, כך שתכיל את כל הכלים הרלוונטים לעבודה יומיומית. בפוסט זה נסקור את הכלים הדרושים, כיצד להתקינם ועל איזו מכונה להתקינם.
היסטוריה
עד לפני מספר חודשים, AWS, סיפקה סביבת פיתוח מוכנה מקצה לקצה בענן, לסביבת הפיתוח הזאת קראו Cloud9, והיא הכילה מכונה וירטואלית, מחשב בענן, עורך טקסט יחד עם הכלים הרלוונטים שדרושים לפיתוח. לצערי הרב, AWS קיבלו החלטה להסיר את Cloud9 ולא ניתן להשתמש בו יותר. הדבר מוסיף מורכבות קלה למפתחים בתחילת הדרך, מכיוון שכעת הם צריכים להכין מכונה לפני תחילת העבודה ולא מקבלים משהו מוכן.
לפני שמכינים את הכלים, צריך לקבל החלטה היכן מריצים את הכלים, כלומר על איזו מכונה אתם תכתבו קוד ותריצו את כלי הפיתוח השונים.
בחירת מכונה
ישנם שני סוגים מרכזיים של מכונות שעליהם אתם תוכלו לעבוד:
המכונה האישית שלכם, הלפטופ או הדסקטופ שלכם, היא יכולה להריץ ווינדוס, לינוקס או מקבוק.
מכונה וירטואלית שרצה בענן, לדוגמא Github Codepsaces או Gitpod.
מכונה אישית | מכונה וירטואלית | |
---|---|---|
עלות כספית | ללא עלות | תלוי בשירות, מחינם עד מספר דולרים בחודש |
חוזק מכונה | מה שרכשתם, עלול להיות איטי. | אפשרות לעבור בין מכונות בגדלים שונים, עם יותר שטח אכסון, מעבד חזק יותר וכדומה. |
חיבור אינטרנט | ניתן לפתח ללא חיבור אינטרנט יציב | נדרש חיבור אינטרנט איכותי |
מערכת הפעלה | מה שרכשתם | לרוב, זו תהייה מכונת מבוססת לינוקס, מערכת ההפעלה המועדפת לפיתוח בענן. |
אחידות | לכל מפתח יש את המכונה שלו, עם המוזרויות שלה | המכונות, מערכת ההפעלה כולן נראות דומה, קל להתמצא |
בפוסט הזה, אני אדגים את יצירת סביבת העבודה על מכונה וירטואלית שרצה בגיטהאב (Gitub). היתרון המרכזי שאני רואה בבחירה הזאת הוא שכך ניתן ליישר קו עם סביבת העבודה, לכולם ישנה סביבה זהה, עם מערכת הפעלה זהה, לי ככותב הבלוג, יותר קל לכתוב מה צריך לעשות, כי לכולם המכונה נראית אותו הדבר. ישנם יתרונות נוספים:
כדאי וצריך ויהיה חשבון גיטהאב, לשמור את הקוד שאתם כותבים, לקרוא קוד של אחרים, ולהעיר עליו, וברגע שיש לכם חשבון גיטהאב, למה לא להשתמש בו כדי לייצר מכונה וירטואלית.
המכונה הוירטואלית הבסיסית היא חינם אין כסף
היא רצה על גבי מערכת ההפעלה לינוקס, הבחירה הנכונה לטעמי בפיתוח לענן.
אז לפני שמתחילים, צרו לכם חשבון חינמי בגיטהאב ודרך אגב, יש להם תהליך רישום מגניב ביותר.
לאחר שקיבלנו החלטה לגבי בחירת המכונה, אנחנו צריכים לקבל החלטה לגבי העורך.
עורך הקוד
עורך קוד, היא האפליקציה שבה אתם כותבים את הקוד, ולרוב גם מדבגים אותו, פעמים רבות עורך הקוד מגיע עם כלים נוספים כגון refactoring שמאפשר לשנות קוד בצורה קלה, כתיבת טסטים קלה ובימיינו אנו, גם התממשקות לצ׳אט גיפיטי ודומיו. ישנם שלושה סוגים של עורכים:
Visual Studio Code - עורך חינמי, שבבעלות מיקרוסופט, מכיל תוספות (Extensions) שמאפשרות לו לעשות כמעט הכל. כמו כן, המכונה הוירטואלית של גיטהאב מגיעה מותקנת עם העורך הזה ומייחצנת אותו כעורך שרץ מעל הדפדפן.
עורכי Jetbrains - עורך קוד מעולה, בלשון המעטה. בעל גירסה חינמית ובתשלום. החסרון המרכזי עבורנו, הוא שהוא לא יודע לעבוד על מכונות וירטואליות בקלות, אין עדין פתרון טוב, שיודע לייחצן אותו מעל הדפדפן. במידה ותעבדו איתו, העבודה איתו תהייה מקומית על המחשב.
כל השאר
כפי שהבנתם בין השורות, אנחנו נבחר ב-Visual Studio Code, הידוע בכינויו VS Code וכאן נקרא לו פשוט העורך. יאללה, בואו נתחיל עם יצירת הסביבה.
קודספייס (Codespaces)
קודספייס הוא הפתרון של גיטהאב לסביבה וירטואלית, כמה מילים לגבי העלויות לפני שנייצר לנו את הסביבה. מקבלים בחינם כל חודש 15 ג׳גהבייט של מקום אחסון ו-120 שעות עבודה על המעבד. על מנת לעבוד בסביבת עבודה סבירה, אנו נבחר מעבד עם שני קורים (cores), כך שיש לנו 60 שעות עבודה חינמיות בחודש. למזלנו, גיטהאב בנתה מגנון אוטומטי לכיבוי המכונה במידה ולא משתמשים בה במשך 30 דקות, לא בדקתי עד כמה המנגנון הזה לא מזייף, נניח שמריצים משהו ברקע, ולכן אני ממליץ לכבות את המכונה בסיום יום העבודה.
יצירה
גשו לכאן, נבחר טמפלייט ריק (blank) ולחצו Use this template.
ברגע הלחיצה, ייפתח לכם טאב נוסף בדפדפן עם העורך. נעשה מעבר זריז על המבנה שלו, ככל שיחלוף הזמן, נלמד יותר יותר תכסיסים כיצד לנצל את היכולות שלו.
לשוניות העורך - כל הקבצים שתערכו ייפתחו בלשוניות דומות לאלו.
רשימת הקבצים - כל הקבצים שנמצאים בספריה שבהם אתם עובדים נמצאים שם.
לשוניות כלי עבודה - כלי עבודה שונים יפתחו לשוניות באזור הזה. הלשונית המרכזית שתעבדו בה היא הטרמינל.
הטרמינל - כאן נכתוב (די הרבה) פקודות CLI.
אם תחזרו רגע לחלונית בדפדפן שבה לחצתם על יצירת המכונה ותרפרשו, אתם תראו בתחתית את המכונה שיצרתם עם פרטים עליה.
שם המכונה - שם רנדומלי לחלוטין, אתם יכולים לשנות את שמו על ידי לחיצה על שלושת הנקודות בצד ימין ובחירה ב-Rename.
סוג המכונה - כמה זכרון, יכולות מעבד, מקום אכסון בשימוש, אתם יכולים לשנות את הערכים הללו, שוב על ידי לחיצה על שלושת הנקודות בצד ובחירה ב-Change machine type. שימו לב ששינוי כאן משמעותו שזמן החינמיות שלכם יתקצר… מכונה חזקה יותר—> פחות זמן חינמיות.
כיבוי המכונה
באותו תפריט של שלושת הנקודות, ישנה גם אופציה לכבות את המכונה בסיום העבודה עליה. האפשרות נקראית Stop codespace. לחצו עליה וכבו את המכונה.
גשו שוב ללשונית של העורך ותשימו לב לפס כחול דק הפינה השמאלית העליונה שמתחיל לרצד. משמעות הפס הוא שהעורך איבד קשר עם ״הבית״ ואין באפשרותכם להמשיך לעבוד עליו. סגרו את הלשונית
הפעילו שוב את המכונה ע״י לחיצה על שמה.
אנחנו מוכנים 🔥.
השלב הבא הוא התקנת כלי העבודה שלנו.
כלי העבודה
אני מציג בחלק זה את הכלים השונים ואת דרך התקנתם באמצעות vscode וקודספייס, כמובן שאתם מוזמנים גם להתקינם על המחשב האישי שלכם, כל מחשב מבוסס לינוקס או מקבוק יעבוד עם ההוראות הללו. מחשבי ווינדוס הם קצת שונים. היכן שניתן הוספתי שורת הסבר לגבי ווינדוס, לטוב ולרע היכרותי עם ווינדוס כמפתח, היא מוגבלת, ולכן קחו בעירבון מוגבל את כל מה שאני רושם לגבי ווינדוס.
NodeJS
אנחנו נכתוב את הקוד באמצעות נוד (NodeJS) שזו שפת תכנות פשוטה ונוחה ורבים וטובים מפתחים בה ובמילים אחרות עוד לא פטרו אף אחד בכך שהשתמש בנוד.
לחצו על הטאב של הטרמינל ורשמו שם
1node --version
הדבר ידפיס לכם את גירסת הנוד הנוכחית שמותקנת אצלכם, אצלי במקרה זה מדפיס v20.17.0
, אצלכם יכולה להיות רשומה גירסה שונה. בואו ניישר קו ונתקין גירסה זהה לכולם. לשם כך נתקין מנהל גרסאות בשם nvm
שיאפשר לנו להתקין גרסאות חדשות של נוד בקלות.
הריצו את הפקודה הבאה בטרמינל
1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
במידה ותבצעו העתק הדבק, הדפדפן יקפיץ לכם חלונית אישור, אשרו את הפעולה.
בסיום ההתקנה תתבקשו לסגור את חלונית הטרמניל, סגרו ע״י לחיצה על פח הזבל בצד ימין של החלונית.
והפעילו את הטרמינל שוב.
דרך אגב, שימו לב,שמופיע לכם קיצור דרך, השתמשו בו בפעמים הבאות על מנת לחסוך לכם זמן עבודה (כן, כן כמה שניות, אבל מרגישים נהדר אחרי שמשתמשים בקיצור דרך 😀).
עכשיו הריצו את הפקודה באה
1nvm install 22
ואתם מוכנים עם גירסת נוד 22, שנכון לכתיבת הבלוג הזה, זו הגירסה העדכנית לכתיבת למדות (על למדות בהמשך).
AWS CLI
כלי העבודה של AWS (AWS CLI) הם בעצם כלי בודד שאורז בתוכו אינספור כלים להתממשקות עם AWS ועם השירותים השונים שהיא מספקת. התקנתו היא די פשוטה.
התחילו עם בדיקה בסיסית על מנת לוודא שהכלים לא מותקנים אצלכם כבר. הריצו aws —version
במידה ומותקנת אצלכם גירסה ודאו שהיא גירסה 2 ומעלה, במידה ולא המשיכו עם ההוראות הבאות
1curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"2unzip awscliv2.zip3sudo ./aws/install
שורה 1 - מוריד למכונה את החבילה שמכילה את כלי העבודה. שימו לב שאני מוריד את הגירסה עבור x64 שאלו מעבדי אינטל, קודספייס מגיע עם מעבדי אינטל.
שורה 2 - פתחו את החבילה המכווצת.
שורה 3 - הריצו את סקריפט ההתקנה.
הריצו שוב aws —version
ובדקו שהגירסה היא 2 ומעלה.
AWS SAM
הדבר האחרון שצריכים להתקין הוא AWS SAM שהוא כלי ה - IAC שלנו, הכלי שמאפשר לנו לכתוב בקוד את קונפיגורציית הענן שלנו ולעדכנה בהתאם.
כפי שעשינו עם הכלים הקודמים, בדקו האם הכלי מותקן אצלכם ואיזו גרסה.
הריצו sam —version
במידה ומודפסת הגירסה, מעולה, הגירסה האחרונה בתאריך כתיבת הבלוג היא 1.132.0
, במידה ואתם קרובים לגירסה זאת אז מעולה, במידה ולא, אני ממליץ לשדרג.
על מנת להתקין הריצו את הפקודות הבאות
1wget https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip2unzip aws-sam-cli-linux-x86_64.zip -d sam-installation3sudo ./sam-installation/install
הפקודות דומות מאוד לפקודות ההתקנה של AWS CLI, בסיומן הריצו שוב את sam —version
ובדקו שמופיעה גרסה.
הכלים המרכזיים הותקנו, כעת צריך לחבר את סביבת העבודה שלכם ל-AWS
חיבור הסביבה ל-AWS
בסופו של דבר כל הכלים שהתקנו מאפשרים לנו לתקשר עם סביבת ה-AWS שלנו, שם הקוד והשירותים השונים רצים. על סביבת הפיתוח שלנו, אנו רק מבצעים את הפיתוח, אך הריצה בפועל תתבצע בסביבת AWS.
קודם כל הרשמו ל-AWS וצרו עבורכם סביבה. הרישום הוא פשוט וחינמי.
כעת נייצר לנו הרשאות גישה באמצעות IAM Access Key (מפתחות גישה).
מפתח גישה הינו קוד ייחודי שמאפשר לתוכנות צד ג׳ ולקוד שלכם לגשת לסביבת AWS. מפתח גישה הוא פריט מידע רגיש, ואתם לא מעוניינים שלאחרים, שאתם לא מכירים תהייה גישה אליו, בעיקר כי שימוש ב-AWS יכול לעלות כסף וזה יהיה על חשבונכם.
מילת אזהרה - AWS לא ממליצה להשתמש במפתחות גישה כפי שנעשה כעת. ההמלצה היא להשתמש במפתחות גישה שהן לזמן קצוב (Short term), כלומר מפתחות שצריך כל הזמן (לרוב פעם ביום) לחדש על מנת לקבל גישה לסביבת הענן שלכם. הדבר מורכב יותר, וזה די מוגזם עבורנו כרגע. אולי בהמשך אכתוב פוסט בנושא. עבור תחילת הדרך, פתרון שכזה הוא מספיק טוב.
חפשו בשורת החיפוש של AWS את המילה IAM ובחרו באפשרות הראשונה.
לחצו על משתמשים בתפריט בצד ימין
וצרו משתמש חדש, העניקו לו שם כלשהו.
כרגע לא נבחר שום הרשאה, אנחנו נדאג לעדכן את ההרשאות בהתאם לשימוש שלנו בעתיד. לחצו על הבא ולסים לחצו על Create user.
לחצו על המשתמש שנוצר בטבלת המשתמשים
כעת נייצר את מפתחות הגישה.
לחצו על הלשונית של Security Credentials ואז Create access keys
אשרו את החירה ולחצו על הבא. כפי שרשמתי AWS ממליצים על פתרונות אחרים, עבור הפשטות, נבחר את הפתרון הזה.
מוזמנים לתת תאור למפתח שיצרתם ולחצו על Create access key.
והגענו לגביע הקדוש 🥳.
מופיעים שני ערכים אלפא-נומרים שהם מזהים את המפתח הסודי שלו
המזהה
והשני זה המפתח עצמו
אל תשתפו עם הערכים הללו עם אף אחד, רק עם מי שאתם בוטחים בו לא ניתן להדגיש זאת מספיק. הערכים הללו מאפשרים גישה לטירה שלכם שבשימוש לא נכון יכולה לעלות המון כסף.
כעת צריך להזין את הערכים הללו לסביבת הפיתוח שלכם, כדי שתוכל לתקשר עם AWS. הריצו aws configure
, זה בעצם כלי ה-cli שהתקנתם.
במהלך הריצה תתבקשו להכניס את הערכים הללו. הערך הראשון הינו המזהה והשני הוא המפתח עצמו, בערך השלישי הזינו את האזור שבו תעבדו, אני ממליץ בחום על us-east-1 עבור תחילת הדרך, זה לאו הערך שבו תרצו להשתמש עבור האפליקציה שלכם.
וזהו, אתם מוכנים, לבדיקה אחרונה הריצו aws sts get-caller-identity
, זו בעצם פקודת “מי אני” בשפת AWS. אתם אמורים לקבל פלט דומה לזה
1{2 "UserId": "1234DDFFAAZZKK",3 "Account": "201745581538",4 "Arn": "arn:aws:iam::201745581538:user/just-cloud"5}
במידה וקיבלתם, מכונת העבודה שלכם מחוברת לענן ואתם מוכנים ״לתת בראש״.
לסיכום, למדנו כיצד להרים סביבת פיתוח בענן, מה הם הכלים המינימליים הנדרשים על למנת לפתח עבור AWS וחיברנו את סביבת הפיתוח לסביבת הענן שבה הדברים באמת ירוצו.
תגובות