דלג לתוכן הראשי

ארכיטקטורה

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

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

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

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

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

בחרו ב-API סינכרוני (REST, gRPC) כשתקציב ההשהיה צר וזרימות בקשה-תגובה. אכפו timeouts, תקציבים לקפיצה ומחיצות משאבים כדי שתלות איטית לא תייבש בריכות נימים.

הודעות אסינכרוניות מנתקות זמינות ומחליקות עומסים. קבלו סמנטיקת לפחות פעם אחת: בנו צרכנים אידמפוטנטיים עם מפתחות דה-דופליקציה. תעדו ערבויות סדר - הרבה תורים מבטיחים מעט מאוד.

גילוי שירותים בסביבות דינמיות נוטים ל-DNS ב-Kubernetes או לרישומים כמו Consul חוצי אשכול. balancing בצד לקוח משפר מיקום אך מסבך ספריות - בחרו גישה אחת לכל מערכת אקולוגית.

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

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

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

בדיקות חוזה מיישרות יצרנים וצרכנים בלי לאגד את כל סביבת ה-staging. Pact או תאימות סכמה ב-CI תופסים שינוי JSON או Protobuf שובר לפני הפריסה.

שער API ו-BFF מצמצמים צ'אטיות בלקוחות ניידים ומרכזים חוצה-חתכים. היזהרו משער שהופך לכדור בוץ של לוגיקה עסקית - שמרו עליו דק.

תצפית חייבת לתפור trace בין קפיצות שירות. תקננו כותרות תיאום, לוגים עם correlation ID ולוחות RED לכל שירות. בלי trace, דיבאג מיקרו-שירותים הופך לשיחת ועידה.

חוויית מפתח כוללת stack מקומי: compose, חוזים ודאטה זרע כדי שפיצ׳ר לא יידרש ל-stage מלא במחשב נייד.

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

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

חזרה למרכז הידע