کتاب میکروسرویس
- عنوان کتاب (به زبان فارسی): میکروسرویس
- عنوان کتاب (به زبان انگلیسی): Micro service
- نام کامل نویسنده: مهندس علیرضا ارومند
- برنامهریزی واجرا: شرکت فنآوری اطلاعات نیک آموز
- تاریخ انتشار: 1399
- ناشر: کلید آموزش
- تعداد صفحات: 183
معرفی کتاب “میکروسرویس چیست؟”
درباره نویسنده کتاب “میکروسرویس چیست”
کتاب میکروسرویس نوشته شده توسط مهندس علیرضا ارومند دارای فوق لیسانس نرمافزار از دانشگاه شیراز است. وی هماکنون به عنوان Technical manager شرکت داتین، درحوزه توسعه سیستمهای بانکداری مشغول به فعالیت است.
مهندس علیرضا ارومند در فصل اول کتاب ابتدا درباره میکروسرویس توضیح می دهد و درباره مزایا و معایب میکروسرویس نکاتی را مطرح میکند. در فصل دوم کتاب میکروسرویس درباره راه های ارتباطی با میکروسرویس ابتدا روش تعامل مستقیم را معرفی و پس از بیان مشکلات آن، راهکار استفاده از روش API Gateway برای تعامل با میکروسرویس را ارایه میدهد.
در فصل سوم کتاب میکروسرویس، هر چه بیشتر با راه ارتباطی API برای تعامل با میکروسرویس ها آشنا می شویم.
فصل چهارم کتاب “میکروسرویس چیست” به تکنولوژی ارتباطی بین میکروسرویس ها و کلاینت اختصاص دارد. از تکنولوژی های Sync و Async تا سروریس RESTFUL و موارد امنیتی در روش های ارتباطی. پایان فصل نیز درباره قالبهای محبوب JSON و XML است
فصل پنجم کتاب به آشنایی با Service Discovery و الگوهای آن می پردازذ.
مدیریت دادهها در میکروسرویسها موضوع فصل ششم کتاب میکروسرویس چیست می باشد. در این فصل درباره مشکلات دادههای توزیع شده در میکروسرویسها صحبت میشود و استفاده از Eventها به عنوان راهکار این مشکلات معرفی می شود.
با توجه به اهمیت امنیت داده ها، در فصل هفتم کتاب “میکروسرویس چیست” با تاریخچه، نحوه امن کردن نرم افزارهای یکپارچه آشنا می شویم.
پس از این موارد نوبت به نصب و استفاده از میکروسرویس می رسد که در فصل هشتم درباره آن میخوانیم.
اکنون زمان مهاجرت به معماری میکروسرویس است. پس در فصل نهم کتاب با نحوه مهاجرت به میکروسرویس آشنا می شویم.
در دو فصل انتهایی با میکرو فرانت اند اشنا می شویم و مشکلاتی که با این روش حل می شود را بیشتر می شناسیم.
در ادامه خلاصله از پیش گفتار کتاب میکروسرویس را مشاهده میکنید.
خلاصهای از پیشگفتار کتاب میکروسرویس
کتاب میکروسرویس کتاب ویژهای در دنیای نرمافزارها است. دنیایی به سرعت در حال گسترش است و شرکتهای بزرگ همواره کسب و کارهای خود را بر اساس نرمافزارها بنا نهادهاند. با توجه به بازار کسب و کار، لازم است نرمافزارها توانایی رقابت را ایجاد کنند. برای داشتن نرمافزاری قابل رقابت باید چندین ویژگی مختلف در هر نرمافزاری وجود داشته باشد. با توجه به سرعت تغییر و گسترش این بازار، نرمافزارها باید قابلیت تغییر سریع داشته باشند، به علاوه پایداری بالایی داشته باشند. نرمافزارها باید امکان پاسخ به تعداد زیادی درخواست را دارا باشند و از امنیت بالایی برخوردار باشند. همه این دلیل در حال حاضر معماری میکروسرویس به عنوان یکی از به روزترین روشهای توسعه نرمافزار توسط بسیاری از شرکتهای بزرگ مورد استفاده قرار گرفته است.
در چنین شرایطی همه ارکان توسعه نرمافزار تحت تاثیر قرار گرفته است. یکی از این ارکان اساسی معماری نرم افزار است. معماری سنتی و یکپارچه گذشته دیگر توانایی همراهی با این سرعت تغییرات را دارا نیست. ابتدا به بررسی دلایل عدم کاربردی بودن معماریهای سنتی پرداخته و محاسن و راهکارهای میکروسرویسها را برای رفع مشکلات معماری یکپارچه بیان خواهیم کرد. در بخش بعد به با توجه به ماهیت توزیع شده سیستمهای میکروسرویس در مورد ارتباط بین سرویسهای مختلف و چالشهای ایجاد شده صحبت خواهد شد.
چالشهایی از قبیل تعیین حوزه هر سرویس، مدیریت دادههای توزیع شده، برقراری امنیت در معماری جدید و استفاده از ابزارها و روشهای جدید بخشی از این پیچیدگیها و چالشها است که باید به آنها جواب داده شود.
دنیا قبل از میکروسرویس به چه صورت بود؟
فرض کنید شما برای توسعه یک نرمافزار دعوت به همکاری شدهاید. از شما خواسته شده است تا یک CMS خبری توسعه بدهید که کارش بسیار ساده است. خبرنگارها امکان ثبت اخبار متنی دارند، دبیرها و سردبیرها امکان انتخاب و انتشار اخبار در صفحات سایت دارند و در نهایت کاربران سایت امکان مشاهدهی مطالب سایت را خواهند داشت.
از آنجا که شما یک توسعهدهنده حرفهای هستید احتمالا سراغ یک ابزار خوب و یک ساختار خوب و تمیز خواهید رفت، مثلا معماری Hexagonal یا معماری Onion برای توسعه انتخاب میکنید و در نهایت یک نرم افزار بسیار تمیز توسعه میدهید. در چنین شرایطی احتمالا منطق برنامه در مرکز برنامه قرار گرفته و جاهایی که نیاز به ارتباط با زیرساخت و استفاده از ابزار دارید به جای وابسته شدن به تکنولوژی و زیرساخت از اینترفیسها استفاده میکنید و وابستگیها را به خارج از دامنه اصلی برنامه هدایت میکنید خروجی مناسب برای برنامه خودتان طراحی و پیادهسازی میکنید.
پیش به سوی جهنم!
از قدیم گفتند: “هیچ ارزانی بیحکمت نیست” اگر بخواهیم به زبان برنامهنویسی ترجمه کنیم میشود “هیچ سادگی بدون محدودیت نیست.” هر نرمافزار و پروژهای در صورتی که موفق بشود قطعا تمایل به رشد دارد و موفقیت بیشتر پروژه موجب رشد بیشتر پروژه خواهدشد. در نهایت بعد از مدتی پروژه کوچک و ساده ما تبدیل به هیولایی بزرگ و وحشتناک خواهد شد.
اما ممکن است به این فکر کنید که زیاد شدن حجم کدها در طول دوران توسعه نرمافزار و تغییرات آن چه مشکلی میتواند داشته باشد؟ در ادامه به چند مورد از این مشکلات خواهیم پرداخت.
مشکل اول:
بزرگترین مشکل این نرمافزارها پیچیدگی بیش از حد این برنامهها است. معمولا این نرمافزارها در طول سالیان آنقدر بزرگ و پیچیده میشوند که درک درست از آن غیرممکن میشود.
مشکل دوم:
سورس کد حجیم میتواند باعث پایین آمدن سرعت توسعه نرمافزار شود.
مشکل سوم:
احتمالا با داشتن یک سیستم بزرگ شما با عدم توانایی در انتشار بهبودها و توسعههای کوچک روبرو خواهید شد.
مشکل چهارم:
عدم استفاده بهینه از منابع یکی دیگر از مشکلات اساسی توسعه نرمافزار به این شکل است.
مشکل پنجم:
کل برنامه در یک سیستم و در قالب یک پروسه اجرا خواهدشد. پس اگر ایرادی در هر یک از قسمتهای برنامه بهوجود بیاید،
تمامی قسمتهای برنامه از کار خواهند افتاد و کل برنامه تا زمان رفع مشکل و نصب نسخه جدید از دسترس خارج خواهد بود.
مشکل ششم:
عدم توانایی در به کارگیری ابزارها و تکنولوژیهای جدید، یکی دیگر از ایرادات این روش توسعه نرم افزار است.
پیشنهاد های کتاب eBPM به شما : کتاب ناخدایی دیجیتال و کتاب مدلسازی فرایند
برای مشاهده و معرفی کتابهای تخصصی و فیلمهای آموزشی بیشتر میتوانید به سایت eBPM مراجعه کنید.