به عنوان خلاصه و نکات کلیدی، موارد زیر مهمترین نتیجه گیری از این راهنما است.
- مزایای استفاده از ظروف راه حل های مبتنی بر کانتینر باعث صرفه جویی در هزینه های مهم می شوند زیرا به کاهش مشکلات استقرار ناشی از وابستگی های ناموفق در محیط های تولید کمک می کنند. کانتینرها به طور قابل توجهی DevOps و عملیات تولید را بهبود می بخشند.
- کانتینرها در همه جا حضور خواهند داشت. کانتینرهای مبتنی بر داکر در حال تبدیل شدن به استاندارد واقعی در صنعت هستند که توسط فروشندگان کلیدی در اکوسیستمهای ویندوز و لینوکس مانند مایکروسافت، آمازون AWS، گوگل و IBM پشتیبانی میشوند. داکر احتمالاً به زودی هم در مراکز داده ابری و هم در مراکز داده در محل در همه جا حاضر خواهد شد.
- کانتینرها به عنوان واحد استقرار. کانتینر داکر در حال تبدیل شدن به واحد استاندارد استقرار برای هر برنامه یا سرویس مبتنی بر سرور است.
- میکروسرویس ها معماری میکروسرویس ها در حال تبدیل شدن به رویکرد ارجح برای برنامه های کاربردی توزیع شده و بزرگ یا پیچیده ماموریت حیاتی بر اساس بسیاری از زیرسیستم های مستقل در قالب خدمات مستقل است. در معماری مبتنی بر میکروسرویس، برنامه به عنوان مجموعهای از سرویسها ساخته میشود که به طور مستقل توسعه، آزمایش، نسخهسازی، استقرار و مقیاسبندی میشوند. هر سرویس می تواند شامل هر پایگاه داده مستقل مرتبط باشد.
- طراحی دامنه محور و SOA. الگوهای معماری میکروسرویس ها از معماری سرویس گرا (SOA) و طراحی دامنه محور (DDD) ناشی می شوند. هنگامی که میکروسرویس هایی را برای محیط هایی با نیازها و قوانین تجاری در حال تحول طراحی و توسعه می دهید، مهم است که رویکردها و الگوهای DDD را در نظر بگیرید.
- چالش های میکروسرویس ها میکروسرویس ها قابلیت های قدرتمند زیادی مانند استقرار مستقل، مرزهای زیرسیستم قوی و تنوع فناوری را ارائه می دهند. با این حال، آنها همچنین بسیاری از چالشهای جدید مرتبط با توسعه برنامههای کاربردی توزیعشده، مانند مدلهای داده تکهتکه و مستقل، ارتباط انعطافپذیر بین میکروسرویسها، سازگاری نهایی و پیچیدگی عملیاتی را که از تجمیع اطلاعات ثبت و نظارت از چندین میکروسرویس ناشی میشود، مطرح میکنند. این جنبهها سطح پیچیدگی بسیار بالاتری را نسبت به کاربردهای سنتی یکپارچه معرفی میکنند. در نتیجه، تنها سناریوهای خاص برای کاربردهای مبتنی بر میکروسرویس مناسب هستند. اینها شامل برنامه های کاربردی بزرگ و پیچیده با زیرسیستم های چندگانه در حال تکامل است. در این موارد، ارزش سرمایه گذاری در معماری نرم افزاری پیچیده تر را دارد، زیرا چابکی طولانی مدت و نگهداری برنامه ها را بهتر می کند.
- ظروف برای هر کاربرد کانتینرها برای میکروسرویس ها مناسب هستند، اما می توانند برای برنامه های یکپارچه مبتنی بر چارچوب سنتی دات نت، هنگام استفاده از کانتینرهای ویندوز نیز مفید باشند. مزایای استفاده از Docker، مانند حل بسیاری از مشکلات استقرار تا تولید و ارائه پیشرفتهترین محیطهای Dev و Test، برای بسیاری از انواع مختلف برنامهها اعمال میشود.
- CLI در مقابل IDE. با ابزارهای مایکروسافت، می توانید برنامه های کاربردی دات نت را با استفاده از رویکرد دلخواه خود توسعه دهید. با استفاده از Docker CLI و Visual Studio Code می توانید با یک CLI و یک محیط مبتنی بر ویرایشگر توسعه دهید. یا می توانید از یک رویکرد متمرکز بر IDE با ویژوال استودیو و ویژگی های منحصر به فرد آن برای Docker استفاده کنید، مانند اشکال زدایی چند کانتینر.
- برنامه های کاربردی ابری انعطاف پذیر در سیستم های مبتنی بر ابر و به طور کلی سیستم های توزیع شده، همیشه خطر شکست جزئی وجود دارد. از آنجایی که مشتریان و خدمات فرآیندهای جداگانه ای هستند (کانتینرها)، یک سرویس ممکن است نتواند به موقع به درخواست مشتری پاسخ دهد. به عنوان مثال، ممکن است یک سرویس به دلیل نقص جزئی یا تعمیر و نگهداری از کار بیفتد. ممکن است سرویس بیش از حد بارگذاری شود و به آرامی به درخواست ها پاسخ دهد. یا ممکن است برای مدت کوتاهی به دلیل مشکلات شبکه قابل دسترسی نباشد. بنابراین، یک برنامه مبتنی بر ابر باید آن شکست ها را بپذیرد و یک استراتژی برای پاسخ به این شکست ها داشته باشد. این استراتژیها میتوانند شامل سیاستهای امتحان مجدد (ارسال مجدد پیام یا درخواست مجدد) و پیادهسازی الگوهای قطع کننده مدار برای جلوگیری از بار نمایی درخواستهای مکرر باشند. اساساً، برنامههای مبتنی بر ابر باید مکانیسمهای انعطافپذیری داشته باشند - چه بر اساس زیرساختهای ابری یا سفارشی، مانند برنامههای سطح بالا که توسط ارکستراتورها یا اتوبوسهای خدماتی ارائه میشوند.
- امنیت. دنیای مدرن ما از کانتینرها و ریزسرویس ها می تواند آسیب پذیری های جدیدی را آشکار کند. راههای مختلفی برای پیادهسازی امنیت برنامههای کاربردی، بر اساس احراز هویت و مجوز وجود دارد. با این حال، امنیت کانتینر باید اجزای کلیدی دیگری را در نظر بگیرد که منجر به برنامههای کاربردی ذاتاً ایمنتر میشود. یک عنصر حیاتی در ساخت برنامههای ایمنتر داشتن یک راه امن برای برقراری ارتباط با برنامهها و سیستمهای دیگر است، چیزی که اغلب به اعتبار، رمزها، رمزهای عبور و موارد مشابه نیاز دارد که معمولاً به عنوان اسرار برنامه از آن یاد میشود. هر راه حل ایمن باید از بهترین شیوه های امنیتی پیروی کند، مانند رمزگذاری اسرار در حین حمل و نقل و در حالت استراحت، و جلوگیری از افشای اسرار زمانی که توسط برنامه نهایی مصرف می شود. این اسرار باید مانند زمانی که از Azure Key Vault استفاده می کنید، با خیال راحت ذخیره و نگهداری شوند.
- ارکسترها. ارکسترهای مبتنی بر کانتینر، مانند سرویس Azure Kubernetes و Azure Service Fabric بخش کلیدی هر میکروسرویس و برنامه کاربردی مبتنی بر کانتینر هستند. این برنامه ها پیچیدگی بالا، نیازهای مقیاس پذیری را به همراه دارند و در حال تکامل دائمی هستند. این راهنما ارکسترها و نقش آنها را در راه حل های مبتنی بر میکروسرویس و کانتینر معرفی کرده است. اگر نیازهای برنامه شما را به سمت برنامه های پیچیده کانتینری سوق می دهد، جستجوی منابع اضافی برای یادگیری بیشتر در مورد ارکستراتورها مفید خواهد بود.
- ۰۱/۱۱/۲۹