داکر یک پلتفرم نرم افزاری برای ساختن اپلیکیشن های مبتنی بر Container ها می باشد. منظور از Container محیط های اجرا و یا Execution Environment های بسیار سبک و کوچک است که میتواند از هسته سیستم عامل به صورت اشتراکی استفاده کنند اما برنامهها را در حالتی ایزوله شده از یکدیگر اجرا نمایند. هرچند که Container ها به عنوان یک مفهوم مدت زیادی است که در حوزه توسعه نرمافزار مورد استفاده قرار می گیرند، پلتفرم داکر به عنوان یک پروژه Open Source در سال ۲۰۱۳ آغاز به کار کرد. پلتفرم داکر کمک کرد تا تکنولوژی استفاده از Container ها محبوبتر بشود و علاوه بر این مسائلی از قبیل استفاده از مایکروسرویس ها در توسعه نرمافزار ها و همچنین Containerization را بهبود بخشید.
یکی از اهداف مهم نرم افزارهای مهم توسعه نرم افزارهای مدرن اجرا کردن و نگهداری اپلیکیشن ها بر روی Host و یا Cluster های ایزوله شده از یکدیگر می باشد. این موضوع باعث میشود تا برنامه ها در جنبه های مختلف با یکدیگر تداخل ایجاد نکرده و نگهداری آنها با راحتی بیشتری انجام بشود. به دلیل استفاده کردن از Package ها و Library ها و دیگر کامپوننت های نرم افزاری که برای اجرایی کردن یک نرمافزار به آنها نیاز داریم انجام این کار دشوار خواهد بود. یکی از راهکارهای حل و فصل کردن این مشکل استفاده کردن از ماشین های مجازی می باشد.
استفاده کردن از ماشینهای مجازی باعث می شود تا شما بتوانید نرمافزارهای مختلف را برای یک سخت افزار یکسان قرار بدهید و البته به صورت کاملاً تفکیک شده از یکدیگر اجرا کنید. این موضوع باعث کاهش تضاد بین کامپوننت های نرم افزاری می شود و البته هزینه سخت افزاری را نیز کاهش می دهند. مشکلی که ماشین های مجازی دارند سایز بزرگ آنها است. علاوه بر این، هر ماشین مجازی نیاز به سیستم عامل خاص خود دارد که این موضوع نیز هزینه های خاص خود را خواهد داشت. استفاده از Container ها می تواند محیط های اجرا و یا Execution Environment های ایزوله شده ای را فراهم کند از طرفی هسته و یا Kernel سیستم عامل به صورت مشترک توسط Container ها استفاده میشود. Container ها بسیار سبک وزن تر هستند و نسبت به ماشینهای مجازی منابع کمتری را از سیستم مصرف میکنند. علاوه بر این، آغاز به کار کردن آنها نسبت به ماشینهای مجازی با سرعت بیشتری انجام میشود. مورد بعدی اینکه می توان به سادگی چندین Container مختلف را بر روی یک سخت افزار یکسان قرار داد و در صورت نیاز با حداقل سربار آنها را مورد استفاده قرار داد. Container ها روشی کارآمد تر و دانه ریز تر برای ترکیب کردن کامپوننت های نرم افزاری و استفاده کردن از آنها در اپلیکیشن ها و سرویس های تجاری می باشند. این موضوع باعث میشود تا روال بروزرسانی کردن و حتی نگهداری سیستمهای نرمافزاری بهبود نیز پیدا کند.
تمامی برنامه نویسان و معماران نرم افزاری که قصد توسعه وب اپلیکیشن های مبتنی بر معماری مایکروسرویسی با استفاده از NET Core. و Container ها را دارند میتوانند از این دوره آموزشی متنی رایگان استفاده کنند. یکی از موضوعات بسیار مهم که در این دوره آموزشی به آن پرداخته میشود راهکارهای معماری و توسعه نرم افزارها با استفاده از دو تکنولوژی NET Core. و Docker می باشد. هدف از این دوره آموزشی ارائه راه حل های کاربردی طراحی و معماری نرم افزارها بدون تمرکز بر روی زیرساختهایی از قبیل Cloud و یا On-premise می باشد. در واقع در این دوره آموزشی شما با مباحث اساسی توسعه و طراحی نرم افزارهای مایکروسرویسی آشنا شده و تصمیمات مربوط به زیرساخت نرم افزار مورد نظر خود را در مراحل بعدی انجام خواهید داد.
به همین دلیل این دوره آموزشی متنی به هیچ زیر ساخت خاصی وابستگی ندارد و میتواند فارغ از هر انتخابی در رابطه با زیرساخت، مورد استفاده قرار بگیرد. از طرفی مباحث مطرح شده در این دوره آموزشی، مبتنی بر محیط های توسعه نرمافزار هستند. به عبارت دیگر شما برای درک هر چه بهتر مفاهیم ارائه شده در این دوره آموزشی می بایست با تکنولوژیهای NET Core. و داکر آشنا باشید. اگر شما نیز نیاز دارید تا بتوانید با استفاده از اپلیکیشن های مبتنی بر NET Core. و داکر، معماری مایکروسرویسی را پیاده سازی کنید می توانید از مطالب ارائه شده در این دوره آموزشی حداکثر استفاده را ببرید. طراحان نرم افزار و معماران و البته برنامه نویسان می توانند به منظور پیادهسازی اپلیکیشنهای مورد نظر خود با استفاده از NET Core. و Container های داکر از این دوره آموزشی استفاده کنند. در این دوره آموزشی موضوعات مختلفی از قبیل Container ها در Docker و تفاوتهای مربوط به .NET Framework و NET Core. به عنوان دو development framework بررسی خواهند شد.
علاوه بر این در رابطه با معماری مایکروسرویس ها نیز صحبت خواهیم کرد. محتوای این دوره آموزشی از طرفی بسیار مناسب معماران نرم افزاری است که میخواهند درگیر جزئیات پیاده سازی و کد نویسی نرم افزار نشوند. البته در یک دوره آموزشی دیگر قصد داریم که در رابطه با فرآیند توسعه نرم افزارهای مبتنی بر داکر به طور تخصصی تری صحبت کنیم و بسیاری از الگوهای مایکروسرویس ها را با استفاده از داکر و NET Core. پیاده سازی نماییم. در پایان توصیه میکنیم که حتماً از بسته های آموزشی وب سایت پرووید در رابطه با معماری مایکروسرویس ها و البته تکنولوژی داکر دیدن بفرمایید.