دانش خود را در Containers و Linux به سطح بعدی ببرید. لازم نیست شما یک کانتینر یا لینوکس حرفه ای باشید. ما از اصول اولیه شروع خواهیم کرد.
این دوره چه تفاوتی با دوره های دیگر در همین موضوع دارد؟ این یک مکمل کامل برای دوره های دیگر در این موضوع خواهد بود. این دوره رویکردی از پایین به بالا دارد، با تمرکز قوی بر مکانیسمهای اصلی که کانتینرها را ممکن میسازند - فضاهای نام، سیستمهای فایل همپوشانی و Cgroups.
آیا تا به حال از خود پرسیده اید که کانتینرها چگونه کار می کنند؟ نه، منظور من فقط ایجاد یک Dockerfile یا یک فایل Yaml نیست. آیا تا به حال از خود (یا دیگران) پرسیده اید که مکانیسم های کلیدی که ما را قادر می سازد برنامه ای را ایزوله کنیم یا میزان CPU یا حافظه آن را کنترل کنیم چیست؟
چگونه ممکن است که یک برنامه در همان ماشین فیزیکی مانند سایر برنامه ها اجرا شود، اما از آنها اطلاعی نداشته باشد؟ فناوری هایی مانند Docker چگونه آن را محقق می کنند؟ برای بسیاری از ما Containers و Kubernetes Pods فقط یک جعبه سیاه هستند. اما آنها نباید باشند. در این دوره، مکانیسمهای اساسی که کانتینرها را ممکن میسازد را یاد خواهید گرفت. ما نگاهی عمیق به Namespaces، Cgroups و Overlay FS خواهیم داشت و خواهیم فهمید که چگونه آنها با هم ترکیب می شوند و Containers را به ما می دهند.
دوره عملی: مفاهیم با مثالهای عملی مفصل در طول دوره نشان داده میشوند. شما به یک ماشین مجازی اوبونتو که من برای دموها استفاده کرده ام دسترسی خواهید داشت. این دوره شامل ترکیب خوبی از تئوری و دمو برای نشان دادن مفاهیم است.
آنچه در این دوره خواهید آموخت در اینجا آمده است:
Namespaces: ما با نحوه فعال کردن Namespaces، جداسازی، مکانیزم کلیدی در کانتینرسازی، شروع خواهیم کرد. ما نگاهی دقیق به انواع مختلف فضاهای نام - PID، MNT، IPC، USER و UTS، با مثالهای عملی برای نشان دادن هر یک از این فضاهای نام خواهیم داشت.
Overlay Filesystems: در مرحله بعد، ما به این خواهیم پرداخت که فایل سیستم های Overlay چیست و نقش کلیدی آنها در دنیای کانتینرها را درک خواهیم کرد. مجدداً، نمونههای کاری از نحوه ایجاد یک سیستم فایل Overlay و نحوه به اشتراک گذاری ماژولها در چندین کانتینر را خواهیم دید.
Cgroups: ما همچنین نگاهی عمیق خواهیم داشت به اینکه Cgroups چیست و چگونه به ما امکان می دهد تا میزان منابع موجود برای یک برنامه را کنترل کنیم. ما Cgroup های خود را برای کنترل مقدار حافظه و CPU موجود برای یک برنامه مثال ایجاد خواهیم کرد.
مفاهیم مرتبط سیستم: همچنین مفاهیم سیستمی مرتبط مانند سیستم فایل Proc و Mount Points را یاد خواهید گرفت که در درک فضای نام PID و MNT مفید خواهند بود.
برای دموها، به جای برنامههای پیچیده، از مثالهای بسیار ساده و قابل فهم استفاده خواهیم کرد. تمرکز بر روی رانندگی به خانه مفاهیم کلیدی در این دوره خواهد بود.
Docker: هنگامی که درک کاملی از فضاهای نام، سیستمهای فایل پوششی و Cgroups به دست آوردیم، به داکر میرویم. ما متوجه خواهیم شد که Docker Images چیست و چگونه می توان آن را ایجاد کرد. سپس، ما عمیقاً به نحوه عملکرد لایهبندی تصویر در Docker خواهیم پرداخت و آن را به سیستم فایل Overlay متصل میکنیم. نمونه های کاری دقیقی برای نشان دادن نحوه عملکرد لایه بندی تصویر در داکر وجود خواهد داشت و ما این تصاویر را لایه به لایه لایه برداری می کنیم. در نهایت، با استفاده از مثالهای کاری ملموس، نحوه عملکرد CGroupها را در پشت صحنه زمانی که مقدار CPU یا حافظه موجود در یک ظرف Docker را کنترل میکنیم، نشان خواهیم داد.
Kubernetes: ما به ایده Pod، چرایی وجود آن و همچنین ایجاد یک Pod فقط با استفاده از Namespaces خواهیم پرداخت. سپس، Kubernetes Pods را ایجاد خواهیم کرد و منابع دیگری مانند Replica Sets و Deployments را درک خواهیم کرد. ما متوجه خواهیم شد که اجزای کلیدی یک هواپیمای کنترلی Kubernetes چیست و چگونه آنها برای کمک به ما در هماهنگی Pods با هم ترکیب می شوند. در نهایت، نشان خواهیم داد که چگونه Cgroup ها دوباره مکانیسم کلیدی هستند که ما را قادر می سازند منابع موجود در یک Pod را کنترل کنیم، مانند CPU و حافظه.
این دوره به تکامل خود ادامه خواهد داد زیرا من همچنان به اضافه کردن موضوعات پیشرفته تر و همچنین شفاف سازی ویدیوها به موضوعات موجود ادامه می دهم.
چرا این دوره؟
چون اصول اولیه تغییر نمی کنند. هنگامی که درک محکمی از این مفاهیم اساسی داشته باشید، در موقعیت مناسبی قرار خواهید گرفت تا هر فناوری ظروف انتخابی را با سهولت و وضوح بسیار بیشتر یاد بگیرید. علاوه بر این، این ایده ها در زمینه های دیگر استفاده می شود - برای مثال Cgroup ها در ماشین های مجازی نیز استفاده می شوند. دانشی که از این دوره به دست می آورید، مجموعه مهارت های شما را گسترش می دهد. با درک کاملی از نحوه کار اشیا زیر کاپوت، ظروف را در نوری جدید خواهید دید.
چه چیزی را باید سر میز بیاورید؟
کنجکاوی و صبر . کنجکاوی برای درک نحوه کار ظروف زیر کاپوت. من عمداً آهسته پیش می روم، به ویژه در ابتدای دوره، زمینه را برای مشکلی که فضاهای نام حل می کند، آماده می کنم. شما باید صبور باشید و ابتدا مشکل را درک کنید، تا بتوانید واقعاً درک کنید که چرا فضاهای نام وجود دارند و چگونه کار می کنند. هنگامی که مشکل و تنظیم داستان را که ما در بیشتر دوره از آن استفاده خواهیم کرد، درک کردید، شروع به درک مفاهیم اصلی خواهید کرد.
پیشزمینه پیشنیاز: اگر سطحی از برنامهنویسی را انجام دادهاید و میتوانید از لینوکس خط فرمان اولیه استفاده کنید، میتوانید ادامه دهید. از شما انتظار نمی رود که در زمینه فناوری های کانتینری مانند Docker یا Kubernetes سابقه ای داشته باشید. من شما را از طریق هر بخش مرتبط مانند سیستم فایل Proc و Mount Points راهنمایی خواهم کرد. همچنین، لازم نیست دانش عمیقی از لینوکس داشته باشید. من پیش زمینه مورد نیاز را هر جا لازم باشد ارائه خواهم داد. اگر بتوانید VM را که به صورت رایگان با این دوره ارائه می شود دانلود و استفاده کنید مفید خواهد بود.
چگونه باید به این دوره نزدیک شوید؟
اول، سعی نکنید این موضوع را در چند هفته جمع کنید - بیشتر، اگر قبلاً با این موضوعات سروکار نداشته اید. از آنجایی که ما عمیقاً به این موضوعات می پردازیم، مهم است که خودتان هم قدم بردارید. در مرحله بعد، زمانی را برای هر بخش اختصاص دهید. مناطقی در هر یک از این بخش ها وجود دارد که زمان بیشتری را می طلبد. به عنوان مثال، Mount Namespaces کاملاً دقیق است و در مورد لایه بندی تصویر نیز صدق می کند. به طور منظم استراحت کنید، ایده ها را دوباره مرور کنید و اجازه دهید آنها در درون خود فرو روند. پس از کلیک کردن، آن را فوق العاده ارزشمند خواهید دید. همچنین مهم است که دست خود را با مثالهای موجود در دموها کثیف کنید، و پس از دریافت ایده، نمونههای خود را امتحان کنید.
سلب مسئولیت:
Docker و نشان Docker علائم تجاری یا علائم تجاری ثبت شده Docker, Inc. در ایالات متحده و سایر کشورها هستند. Docker، Inc. و سایر طرفها نیز ممکن است دارای حقوق علامت تجاری بر اساس سایر شرایط استفاده شده در اینجا باشند. این دوره به هیچ وجه به هیچ وجه وابسته، گواهی، معتبر، یا تایید شده توسط Docker, Inc.
نیست.Kubernetes و لوگوی Kubernetes علائم تجاری یا علائم تجاری ثبت شده بنیاد لینوکس در ایالات متحده و سایر کشورها هستند. بنیاد لینوکس و سایر طرفها نیز ممکن است دارای حقوق علامت تجاری بر روی سایر اصطلاحات استفاده شده در اینجا باشند. این دوره به هیچ وجه به هیچ وجه وابسته، تایید شده، معتبر یا تایید شده توسط Kubernetes یا بنیاد لینوکس نیست.
سیستم های همه چیز
نمایش نظرات