התלמוד של המפתחהתלמוד של המפתח

מסכת ארכיטקטורה

מיקרוסרביסים מול מונוליט

3 הלכות

א

מונוליט ומיקרוסרביס

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

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

מחלוקת
רב פפא אומר:

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

רב הונא חולק ואומר:

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

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

ב

מאימתי מותר לחלק

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

שאלו: ומהו "כואב"? אמר רב יוסף: כשהדפלויה של שינוי בכפתור אחד דורשת ריסטארט לכל המערכת. כשצוות אחד חוסם את כולם. כשמרג' הופך לתחרות הישרדות. שאלו: ולפני כן? אמר: לפני כן — מונוליט. ותודו לי אחר כך.

ג

ארבעה דברים קשים במיקרוסרביסים

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

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