رکورد تصمیم معماری: ارکستراسیون کانتینر با Kubernetes
بیان مسئله
باید برای مجموعهٔ رو به رشد برنامههای ابربومی خود یک پلتفرم ارکستراسیون کانتینر انتخاب کنیم. استقرار پلتفرم قدیمی کنونی ما بسیار کند است و برای همگام شدن با نیازهای رو به رشد ما بهاندازهٔ کافی چابک نیست. به دنبال سیستمی هستیم که به ما امکان دهد سرویسهای خود را کارآمدترین شکل ممکن مقیاس دهیم، بیآنکه چابکی یا سهولت استفاده را فدا کنیم.
جایگزینهای بررسیشده
Docker Swarm
Kubernetes
Apache Mesos
تصمیم اتخاذشده
پس از تحلیل دقیق هر پلتفرم ارکستراسیون کانتینر، تصمیم گرفتهایم Kubernetes را بهعنوان بهترین گزینه برای نیازهای سازمانی خود اتخاذ کنیم. دلایل ما برای انتخاب Kubernetes به شرح زیر است:
مقیاسپذیری: طراحی منحصربهفرد Kubernetes برای مقیاسدهی برنامهها عالی است و با تکامل نیازهای مقیاسپذیری ما در طول زمان، Kubernetes توانایی داخلی پاسخ به این تغییرات را بدون مشکل دارد.
معماری غیرمتمرکز: توپولوژی master-worker در Kubernetes معماری غیرمتمرکزی را تضمین میکند که اطمینان میدهد هیچ نقطهٔ شکست واحدی وجود ندارد.
پشتیبانی جامعه: Kubernetes بزرگترین و فعالترین جامعهٔ متنباز را دارد، یعنی شمار زیادی مشارکتکننده، توسعهدهنده و تأمینکننده دارد و دریافت کمک و یافتن منابع را برای ما آسانتر میکند.
پشتیبانی اکوسیستم: Kubernetes اکوسیستمی رو به رشد با انواع ابزارهای شخص ثالث، یکپارچگی با رجیستریهای کانتینر، خطلولههای CI/CD، ذخیرهسازی داده و موارد دیگر دارد.
بنابراین، تصمیم گرفتهایم Kubernetes را بهعنوان پلتفرم ارکستراسیون کانتینر خود برای حال و آیندهٔ نزدیک اتخاذ کنیم.