על Power Automate וכאלה
במקרים רבים מתכננים או מתחילים לבנות תהליך מסוים בענן ואז מגיעים למצב שבו שואלים איזה טכנולוגיה טובה יותר? האם Power Automate או Azure Logic Apps? ורגע מה עם Azure Functions ועם Azure App Service WebJobs?
מהם ההבדלים בין כל אותם תשתיות וכלים המוצעים כיום?
Azure Logic Apps או Power Automate
מטרת הכלים המוצעים בשירות הענן של Microsoft הם לבצע אוטומציה על תהליכים עסקיים ולפי תנאים, מידע קיים, אינפוטים מסוימים ועך סמך אותה אינפורמציה לבצע פעולות שונות לרוב אוטומטיות. הכלים המאפשרים לבצע אוטומציה על תהליכים שונים הם:
- Power Automate
- Azure Logic Apps
- Azure Functions
- Azure App Service WebJobs
הערה: המאמר מתמקד בכלים: Power Automate וכן Azure Logic Apps.
התשתיות והכלים Power Automate + Azure Logic Apps הם למעשה כלים המבוססים תחילה על designer-first ומטרתם לבצע אינטגרציה מול שירותי ענן שונים ואפליקציות SaaS למינהם.
חשוב מאוד להדגיש כי Power Automate מבוסס על Azure Logic Apps ושניהם עובדים על מאפיינים דומים, למשל על גבי אותם קונקטורים.
Power Automate
התשתית של Power Automate בנויה על Azure Logic Apps אך עדיין ישנם הבדלים בין שני הכלים.
תשתית Power Automate היא שירות SaaS אשר פותח ע"י קבוצת המוצר של Power Automate במטרה לאפשר למשתמשי הקצה ליצור תהליכים ללא צורך במעורבות של אדמין או אנשי פיתוח.
Power Automate הוא חלק מתוך Business Applications Group וחלק מתוך כלי פרודוקטיביות של Office 365 בינם ניתן למנות את PowerApps, PowerBI ועוד.
ישנם שני מצבים עיקריים של בנית Flows:
- תהליך אוטומטי – טפסים אוטומטיים המבוססים על Azure Logic Apps
- Business Process flows – תהליכים הקשורים אל Dynamic 365 ומייצגים תהלייכם מורכבים יותר
בשני המצבים עובדים מול ממשק אחד של https://flow.microsoft.com בלבד ויצירת התהליכים נעשית על סמך מאפיינים שונים:
תבניות – משתמש יכול יצור תהליך תוך דקות בודדות באמצעות תבניות קיימות או הנחיה ליצירת תבניות מותאמות אישית. התבניות נוצרו ע"י קבוצת המוצר, אנשי MVP, קבוצות מוצר אחרות (למשל Cloud App Security), וחברות צד שלישי.
קונקטור – חלק מהותי בהיצע של Power Automate (ושל Azure Logic Apps) וישנם 250 קונקטורים וקצת יותר המאפשרים לבצע חיבור מול אפליקציות צד שלישי, מול ישרותי ענן אחרים, מול סביבות מקומיות במטרה ליצור תהליכים עם ערך מול כל אפליקציה וגורם. ישנם קונקטורים מסוג Standard מסוג Premuim.
Approvals – חלק נוסף בתהליך Power Automate ומציע בקרה נוספת על פעולות אוטומטיות. מטרת האפשרות Approvals היא להגיב על תהליכים ולאפשר לתהליך להמשיך לפי תנאים המוגדרים מראש.
ישנם מאפיינים נוספים של Power Automate כדוגמת: 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 מעל פרק זמן מסוים
הבדלים עיקרים
מתי ניתן להשתמש
Power Automate | Logic Apps |
Business User | Developers |
Citizen Developer/Integrator | IT Pros |
Developers? | Extending Power Automate |
IT Pros? | Extend/Advanced Integration |
My Grandmother? | |
Business User |
כלים שאיתם ניתן לעבוד
Power Automate | 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 |
אפשרויות נוספות
Power Automate | 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 ניתנות להרחבה עם כלים נוספים, כגון: Power Automate, Azure Logic Apps ואחרים, המטרה היא לקחת תרחישים מסוימים ולבצע איתם אוטומציה ומענה אטוטמטי ככל האפשר – ואפשר לבצע אינספור תרחישים וגם כאלה הנראים מסובכים.
אז קצת מהשטח, אחד התרחישים שבהם ניתן לבצע אוטומציה היא בתרחיש של MCAS יחד עם Azure Logic Apps, כאשר התרחיש מצריך לבצע מחיקה של קובץ זדוני לצמיתות או העברת קבצים זדוניים להסגר. לצורך הענין, ביומיום MCAS מבצע זיהוי של קובצי מלישס למינהם, מתייג את אותם קבצים לפי סוג אותו Malware (או בעיה אחרת) ולאחר מכן מתריע (במידה והחוק הופעל).
במצבים כאלה אנו צריכים להגיב לאותו מקרה של זיהוי קובץ זדוני, ולכן ניתן לבצע אוטומציה וכאן נכנס Azure Logic Apps, ובמצב כזה ניתן לקחת קבצים המתויגים כקבצים בעייתים ולהפעיל עליהם תהליך שהוגדר מראש, ולבצע בדיקה לפי תנאים, בית היתר התנאים הבסיסיים של:
- האם הקובץ משותף לגורם חיצוני
- סוג Malware ודירוג לפני MSRC
- האם ישנם קבצים נוספים הקשורים לאותו Malware
- האם ישנם משתמשים מסוימים אשר מבצעים שימוש בקובץ הבעייתי
- האם אותו Malware מסווג במנועים אחרים כסיכון
למה לבצע בדיקות נוספות כאשר ישנו MCAS? והסיבה פשוטה מאוד, לפני שאני מבצע פעולות תגובה על הקובץ ומרשיע את הקובץ והבעיה עצמה, אני מעונין לוודא פרמטרים נוספים על סמך תנאים נוספים, ולכן על סמך אותם תנאים אני יכול להגיב באופן אוטומטי, בין היתר לפי הפעולות הבאות:
- העברת קובץ לנסגר ברמת תיקיית משתמש
- העברת קובץ להסגר ברמת תיקיית אדמין
- מחיקת הקובץ לצמיתות
- דיווח על האירוע במייל
- סגירת האירוע בפורטל MCAS
לסיכום
איך לבנות תהליכים ואוטומציה? באמצעות Power Automate או Azure Logic Apps?
נראה מבלבל כל המושגים הנ"ל? במיוחד כאשר צריכים להחליט מהי הטכנולוגיה שאיתה נבנה את התהליך והאוטומציה. אז מה יותר טוב, מה כדאי ואיך מתנהלים מול כל האפשרויות הנ"ל תלוי בצורך הארגוני, ובקיצור, אין יותר טוב ונכון לומר איזה תשתית מתאימה יותר לדרישות.
מידע נוסף
- מאמר שלי בנושא ניהול תהליכים ואוטומציה עם Office 365 Flow
- מאמר לגבי What are Microsoft Flow, Logic Apps, Functions, and WebJobs