Azure Notebooks מאיפה להתחיל

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

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

הפלטפורמה של Azure Sentinel בנויה מהמון (אבל המון) טכנולוגיות וכלים ואחד מהם הוא Azure Notebooks שמאפשר לקחת את היכולות של חיפוש המידע, תחקור ומעקב אחר בעיות אבטחה למקומות פסיכיים לגמרי…

התשתית של Azure Notebooks נועדה לביצוע פעולות רבות ולא בהכרח רק לטובת Azure Sentinel, אז בואו נראה במאמר מה הם היכולות ומה ניתן לבצע עם Azure Notebook.

מהו Azure Notebooks

תשתית Azure Notebook היא תשתית אשר מבוססת על קוד פתוח ומאפשרת לבצע פיתוחים ולהריץ קוד של שפות שונות על גבי Jupyter (בעבר IPython) באמצעות דפדפן וללא צורך בהתקנות מוקדמות.

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

כיום, Azure Notebook הוא כלי נפוץ במימושים של למידת מכונה, סטטיסטיקות, חיזוי נתונים, עבודה של אנשי דאטה, הנגשת או הדמיית מידע ויכולות נוספות.

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

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

כמה נקודות חשובות לגבי Azure Notebook:

תמיכה בשפות שונות – Azure Notebook תומך בשפות פיתוח שונות כגון Python 2, Python 3, R and F וזאת על סמך התבססות מול גרסאות Kernel שונות:

Python 2.7 – Anaconda 4.3.29
Python 3.5 – Anaconda 4.5.4
Python 3.6 – Anaconda 4.3.31
R 3.4 – Microsoft R Open 3.4.1
F# 4.1.9

התקנה ותמיכה בחבילות שונות – Azure Notebook מגיע עם תמיכה של אלפי חבילות המתבססות על התקנות של PIP או Conda וניתן לבצע התקנות ידניות, אוטומטיות או כאלה שמוגדרות על סמך קבוצי קונפיגורציה כגון nvironment.yml or requirements.txt.

ממשק Azure Notebook –  הממשק הוא חלק אינטגרלי (native) מתוך Jupyter Notebook

הרחבות – מכיל הרחבות שונות אשר מגיעות במצב מותקן, למשל, RISE או jupyter_contrib_nbextensions

מקשים וקיצורי דרך – חלק חשוב מאוד בפעולות וגם כאן Azure Notebook עובד עם אותם קיצורי דרך כמו Jupyter Notebook.

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

קונקטורים – קיימים כיום קונקטורים מול סביבת הענן של Azure מול Azure Databases, REST API, Azure Storage ונוספים.

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

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

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

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

עבודה עם מידע ונתונים – ניתן לעבוד על מידע ונתונים ולבצע פעולות:

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

חבילות התקנה – ישנם אלפי חבילות התקנה אשר ניתנות להתקנה על סמך השפות הזמינות, בינהם:

  • פייתון – ניתן להתקנה על סמך PIP או Conda ולאחר התקנה ישנו זמן ממושך שבו ניתן לעבוד עם החבילה, אלא אם כן בוחרים לאחסן את התקנת החבילה בתוך הפרויקט.
    במקרה של Python התקנת החבילות נעשות על גבי הפצת Anaconda ועל סמך אותם Kernel אשר זמינים.
  • R – ניתן להתקנה מתוך CRAN או GitHub וישנם הרחבות להתקנת R באמצעות ספרית DevTools
  • F – ניתן להתקנה מתוך Nuget או Paket Manager

הרחבות – ישנם אינספור הרחבות זמינות בתוך Azure Notebook חלקן מגיעות מותקנות מראש, בין היתר:

  • Altair – המאפשר לבצע הדמיות סטטיסטיות
  • BQPlot – הדמיות אינטראקטיביות
  • IpyWidgets – תוספות אינטראקטביות מסוג Widjet אשר מבוססות על HTML
  • JupyterLab – סביבות אינטראקטיביות ושלמות

ממשק Terminal – מאפשר גישה ישירה לשרת ולאותו Instance ספציפי לטובת ביצוע פעולות שונות בממשק כגון התקנת חבילות מבוססות Python, R, F, או שינוי קונפיגורציה ברמת קבצים וערכים, קריאת לוגים לגבי בעיות שונות ופעולות נוספות.

איך מתחילים

תחילת עבודה עם Azure Notebook מחלקת למספר שלבים פשוטים:

הגדרת חשבון

  • חשבון Microsoft Account או חשבון ארגוני מבוסס Azure
  • התחברות לשירות בכתובת https://notebooks.azure.com/
  • הגדרה בסיסית של הפרופיל

מהו Azure Notebooks2019-12-24_08h43_512019-12-24_08h46_44

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

יצירת פרויקט (ספריה)

בכיד ליצור פרויקט יש לפעול לפי השלבים הבאים:

  • מתוך הממשק הראשי ניגש אל My Project ושם ניצור את הפרויקט הספריות והקבצים הנדרשים
  • יצירת פרויקט מצרכיה ProjectID ספציפי והגדרת שיתוף פרטי או ציבורי, ובחירה באפשרות של יצירת קובץ README

2019-12-25_09h07_472019-12-25_09h08_14

לאחר יצירת הפרויקט נקבל ספירה של הפרויקט עם קובץ README ומשם נוכל להתחיל ביצירת קבצים ספצייפים, במקרה שלנו נבחר ביצירה של קובץ Notebook עם שפת Python 3.6.

בגלל שבחרנו בפייתון כל הסיומות קבצים יהיו ipynb.

2019-12-25_09h08_312019-12-25_09h08_422019-12-25_09h09_04

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

בדוגמה הנ"ל הוספנו Code Cells ספציפי אך ניתן להוסיף גם Markdown בשביל להוסיף טקסטים שונים (ולא רק סטטיים)

2019-12-25_09h16_15

דוגמה של Markdown בסיסי

2019-12-25_09h29_282019-12-25_09h29_53

דוגמה לפרויקט עם Notebook ייעודי שמבצע פעולות רבות מול תשתית Azure Sentinel ניתן לראות כי ישנם מספר קבצים שונים ותיעוד של כלל הפעולות בפרויקט.

2019-12-25_09h37_59

2019-12-25_09h36_07

לסיכום

תנו לי מידע ונתונים ועם השאר אסתדר… Azure Notebook מספק תשתית יעילה וגרנולרית לביצוע פעולות רבות המתמקדות בניתוח מידע, הדמיית נתונים, תחקור אירועים ופעולות רבות בתחומי ענין ונושאים שונים.

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

מאמרים נוספים של Azure Notebook יעלו בקרוב.

You may also like...

2 Responses

  1. Amir Granot הגיב:

    מעולה!

  1. 11/09/2020

    […] Azure Notebooks מאיפה להתחיל […]

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *