مقیاس‌بندی فناوری‌های کانتینر در Coinbase با Kubernetes | توسط Coinbase | ژوئن، 2022

مقیاس‌بندی فناوری‌های کانتینر در Coinbase با Kubernetes |  توسط Coinbase |  ژوئن، 2022


Tl;dr: ارزیابی اخیر ما از Kubernetes بر مناسب بودن آن برای افزایش مقیاس Coinbase در آینده تأکید کرد. در گذشته، مهاجرت به Kubernetes به دلیل بار عملیاتی اجرای و ایمن سازی هواپیمای کنترل در داخل، نگرانی هایی را ایجاد کرد. اکنون به این نتیجه رسیده‌ایم که پیشنهادات Kubernetes مدیریت شده این بار عملیاتی را بدون به خطر انداختن امنیت پشته ما کاهش می‌دهد.

توسط کلر کورتیس، مهندس نرم افزار کارکنان Coinbase

تقریباً دو سال پیش ما یک پست وبلاگ منتشر کردیم که در آن توضیح می داد که چرا Kubernetes بخشی از پشته فنی ما نیست. در آن زمان، مهاجرت به Kubernetes مجموعه جدیدی از مشکلات را ایجاد می کرد که بر منافع کوتاه مدت برتری داشت. با این حال، همانطور که این فناوری‌ها به بلوغ رسیده‌اند، تیم محاسباتی تازه‌تشکیل شده ما یک استراتژی برای استفاده از Kubernetes به روشی ابداع کرد که بتواند نسخه انعطاف‌پذیرتر و مقیاس‌پذیرتری از سیستم فعلی ما ارائه دهد.

Coinbase از زمانی که برای اولین بار مهاجرت به Kubernetes را در نظر گرفتیم رشد قابل توجهی داشته است. با هر رشدی از این نوع، اولویت بندی نگرانی های مقیاس پذیری مهم است. همانطور که به مقیاس‌بندی ادامه می‌دهیم، یکی از حوزه‌های اصلی که نیاز به اثبات آینده دارد، پلتفرم محاسباتی Coinbase است. در اواسط سال 2020، بزرگترین سرویس ما برای اجرای تعداد نسبتاً کمی میزبان پیکربندی شد، در حالی که امروزه 10 برابر این تعداد اجرا می شود.

در همین دوره، ما اندازه سازمان مهندسی خود را چهار برابر کردیم که باعث افزایش قابل توجهی در تعداد استقرارها شد – هر کدام به میزبان‌های کاملاً جدید نیاز داشتند. افزایش تعداد استقرارها نگرانی هایی را در مورد مقیاس پذیری آینده ایجاد کرده است، زیرا ما در حال حاضر با محدودیت های فنی API ها و منابع فعلی مواجه هستیم. مشکلات مکرر با دریافت ظرفیت کافی و تحویل آن در یک بازه زمانی معقول، باعث افزایش استقرار ناموفق شد و بزرگترین خدمات ما را ملزم کرد که روند انتشار خود را به‌طور چشمگیری کاهش دهند.

در حالی که این مسائل قابل حل هستند، ما تصمیم گرفتیم از این فرصت استفاده کنیم تا ارزیابی کنیم که آیا ادامه سرمایه گذاری در یک سیستم خانگی منطقی است یا یک جایگزین منبع باز را در نظر بگیریم که در دراز مدت بسیار مقیاس پذیرتر باشد.

در ارزیابی ما از Kubernetes، متوجه شدیم که یکی از بزرگترین مزایای مهاجرت این است که ارائه میزبان را از استقرار سرویس جدا می کند، و بار مدیریت جذب میزبان را از تیم های فردی به تیم زیرساخت گسترده تر منتقل می کند. این به تیم زیرساخت قدرت می دهد تا رویکردی جامع برای مدیریت میزبان اتخاذ کند. همچنین، محدودیت‌های ظرفیت کمتر بر استقرار تأثیر می‌گذارد، و ما میزان دانش اختصاصی ارائه‌دهنده ابر را که مهندسان فردی باید حفظ کنند، کاهش می‌دهیم.

جامعه Kubernetes دانش و ابزار زیادی ایجاد کرده است که می توانیم از آنها برای ارائه پشتیبانی بهتر به تیم ها و فعال کردن سریع ویژگی های جدید استفاده کنیم. علاوه بر این، از آنجایی که Kubernetes قابل توسعه است، هنوز گزینه ای برای ساخت ابزار داخلی و منبع باز آن برای استفاده در جامعه گسترده تر وجود دارد.

امنیت در کوین‌بیس بسیار مهم است و ایمن‌سازی خوشه‌های Kubernetes یک کار بی‌اهمیت است. انتقال از محاسبات بسیار ایزوله و تک مستاجر به سیستمی که چند اجاره‌نشینی را ترویج می‌کند، نیازمند طراحی و بررسی امنیتی عمدی است. از آنجایی که ما بارهای کاری با امنیت بالا داریم که باید جداسازی را تضمین کنیم، باید کلاسترهای جداگانه اجرا کنیم و ابزار خودکاری بسازیم که تمام عملیات خوشه را مدیریت کند. دادن دسترسی افراد به زیرساخت های با امنیت بالا مجاز نیست.

پیشنهادات مدیریت‌شده Kubernetes، مانند AWS EKS، مسئولیت عملیات، نگهداری و ایمن‌سازی صفحه کنترل را بر عهده می‌گیرد و بار عملیاتی اجرای بسیاری از خوشه‌ها را کاهش می‌دهد. کاهش بار عملیاتی و مسئولیت امنیتی ما را قادر می سازد تا روی ایجاد هماهنگی و اتوماسیونی تمرکز کنیم که برای پشتیبانی از بسیاری از خوشه ها در یک سازمان مهندسی بزرگ مورد نیاز است. EKS در چند سال گذشته به طور قابل توجهی به بلوغ رسیده است و نشان داده است که Kubernetes پایدار و عملیاتی را ارائه می‌کند و در عین حال با ویژگی‌هایی که معمولاً در EC2 استفاده می‌شوند، ادغام می‌شود، مانند امکان اتصال گروه‌های امنیتی به پادها و نقش‌های IAM به حساب‌های خدمات. داشتن این یکپارچه‌سازی‌ها خطر و هزینه‌های مرتبط با مهاجرت را کاهش می‌دهد، زیرا بدون نیاز به تغییر هویت یا الگوهای دسترسی پلتفرم فعلی ما، امکان مهاجرت را فراهم می‌کنند.

در حالی که مهاجرت به Kubernetes نگرانی‌هایی را در گذشته برانگیخت، اکنون به این نتیجه رسیده‌ایم که پیشنهادات Kubernetes مدیریت شده، مانند AWS EKS، می‌تواند بار عملیاتی را بدون به خطر انداختن امنیت کاهش دهد. در نهایت، متوجه شدیم که سقف روشنی برای توانایی سیستم داخلی ما برای مقیاس‌پذیری وجود دارد، و در حالی که هزینه‌های زیادی برای راه‌اندازی و مهاجرت مرتبط با انتقال به Kubernetes وجود دارد، ما مطمئن هستیم که این سیستم انعطاف‌پذیرتر و مقیاس‌پذیرتر از سیستم ما خواهد بود. سیستم فعلی.