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

תרשים בלי חץ העברה מרכזי יכול להסתיר רשות רישום, שירות גילוי וממסר, שכולם תלויות תפעוליות.

נתיב ישיר, מישור בקרה משותף

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

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

גילוי, אמון וממסר הם שלוש משימות

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

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

במה כל תלות נכשלת

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

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

שאלו איזו הפסקה תוכלו לשרוד

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

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

המילה מבוזר זוכה במקומה כשהיא נוקבת בכשלים האלה. בלי הרשימה הזו היא מתארת תרשים ולא מערכת.

מאמרים קשורים