Logic Apps או Flow מה טוב יותר?

במקרים רבים מתכננים או מתחילים לבנות תהליך מסוים בענן ואז מגיעים למצב שבו שואלים איזה טכנולוגיה טובה יותר? האם Microsoft Flow או Azure Logic Apps? ורגע מה עם Azure Functions ועם Azure App Service WebJobs?

מהם ההבדלים בין כל אותם תשתיות וכלים המוצעים כיום?

Azure Logic Apps או Microsoft Flow

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

הערה: המאמר מתמקד בכלים: Microsoft Flow וכן Azure Logic Apps.

התשתיות והכלים Microsoft Flow + Azure Logic Apps הם למעשה כלים המבוססים תחילה על designer-first ומטרתם לבצע אינטגרציה מול שירותי ענן שונים ואפליקציות SaaS למינהם.

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

Microsoft Flow

התשתית Microsoft Flow בנויה על Azure Logic Apps אך עדיין ישנם הבדלים בין שני הכלים.

תשתית Microsoft Flow היא שירות SaaS אשר פותח ע"י קבוצת המוצר של Microsoft Flow במטרה לאפשר למשתמשי הקצה ליצור תהליכים ללא צורך במעורבות של אדמין או אנשי פיתוח.

הכלי Microsoft Flow הוא חלק מתוך Business Applications Group וחלק מתוך כלי פרודוקטיביות של Office 365 בינם ניתן למנות את PowerApps, PowerBI ועוד.

ישנם שני מצבים עיקריים של בנית Flows:

  • Flow אוטומטי – טפסים אוטומטיים המבוססים על Azure Logic Apps
  • Business Process flows – תהליכים הקשורים אל Dynamic 365 ומייצגים תהלייכם מורכבים יותר

בשני המצבים עובדים מול ממשק אחד של https://flow.microsoft.com בלבד ויצירת התהליכים נעשית על סמך מאפיינים שונים:

תבניות – משתמש יכול יצור תהליך תוך דקות בודדות באמצעות תבניות קיימות או הנחיה ליצירת תבניות מותאמות אישית. התבניות נוצרו ע"י קבוצת המוצר, אנשי MVP, קבוצות מוצר אחרות (למשל Cloud App Security), וחברות צד שלישי.

קונקטור – חלק מהותי בהיצע של Microsoft Flow (ושל Azure Logic Apps) וישנם 250 קונקטורים וקצת יותר המאפשרים לבצע חיבור מול אפליקציות צד שלישי, מול ישרותי ענן אחרים, מול סביבות מקומיות במטרה ליצור תהליכים עם ערך מול כל אפליקציה וגורם. ישנם קונקטורים מסוג Standard מסוג Premuim.

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

ישנם מאפיינים נוספים של Microsoft Flow כדוגמת: Application Lifecycle Management ובמיוחד אפשרויות Governance לאכיפת מדיניות אבטחת מידע.

Azure Logic Apps

תשתית Azure Lofic Apps היא למעשה תשתית SaaS שמטרתה לבצע תהליכים עסקיים, לתזמן פעולות, לנהל משימות, לאפשר אינטגרציה מול אפליקציות ונתונים על גבי שירותי ענן ואפליקציות שונות.

מכיוון שתשתית Azure Lofic Apps מאפשרת לבצע בניה ופיתוח של תהליכים מול מערכות שונות, בין היתר ניתן לבצע תרחישים כגון:

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

בכדי להתחיל בבניית תהליכים עם Azure Logic Apps ניתן לעבוד עם קונקטורים של Azure Service Bus או Azure Functions ונוספים, או לבנות תהליכים מקוסטמים אישית.

איך Azure Logic Apps עובד?

כל תהליך אשר מבוסס על Azure Logic Apps מכיל טריגר מסוים אשר מופעל בהתאם למידע שמתקבל אל השירות או על סמך אירוע מסוים שמתרחש. ישנם טריגרים רבים שמגיעים מתוך אותם קונקטורים וניתנים להגדרה ע"י Logic app designer.

בכל פעם שטריגר מופעל המנוע של Azure Logic Apps נכנס לפעולה ויוצר Instance אשר רץ ברגע ומבצע פעולות שונות על סמך תנאים ולולאות (לפי הגדרות statements).

לאחר שתנאי עונה על הדרישות השונות (המוגדרות מראש) התהליך ממשיך והמנוע של Azure Logic Apps ממשיך לבצע פעולות נוספות.

רכיבים עיקריים בתשתית Azure Logic Apps:

  • Workflow – מיועד לבניית תהליכים, לבצע אוטומציה וליישם סט של תהליכים
  • Connectors – רכיב המאפשר גישה למידע, למערכות ואפליקציות
  • Triggers – רכיב לביצוע פעולות עך סמך מידע אשר מתקבל במערכת
  • Actions – רכיב שמטרתו לבצע פעולות על סמך הטריגרים במערכת

דוגמאות לתהליכים

תרחיש להתראות מתוך Azure Security Center

תרחיש למחיקת Azure Blobs מעל פרק זמן מסוים

הבדלים עיקרים

מתי ניתן להשתמש

Microsoft Flow Logic Apps
Business User Developers
Citizen Developer/Integrator IT Pros
Developers? Extending Microsoft Flow
IT Pros? Extend/Advanced Integration
My Grandmother?
Business User

כלים שאיתם ניתן לעבוד

Microsoft Flow Logic Apps
Browser-Based Designer Browser-Based Designer
Office 365 Service Visual Studio Designer
Service Extension Based on Office 365 and/or Flow Plans Browser-Based Designer
Azure Service
Integrations Accounts
Continuous integration
SAP
B2B Connectors
Liquid Connectors

אפשרויות נוספות

Microsoft Flow Logic Apps
 Simple Flow  Extend Flow to Logic Apps
Flow Connectors Logic Apps Connectors
Environment Azure Analytics
Analytics Each Logic App is an independent entity
Pay by run Pay by action run and by connector run

Shared Connectors

מה ביומיום ותרחיש מסוים

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

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

מכיוון שאפשרויות התגובה של Microsoft Cloud App Security ניתנות להרחבה עם כלים נוספים, כגון: Microsoft Flow, Azure Logic Apps ואחרים, המטרה היא לקחת תרחישים מסוימים ולבצע איתם אוטומציה ומענה אטוטמטי ככל האפשר – ואפשר לבצע אינספור תרחישים וגם כאלה הנראים מסובכים.

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

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

  • האם הקובץ משותף לגורם חיצוני
  • סוג Malware ודירוג לפני MSRC
  • האם ישנם קבצים נוספים הקשורים לאותו Malware
  • האם ישנם משתמשים מסוימים אשר מבצעים שימוש בקובץ הבעייתי
  • האם אותו Malware מסווג במנועים אחרים כסיכון

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

  • העברת קובץ לנסגר ברמת תיקיית משתמש
  • העברת קובץ להסגר ברמת תיקיית אדמין
  • מחיקת הקובץ לצמיתות
  • דיווח על האירוע במייל
  • סגירת האירוע בפורטל MCAS

לסיכום

איך לבנות תהליכים ואוטומציה? באמצעות Microsoft Flow או Azure Logic Apps?

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

מידע נוסף

המאמר הבא יתמקד ביצירת תהליך בתשתית Azure Logic Apps.

מה דעתך?

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