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