Teams sometimes need lower latency, lower costs (especially as they scale) or the ability to run their applications somewhere other than AWS. קל להבין מדוע כל כך הרבה צוותים הפכו לאמזון DynamoDB מאז שהושק בשנת 2012.זה קל להתחיל, במיוחד אם הארגון שלך כבר מוטבע באקולוגיה של AWS. הוא מהיר יחסית וניתן להגדיל, עם קצב למידה נמוך.ואם הוא מנוהל באופן מלא, הוא מבזבז את המאמץ הפעיל והידע הנדרשים באופן מסורתי כדי לשמור על מסד נתונים ולפעול במצב בריא. אבל עם הזמן, חסרונות מופיעים, במיוחד כאשר גודל עומסי העבודה והדרישות העסקיות משתנות.צוותים לפעמים צריכים עיכוב נמוך יותר, עלויות נמוכות יותר (במיוחד כאשר הם גדלים), או את היכולת להפעיל את היישומים שלהם במקום אחר מאשר AWS. בואו נבחן את האתגרים שגרמו לשלושה צוותים לעזוב את DynamoDB. גמישות וחיסכון במספר עננים Yieldmo היא פלטפורמת פרסום מקוונת שמחברת מפרסמים ומפרסמים בזמן אמת באמצעות מערכת המבוססת על מכירות, אופטימיזציה עם ML. העסק שלהם מסתמך על משלוח מודעות במהירות (בתוך 200-300 מילישניות) ויעיל, אשר דורש חיפושים אולטרה מהירים, נתוני נתונים עוצמה גבוהה בקנה מידה. הם הקימו בתחילה את הפלטפורמה על DynamoDB. עם זאת, בעוד DynamoDB היה אמין, הגבלות משמעותיות הופיעו ככל שהם גדלו. כפי שסביר טוד קולמן, מייסד טכני ואדריכל הראשי, הדאגות העיקריות שלהם היו כפולות: עלויות מתקדמות והגבלות גיאוגרפיות. במהלך חקר חלופות DynamoDB, הם מקווים למצוא אפשרות שתשמור על מהירות, גמישות ואמינות תוך הפחתת עלויות ומספקת עצמאות לספקי ענן. Yieldmo בהתחלה חשבה להישאר עם DynamoDB ולהוסיף שכבה קשורה. עם זאת, קשורה לא יכלה לפתור את הבעיה של עיכוב גיאוגרפי. הם גם חקרו את Aerospike, אשר הציע תמיכה במהירות ובתמיכה בין עננים. עם זאת, אינדקס בזיכרון של Aerospike היה דורש קבוצה גדולה ויקרות להפליא כדי להתמודד עם מספר גדול של אובייקטים נתונים קטנים של Yieldmo. ואז הם גילו את ScyllaDB. וה- DynamoDB-compatible API של ScyllaDB (Alternator) היה משנה משחק. טוד הסביר, "ScyllaDB תומך בהפצה בין עננים, דורש מספר שרתים ניתן לניהול, והציע עלויות תחרותיות.הכי טוב מכל, ה-API שלה היה תואם ל-DynamoDB, כלומר היינו יכולים לעבור עם שינויים מינימליים בקוד. תהליך ההעברה התוכנן בקפידה, תוך שימוש בארכיטקטורה הקיימת של שורת ההודעות Kafka כדי להבטיח את שלמות הנתונים, והם ביצעו שני בדיקות הוכחה למושג (POC): תחילה עם טבלה אחת של 28 מיליארד אובייקטים, ולאחר מכן בכל חמשת אזורי AWS. התוצאות היו מרשימות. טוד שיתף, "עלויות מסד הנתונים שלנו נקטו בחצי, אפילו עם DynamoDB מחירים קיבולת מוגבלת."ואף על ידי חיסכון עלויות, Yieldmo זכה גמישות לפוטנציאל הפעלה בין ספקי ענן שונים. לסיכום, טוד מסכם: "אחת הדאגות הראשונות שלנו הייתה לעזוב את האמינות המוכחת של DynamoDB. עם זאת, ScyllaDB הייתה שותפה מצוינת. הצוות שלהם מספק מעקב על הקולסטרים שלנו, מזהיר אותנו על בעיות פוטנציאליות ומייעץ לנו מתי נדרש גודל במונחים של תחזוקה מתמשכת. תגית: Yieldmo מעבר ל-GCP עם ביצועים טובים יותר ועלויות נמוכות יותר Digital Turbine, שחקן גדול בטכנולוגיית פרסום נייד עם הכנסה שנתית של 500 מיליון דולר, התמודדה עם אתגרים גדלים עם יישום DynamoDB שלה. "זה יכול להיות קצת יקר כמו שאתה מגדיל, להיות כנה," הסביר ג'וזף Shorter, סגן נשיא אדריכלות פלטפורמה ב Digital Turbine. "המצאנו כמה בעיות ביצועים.היינו עושים טונות של קריאה - 90% מכל האינטראקציות עם DynamoDB היו קריאה פעולות.עם כל הפעולות האלה, מצאנו כי הישגים ביצועים דורשים מאיתנו להגדיל יותר ממה שרצינו, אשר הגדיל את העלויות." טורבינה דיגיטלית צריכה את ההעברה כדי להיות מהירה ומסוכנת ככל האפשר, כלומר לשמור על יישום refactoring למינימום.הדאגה העיקרית, על פי Shorter, הייתה "איך אנחנו יכולים לעבור מבלי לשנות באופן קיצוני את הפלטפורמה שלנו, תוך שמירה על אותה ביצועים וערך לפחות - ולהימנע ממצב של התרסקות ושרפה? לאחר הערכה של כמה אפשרויות, Digital Turbine עבר ScyllaDB והשיג שיפורים מיידיים. “A 20% cost difference — that’s a big number, no matter what you’re talking about,” Shorter noted. “And when you consider our plans to scale even further, it becomes even more significant.” מעבר לחסכונות עלויות, הם מצאו את עצמם "כמעט לא מנצלים את קבוצות ScyllaDB", המציעים מקום לצמיחה עוד יותר ללא העלאת עלויות פרופורציונליות. תגית: Digital Turbine קצב כתיבה גבוה עם איחור נמוך ועלויות נמוכות יותר צוות המשתמש והאופן האישי של אחד משירותי הסטרימינג המדיה הגדולים ביותר בעולם השתמש ב-DynamoDB במשך מספר שנים.בזמן שהם מחליפים מחדש שני מקרים של שימוש קיימים, הם תוהים אם הגיע הזמן לשנות את מסד הנתונים. הפסקה / המשך: אם משתמש צופה בתוכנית ומפסיק אותה, הוא יכול להשיג את המקום שבו הוא הפסיק – בכל מכשיר, מכל מקום. מצב צפייה: באמצעות אותם נתונים, לקבוע אם המשתמש צפה בתוכנית. הנה דיאגרמת ארכיטקטורה פשוטה: כל 30 שניות, הלקוח שולח פעימות לב עם המיקום העדכני של ההצגה, ולאחר מכן שולח את האירועים הללו אל הנתונים. Edge Pipeline מוריד אירועים באותו אזור כמו המשתמש, בעוד Authority (Auth) Pipeline משלב אירועים עבור כל חמשת האזורים שהחברה משרתת. The two main technical requirements for supporting this architecture were: To ensure a great user experience, the system had to remain highly available, with low-latency reads and the ability to scale based on traffic surges. כדי למנוע התקנה נרחבת של תשתית או עבודה DBA, הם זקוקים לאינטגרציה קלה עם שירותי AWS שלהם. ברגע שהקופסאות הללו נבדקו, הקבוצה מקווה גם להפחית את העלות הכוללת. "התשתית הקיימת שלנו היתה נתונים מפוזרים על פני מגוון רחב של DynamoDB ו Elasticache, אז אנחנו באמת רצינו משהו פשוט שיכול לשלב אותם למערכת בעלות נמוכה בהרבה", הסביר מהנדס האחורי שלהם. באופן ספציפי, הם צריכים מסד נתונים עם: תמיכה מרובה אזורים, שכן השירות היה פופולרי בכל חמשת האזורים הגיאוגרפיים העיקריים. לעדכונים לא היה הסכם רמת שירות קפדני (SLA), אבל המערכת צריכה לבצע עדכוני תנאי בהתבסס על לוח הזמנים של האירועים. היכולת להתמודד עם מעל 78K קריאה לשנייה עם P99 עיכוב של 10 עד 20 מילישניות.המקרה של שימוש כרוך רק שאילתות נקודות פשוטות; דברים כמו אינדקסים, חלוקת דפוסי שאילתות מורכבות לא היו עניין עיקרי. 10TB של נתונים עם מקום לצמיחה. לדברי מהנדס האחורי שלהם, "DynamoDB יכול לתמוך בדרישות הטכניות שלנו בצורה מושלמת, אבל בהתחשב בגודל הנתונים שלנו ובביקוש גבוה (כבד כתיבה), המשך עם DynamoDB היה כמו לגרור כסף לתוך האש". בהתבסס על הדרישות שלהם ביצועי כתיבה ועלות, הם החליטו לחקור את ScyllaDB. כדי להוכיח את הרעיון, הם הקימו קבוצת בדיקות ענן של ScyllaDB עם שישה כפתורים AWS i4i 4xlarge וטענו מראש את הקבוצה עם 3 מיליארד רשומות. These low latencies, paired with significant cost savings (over 50%) convinced them to leave DynamoDB. Beyond lower latencies at lower cost, the team also appreciated the following aspects of ScyllaDB: העיצוב המתמקד בביצועים של ScyllaDB (שהוא בנוי על מסגרת Seastar, משתמש ב-C++, מודע ל-NUMA, מציע נהגים מודעים למחסום, וכו') מסייע לקבוצה להפחית את הזמן ואת העלויות של תחזוקה. אסטרטגיית הדחיסה המתרחבת מסייעת להם להפחית באופן משמעותי את הרחבת הכתיבה. רמה גמישה של עקביות וגורמי רבייה עוזרים להם לתמוך בשוליים נפרדים של Auth ו-Edge.לדוגמה, Auth משתמשת בקוורום עקביות בעוד Edge משתמשת ברמת עקביות של "1" עקב כפייה של נתונים ופעילות גבוהה. מהנדס האחורי שלהם מסכם: "בחירת מסד נתונים היא קשה. אתה צריך לקחת בחשבון לא רק תכונות, אלא גם עלויות. "במקרה שלנו, בשל דרישות העברת החשמל והטינטציה הגבוהות, DynamoDB serverless לא הייתה אפשרות מצוינת. ללמוד עוד הקבוצה שלכם היא הבאה? אם הצוות שלכם שוקל , לחצו כאן כדי להירשם כדי לדבר יותר על מקרה השימוש שלך, SLAs, דרישות טכניות ומה אתה מקווה לאופטימיזציה.אנחנו נודיע לך אם ScyllaDB הוא מתאים טוב, ואם כן, מה העברה עשויה לכלול במונחים של שינויים ביישום, מודל נתונים, תשתית וכן הלאה. תגית: DynamoDB ScyllaDB עשוי להיות אופציה ייעוץ טכני בונוס: הנה מבט מהיר על איך ScyllaDB משווה ל- DynamoDB: נכתב על ידי • : דה סילבה Nogueira ו פיליפ קרדינטי מנדס . נכתב על ידי דה סילבה Nogueira פיליפ קרדינטי מנדס