نکته آخری که میخوام بهش اشاره کنم اینه که شاید بپرسید الگوهایی مثل الگوی Sharded برای scale خیلی بالاست و احتمال خیلی زیاد شما تو کارتون بهش نیاز ندارید.
جواب کوتاه من میشه:خیر. دلیل من هم اینه که با رشد تکنولوژی، بسترهای ارائه خدمات خیلی پیچیده تر و اصطلاحا data-intensive تر شدن، به عنوان مثال الان دیگه messaging فقط برای چت کردن نیست، بلکه messaging یک platform شده برای کلی خدمات دیگه مثل آموزش، کسب و کار و غیره.
یا مثلا سرویس های ویدیویی در این دو سه ساله رشد بسیار زیادی داشتن مخصوصا پس از پاندمی کرونا. خود بلاکچین و پلتفرم های مبتنی بر هوش مصنوعی و iot هم ذاتا data-intensive هستن.
وقتی میگیم data-intensive یعنی اینکه حجم دیتایی که شما باید مدیریت کنید ذاتا زیاده (اگه الان نیست بزودی میشه). پس باید از قبل خودتون رو برای اون روز آماده کنید، که اگه به فکر scale نباشید و اصولش رو رعایت نکنید، چالش های زیادی در آینده خواهید داشت.
من اصلا منظورم این نیست که در لحظه کاری که میکنید رو خیلی over-engineering کنید، نه اصلا، بلکه هدفم اینه که توی طراحی و دیزاین حتما نیم نگاهی به این قضیه داشته باشید و به این فکر کنید که با طراحی فعلی اگه قرار باشه سیستم scale پیدا کنه، آیا سیستم پاسخگو هست یا خیر، آیا میتونید دیتابیس رو shard کنید بصورت موثر یا خیر.
شاید خوندن مقاله ای از تیم Notion که اخیرا درگیر این چالش بودن مفید باشه، که یکی از مواردی که بهش اشاره میکنه Shard earlier هست، و میگه که ای کاش زودتر به این فکر بودیم...
https://www.notion.so/blog/sharding-postgres-at-notion
دمتون گرم، یا علی
#designing_distributed_systems_brendan_burns
@gocasts
Post #62
787
Go Casts | Systems & Agents 🚀 دوستان پیشنهاد میکنم حتما بعد از خوندن پست های مربوط به الگوی Sharding این ویدیوی کوتاه در مورد Consistent Hashing رو ببینید تو دنیای مدرن امروز عملا همه چیز حاضر و آماده شده، و برای استفاده از این الگوها، فقط کافیه که نحوه استفاده و محل استفاده رو بلد باشید...…