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