مرا اسکن کن!


گروه های مقاله های آموزشی

فریم ورک لاراول تکنولوژی های طراحی وب آخرین اخبار دنیای وب GOLANG معماری نرم افزار توسعه فردی شبکه و ارتباطات بهترین طراحی سایت فتوشاپ مدیریت پروژه آموزش Git Windows 10 الگوی طراحی Design Pattern Mac OS PHP LINUX


مگا وب  اشكال زدايی (debug) يك كد چندين مرتبه از نوشتن آن سخت تر است. بنابراين اگر كد اوليه خود را بسيار هوشمندانه بنويسيد، جهت اشكال زدایی آن به اندازه كافی باهوش نخواهيد بود.  مگا وب

Brian Kernighan



آزمون چهار گزینه ای
سنجش مهارت در برنامه نویسی



Kubernetes چیست ؟

Kubernetes چیست ؟



 

کوبرنتیز (انگلیسی: Kubernetes) (که به شکل k8s نیز ارجاع می‌شود) سامانه‌ای متن‌باز برای خودکارسازی دیپلوی، مقیاس و مدیریت برنامه‌های کانتینرسازی شده است که در ابتدا توسط گوگل توسعه داده شد و به بنیاد لینوکس هدیه داده شد.

کوبرنتیس پیاده سازی جدیدی از بیش از یک دهه تجربه گوگل در اجرای نرم افزارهای سمت سرور در مقیاس بسیار بالاست که به صورت متن باز (open source) در اختیار همه قرار گرفته است.

این نرم افزار وظیفه اجرا و مدیریت کانتینرها را بر روی گروهی از سرورهای موجود در یک یا چند مرکز داده ها (data center) به عهده دارد. برای درک بهتر این سیستم لازم است قدری با مفاهیم اولیه کانتینرها مانند داکر آشنایی داشته باشید که میتوانید در همین سایت درباره آن مطالعه کنید.

کوبرنتیس در واقع نسل سوم از این فنآوریست که در شرکت گوگل از ابتدا به زبان گو (Go) پیاده سازی شده است. دو نسل قبلی آن برگ (Borg) نام داشته که پیاده سازی آن به زبان سی پلاس پلاس بوده است و گوگل همچنان از آن در محیط عملیاتی استفاده میکند.

در کوبرنتیس یک یا چند کانتینر که به صورت مشترک برنامه ای کاربردی را تشکیل میدهند، به صورت واحدی جداگانه به نام پاد (pod) دسته بندی میشوند تا مدیریت و کشف (discovery) آنها آسانتر شود.

مزیت کلیدی کوبرنتیس در این است که بدون نیاز به یک تیم بزرگ برای راه اندازی و نگهداری، میتوان آن را در مقیاس وسیع برای اجرای میلیاردها برنامه کاربردی به کار گرفت. از مزایای دیگر آن قابلیت اجرا بر روی بسترهای متفاوت است؛ از سرورهای یک مرکز داده های خصوصی گرفته تا سرویسهای ابری عمومی، یا حتی ترکیبی از هر دو.

به طور کلی هر شرکتی که یک یا چند سرویس نرم افزاری اجرا میکند به طور بالقوه در مرحله اول به کانتینرها و سپس به سیستمی مانند کوبرنتیس نیاز دارد. دلیل اصلی نیاز به کانتینرهاامکان جداسازی برنامه ها (isolation) از یکدیگر در بهترین سطح ممکن است تا فرآیند تولید، تست و در نهایت اجرا بر روی یک زیرساخت مشترک تسهیل شود.

در مرحله بعد نیاز به کوبرنتیس پیدا میشود تا اجرای این کانتینرها بر روی دسته ای (cluster) از ماشینها را تا حد زیادی اتوماتیک کند. در واقع کوبرنتیس مانند سیستم عاملیست که بر روی تمام سرورهای شما به صورت یکپارچه اجرا میشود و به شما این امکان را میدهد که دیگر نگران هیچ ماشینی به طور خاص نباشید. اگر ظرفیت کافی در زیرساخت شما وجود داشته باشد، این سیستم به راحتی میتواند از دست دادن یک یا چند ماشین را برای شما به گونه ای مدیریت کند که کاربران هیچ تغییری در سرویسهای در حال اجرا بر روی این بستر احساس نکنند.

این سیستم امکاناتی مانند بررسی سلامت (health check) و تکثیر (replication) برنامه ها را به راحتی بر روی مجموعه سرورهای شما فراهم میکند. از دیگر قابلیتهای آن نیز ویژگیهای مناسب و سطح بالا، مانند کشف سرویسها (service discovery)، توزیع بار (load balancing) و مدیریت پیکربندی (configuration management) است که برای ساخت سیستمهایی با معماری مایکروسرویسی (micro-service architecture) حیاتیست و برای تیمهای شما امکان تولید، تغییر و مقیاس پذیری (scaling) بخشهای مختلف هر سرویس را بر اساس شرایط مورد نیاز فراهم میکند.

اگر چه بسیاری از نرم افزارها سعی میکنند این قابلیتها را در سطح برنامه کاربردی پیاده کنند ولی تجربه نشان داده است که این کار با وجود صرف زمان و انرژی زیاد در اکثر موارد منجر به یک راه حل شکننده و غیر قابل نگهداری میشود که برای برنامه های کاربردی بعدی باید از نو تکرار شود. کوبرنتیس با انتقال این دغدغه ها به لایه مناسب و آزاد کردن برنامه کاربردی از قید و بند آنها به شما کمک میکند که وقت و انرژی تیم را در جای مناسب و برای تولید ویژگیهای خاص برنامه کاربردی خودتان صرف کنید.


نوشته شده توسط :

وحید صمدیان وحید صمدیان



چهارشنبه, 10 آبان 1396

تعداد بازديد : 1636

برچسب ها : LINUX

3.0 ستاره