کوبرنتیس پیاده سازی جدیدی از بیش از یک دهه تجربه گوگل در اجرای نرم افزارهای سمت سرور در مقیاس بسیار بالاست که به صورت متن باز (open source) در اختیار همه قرار گرفته است.
این نرم افزار وظیفه اجرا و مدیریت کانتینرها را بر روی گروهی از سرورهای موجود در یک یا چند مرکز داده ها (data center) به عهده دارد. برای درک بهتر این سیستم لازم است قدری با مفاهیم اولیه کانتینرها مانند داکر آشنایی داشته باشید که میتوانید در همین سایت درباره آن مطالعه کنید.
کوبرنتیس در واقع نسل سوم از این فنآوریست که در شرکت گوگل از ابتدا به زبان گو (Go) پیاده سازی شده است. دو نسل قبلی آن برگ (Borg) نام داشته که پیاده سازی آن به زبان سی پلاس پلاس بوده است و گوگل همچنان از آن در محیط عملیاتی استفاده میکند.
در کوبرنتیس یک یا چند کانتینر که به صورت مشترک برنامه ای کاربردی را تشکیل میدهند، به صورت واحدی جداگانه به نام پاد (pod) دسته بندی میشوند تا مدیریت و کشف (discovery) آنها آسانتر شود.
مزیت کلیدی کوبرنتیس در این است که بدون نیاز به یک تیم بزرگ برای راه اندازی و نگهداری، میتوان آن را در مقیاس وسیع برای اجرای میلیاردها برنامه کاربردی به کار گرفت. از مزایای دیگر آن قابلیت اجرا بر روی بسترهای متفاوت است؛ از سرورهای یک مرکز داده های خصوصی گرفته تا سرویسهای ابری عمومی، یا حتی ترکیبی از هر دو.
به طور کلی هر شرکتی که یک یا چند سرویس نرم افزاری اجرا میکند به طور بالقوه در مرحله اول به کانتینرها و سپس به سیستمی مانند کوبرنتیس نیاز دارد. دلیل اصلی نیاز به کانتینرها امکان جداسازی برنامه ها (isolation) از یکدیگر در بهترین سطح ممکن است تا فرآیند تولید، تست و در نهایت اجرا بر روی یک زیرساخت مشترک تسهیل شود.
در مرحله بعد نیاز به کوبرنتیس پیدا میشود تا اجرای این کانتینرها بر روی دسته ای (cluster) از ماشینها را تا حد زیادی اتوماتیک کند. در واقع کوبرنتیس مانند سیستم عاملیست که بر روی تمام سرورهای شما به صورت یکپارچه اجرا میشود و به شما این امکان را میدهد که دیگر نگران هیچ ماشینی به طور خاص نباشید. اگر ظرفیت کافی در زیرساخت شما وجود داشته باشد، این سیستم به راحتی میتواند از دست دادن یک یا چند ماشین را برای شما به گونه ای مدیریت کند که کاربران هیچ تغییری در سرویسهای در حال اجرا بر روی این بستر احساس نکنند.
این سیستم امکاناتی مانند بررسی سلامت (health check) و تکثیر (replication) برنامه ها را به راحتی بر روی مجموعه سرورهای شما فراهم میکند. از دیگر قابلیتهای آن نیز ویژگیهای مناسب و سطح بالا، مانند کشف سرویسها (service discovery)، توزیع بار (load balancing) و مدیریت پیکربندی (configuration management) است که برای ساخت سیستمهایی با معماری مایکروسرویسی (micro-service architecture) حیاتیست و برای تیمهای شما امکان تولید، تغییر و مقیاس پذیری (scaling) بخشهای مختلف هر سرویس را بر اساس شرایط مورد نیاز فراهم میکند.
اگر چه بسیاری از نرم افزارها سعی میکنند این قابلیتها را در سطح برنامه کاربردی پیاده کنند ولی تجربه نشان داده است که این کار با وجود صرف زمان و انرژی زیاد در اکثر موارد منجر به یک راه حل شکننده و غیر قابل نگهداری میشود که برای برنامه های کاربردی بعدی باید از نو تکرار شود. کوبرنتیس با انتقال این دغدغه ها به لایه مناسب و آزاد کردن برنامه کاربردی از قید و بند آنها به شما کمک میکند که وقت و انرژی تیم را در جای مناسب و برای تولید ویژگیهای خاص برنامه کاربردی خودتان صرف کنید.
برای آشنایی بیشتر با این فنآوری میتوانید ارایه ضبط شده کوبرنتیس در همایش داکر تهران را بر روی سایت تاک مشاهده کنید. همچنین اگر فکر میکنید شرکت شما به چنین سیستمی نیاز دارد میتوانید به تیم الستیکو ایمیل بزنید (io.elastico AT gmail DOT com) تا در نیازسنجی و راه اندازی آن به شما کمک کنیم.
منبع : elastico.io