آموزش میکروسرویس ها (Microservices)

آموزش میکروسرویس ها

آنچه در این صفحه می خوانید:

معرفی میکروسرویس ها (Microservices)

میکروسرویس که همچنین به عنوان معماری میکروسرویس (Microservice architecture) شناخته می شود، سبک معماری است که برنامه را به عنوان مجموعه ای از سرویس ها، بنا می کند. میکروسرویس نوعی سبک ساختاری معماری سرویس گرا (SOA)، برنامه ای را به عنوان مجموعه ای از سرویس های اتصال آزاد تنظیم می کند. در معماری میکروسرویس، سرویس های کوچک و بزرگ و پروتکل ها سبک وزن هستند.

هیچ تعریف واحدی برای میکروسرویس وجود ندارد و با نظر های اجماع شده با گذشت زمان در صنعت تکامل یافته است. برخی از خصوصیات تعریف شده که اغلب به آنها استناد می شود عبارتند از:

  • سرویس ها در معماری میکروسرویس (MSA) اغلب فرآیندی هستند که برای دستیابی به یک هدف با استفاده از پروتکل های فناوری آگونیستی مانند HTTP از طریق شبکه ارتباط برقرار می کنند.
  • سرویس ها در یک معماری میکروسرویس بطور مستقل قابل استفاده هستند.
  • سرویس حول قابلیت های تجاری سازماندهی می شوند.
  • بسته به اینکه متناسب با چه مواردی باشد، سرویس ها با استفاده از زبان های برنامه نویسی مختلف، پایگاه داده، سخت افزار و محیط نرم افزار قابل اجرا هستند.

میکروسرویس یک لایه در برنامه یکپارچه نیست (به عنوان مثال، کنترل کننده وب، یا بک اند - برای-فرانت اند). در عوض، یکی از ویژگی های تجاری است که دارای رابط های روشن است و ممکن است از طریق مؤلفه های داخلی خود، معماری لایه ای را پیاده سازی کند. از دیدگاه استراتژی، میکرو سرویس ها در اصل از فلسفه یونیکس "یک کار را انجام داده و آن را خوب انجام می دهند" پیروی می کند. مارتین فاولر معماری مبتنی بر میکروسرویس را دارای ویژگی های زیر توصیف می کند:

  • خود را به یک فرآیند توسعه نرم افزار تحویل مداوم متصل می کند. تغییر بخش کوچکی از برنامه فقط به رفرش و استفاده مجدد یک یا تعداد کمی از سرویس ها نیاز دارد.
  • به اصولی مانند اصل گرانولی سرویس و توسعه مبتنی بر تجارت پایبند است.

معمولا میکروسرویس برای برنامه های نیتیو کلود، محاسبات بدون سرور و برنامه های کاربردی با استفاده از استقرار کانتینر سبک وزن اتخاذ می شود. به دلیل تعداد زیاد سرویس ها (در مقایسه با پیاده سازی برنامه های یکپارچه)، تحویل مداوم غیر متمرکز و دواپس (DevOps) با نظارت بر سرویس جامع، برای توسعه موثر، نگهداری و بهره برداری از چنین برنامه هایی ضروری هستند. نتیجه و دلیل منطقی پیروی از این رویکرد این است که میکروسرویس های پرایویت می توانند به صورت جداگانه ارزیابی شوند.

ویژگی های میکروسرویس ها (Microservices)

مولتی کامپوننت

با استفاده از نرم افزارهای ساخته شده به عنوان میکروسرویس ها، می توان به خدمات مختلفی تقسیم شد. چرا؟ به گونه ای که هر یک از این سرویس ها می توانند مستقر شوند و بعد از آن به طور مستقل از بین بروند بدون اینکه یکپارچگی یک برنامه به خطر بیفتد. در نتیجه، شما ممکن است به جای نیاز به استقرار کل برنامه ها، نیاز به تغییر یک یا چند سرویس مجزا داشته باشید. اما این رویکرد دارای نقاط ضعف، از جمله فراخوانی های از راه دور است.

ساخته شده برای تجارت

میکروسرویس ها معمولاً پیرامون قابلیت ها و اولویت های تجاری سازماندهی می شود. بر خلاف یک رویکرد سنتی توسعه یکپارچه - که در آن تیم های مختلف تمرکز ویژه ای دارند، به عنوان مثال UI ها، پایگاه داده ها، لایه های فناوری یا منطق سمت سرور، میکروسرویس ها از تیم های عملکردی استفاده می کند. وظایف هر تیم بر این اساس است که محصولات خاصی را بر اساس یک یا چند سرویس شخصی که از طریق گذرگاه پیام ارتباط برقرار می کنند، بسازند.

مسیریابی ساده

میکروسرویس ها تا حدودی مانند سیستم کلاسیک UNIX عمل می کنند: آنها درخواست هایی دریافت می کنند، آنها را پردازش می کنند و پاسخی را ایجاد می کنند. این برخلاف بسیاری از محصولات دیگر مانند ESBs (باس های سرویس سازمانی) است که در آن از سیستم های پیشرفته برای مسیریابی پیام ها و اعمال قوانین تجارت استفاده می شود.

غیر متمرکز

از آنجایی که میکروسرویس ها شامل فناوری ها و سیستم عامل های مختلفی است، روش های قدیمی مدیریت حالت متمرکز بهینه نیست. حاکمیت غیر متمرکز مورد حمایت جامعه میکروسرویس ها است زیرا توسعه دهندگان آن تلاش می کنند تا ابزارهای مفیدی را تولید کنند که در این صورت دیگران می توانند برای حل همان مشکلات استفاده کنند. درست مانند حاکمیت غیرمتمرکز، معماری میکروسرویس نیز به نفع مدیریت داده غیر متمرکز است. سیستم های یکپارچه از یک پایگاه داده منطقی واحد در برنامه های مختلف استفاده می کنند. در یک برنامه میکرو سرویس، هر سرویس معمولاً بانک اطلاعاتی مربوط به خود را مدیریت می کند.

مقاومت در برابر خرابی

میکرو سرویس ها برای مقابله با شکست طراحی شده اند. از آنجا که چندین سرویس منحصر به فرد و متنوع با هم ارتباط برقرار می کنند، ممکن است یک سرویس به هر دلیلی یا دیگری نتواند شکست بخورد (به عنوان مثال، هنگامی که تأمین کننده در دسترس نباشد). با این حال، نظارت بر میکرو سرویس ها می تواند به جلوگیری از خطر شکست کمک کند.

تکاملی

معماری میکروسرویس یک طراحی تکاملی است و برای سیستم های تکاملی ایده آل است. بسیاری از برنامه ها بر اساس معماری یکپارچه شروع می شوند، اما با توجه به الزام های پیش بینی نشده، می توان به آرامی به میکروسرویس هایی که از طریق API ها بر روی یک معماری یکپارچه قدیمی تعامل دارند، افزود.

مزایای میکروسرویس ها (Microservices)

فواید تجزیه یک برنامه در سرویس های کوچکتر بیشمار است، ازجمله:

  • مدولار بودن: باعث می شود برنامه کاربردی، درک، توسعه، تست آن در برابر فرسایش تدریجی معماری نرم افزار آسان تر شود. این مزیت اغلب در مقایسه با پیچیدگی معماری های یکپارچه مطرح می شود.
  • مقیاس پذیر: از آنجا که میکروسرویس ها بطور مستقل از یکدیگر پیاده سازی و مستقر شده اند، یعنی آنها در فرآیندهای مستقل اجرا می شوند، می توانند به طور مستقل کنترل و مقیاس شوند.
  • ادغام سیستم های ناهمگن و وراثت: میکروسرویس ها به عنوان وسیله ای مناسب برای نوسازی نرم افزار یکپارچه در نظر گرفته شده است.
  • توسعه توزیع: میکروسرویس ها با ایجاد تیم های کوچک مستقل برای توسعه، استقرار و مقیاس کردن سرویس های مربوطه به طور مستقل و به موازات یکدیگر قرار می گیرند.میکروسرویس ها ادغام مداوم، تحویل مداوم و استقرار را تسهیل می کنند.

تکنولوژی میکروسرویس ها (Microservices)

میکرو سرویس های رایانه ای می توانند به زبان های مختلف برنامه نویسی پیاده سازی شوند و از زیرساخت های مختلفی استفاده کنند. بنابراین، مهمترین انتخاب فناوری، نحوه ارتباط میکروسرویس ها با یکدیگر (همزمان، غیر همزمان، یکپارچه سازی UI) و پروتکل های مورد استفاده برای ارتباطات (RESTful HTTP، messaging، گرف کیوال ...) است. در یک سیستم سنتی، بیشتر انتخاب های فناوری مانند زبان برنامه نویسی بر کل سیستم تأثیر می گذارد. بنابراین، رویکرد انتخاب فناوری ها کاملاً متفاوت است.

سرویس مش

در یک سرویس مش، هر نمونه سرویس با نمونه ای از یک سرور پروکسی معکوس، به نام یک پروکسی سرویس، پراکسی sidecar یا sidecar جفت می شود. نمونه سرویس و پروکسی sidecar یک کانتینر را به اشتراک می گذارند و کانتینر توسط یک ابزار ارکستر سازی ظروف مانند کوبرنتیز، Nomad، داکر یا DC / OS اداره می شوند. پراکسی سرویس ها وظیفه ارتباط با سایر سرویس ها را بر عهده دارند و می توانند از قابلیت هایی مانند تأیید اعتبار و مجوز، ارتباطات ایمن و سایر موارد پشتیبانی کنند.

مقایسه سیستم عامل ها

اجرای یک معماری میکرو سرویس بسیار دشوار است. نگرانی های زیادی وجود دارد که هر معماری میکروسرویس نیاز به رفع آن دارد. نتفلیکس برای پشتیبانی از برنامه های داخلی خود، یک فریمورک میکرو سرویس ارائه داد و سپس بخش های زیادی از آن فریمورک را باز کرد.

آیا این نوشته را دوست داشتید؟
packt-managing-microservices-in-practice

مدیریت میکرو سرویس ها در عمل


این دوره به شما در مورد موارد اساسی خوشه Kubernetes و اینکه چگونه می تواند میکرو سرویس های شما را مدیریت کند، راهنمایی می دهد. شما در مورد پادها، استق...

1400/03/13 850 بازدید
packt-hands-on-microservices-with-go-and-mongodb

آموزش میکروسرویس ها با Go و MangoDB


چگونه می توان با استفاده از میکروسرویس ها سیستمی با کارایی بالا و مقیاس پذیر، یک معماری سرویس گرا ایجاد کرد؟ این یک مشکل دنیای واقعی است و مهم این است...

1400/02/15 712 بازدید
linkedin-java-microservices-with-graalvm

آموزش میکروسرویس های جاوا با GraalVM


Frank Frank Moley ابتدا نحوه استفاده از GraalVM را با مصنوعات کد موجود نشان می دهد، بنابراین می توانید مزایای عملکرد کد خام را مشاهده کنید. وی سپس نحو...

1399/12/19 533 بازدید
pluralsight-5-ideas-for-writing-better-cloud-native-microservices-codemash

5 ایده برای نوشتن بهتر میکروسرویس های کلود نیتیو: CodeMash


در این دوره، Todd Sharp ایده های جدیدی را برای کمک به شما در توسعه کارآیی و نگهداری میکروسرویس ها نشان می دهد. شما روش های جدیدی برای حل برخی از چالش ...

1399/10/27 717 بازدید
pluralsight-api-gateways-and-microservices-codemash

آموزش API Gateways و میکروسرویس ها: CodeMash


شما در این دوره، می آموزید که چگونه از API Gateway استفاده کنید تا میکروسرویس های شما بتوانند کاملاً به هم متصل شده و از قدرت خود استفاده کنند. Santos...

1399/10/27 1457 بازدید
pluralsight-your-microservices-transition

انتقال میکروسرویس های شما


شما در این دوره، با استفاده از الگوی اپلیکیشن strangler، انتقال به یک اپلیکیشن یکپارچه از معماری میکروسرویس را بررسی خواهید کرد. در ابتدا، اصول الگوی ...

1399/09/22 1254 بازدید
linkedin-creating-your-first-spring-boot-microservice

ایجاد اولین میکروسرویس Spring Boot


این دوره برای توسعه دهندگان باتجربه جاوا در نظر گرفته شده است که می خواهند به سرعت میکروسرویس هایی را که از طریق (Java persistence API (JPA با پایگاه ...

1399/05/25 2143 بازدید
linkedin-microservices-asynchronous-messaging

آموزش میکروسرویس ها: پیام رسانی غیرهمزمان


در این دوره، Frank Moley به توسعه دهندگان نرم افزار که موظف به ساخت اپلیکیشن های بزرگ هستند، نشان می دهد که چگونه می توانند در ورای فراخوانی های RESTf...

1399/05/09 2805 بازدید
packtpub-grpc-java-master-class-build-modern-api-and-microservices

دوره مسترکلاس gRPC (جاوا) - ساخت API مدرن و میکروسرویس ها


در این دوره با تئوری gRPC برای درک نحوه کارکرد gRPC، مقایسه gRPC و پارادایم REST API، نوشتن تعاریف سرویس gRPC در فایل های proto. و ایجاد سرور و کد کلا...

1398/09/01 7296 بازدید
linkedin-devops-foundations-microservices

آموزش اصول دواپس - میکروسرویس ها


این دوره بر روی ابزارها، فرآیندها و استراتژی های لازم جهت اتخاذ معماری میکروسرویس ها متمرکز است. در این دوره با تست کردن استراتژی ها، ادغام و تحویل مد...

1398/07/23 4365 بازدید زیرنویس دارد
packtpub-building-rest-based-microservices-with-lumen

ساخت میکروسرویس های مبتنی بر REST با Lumen


در این دوره با ساخت RESTful API با استفاده از میکروفریمورک Lumen اشنا می شوید. همچنین مفاهیم پیشرفته Lumen مانند احراز هویت، مجوز و ایمن سازی API با ر...

1398/07/08 5251 بازدید
infiniteskills-building-microservice-systems-with-docker-and-kubernetes

ساخت سیستم‌های میکرو سرویس با داکر و کوبرنتیز


در این دوره با نحوه ساخت سیستم‌های میکرو سرویس میزبانی شده با Kubernete، تنظیم‌های پایگاه داده، مسیریابی درخواست و load balancing، مقیاس پذیری و موارد...

1398/06/24 9989 بازدید
packtpub-microservice-development-on-azure-node-js

آموزش توسعه میکروسرویس در آژور - Node.js


این دوره به شما نشان می دهد که چگونه از Azure Building Blocks استفاده کنید تا بتوانید اپلیکیشن های مبتنی بر میکروسرویس Node.js را استقرار کنید. در پای...

1398/06/20 1926 بازدید
packtpub-hands-on-microservices-with-python

آموزش کامل میکروسرویس ها با پایتون


در این دوره با موضوعاتی از قبیل مدل سازی داده، ذخیره سازی داده، نوشتن درخواست های API آشنا می شوید و ایمن سازی، نظارت و مقیاس گذاری میکرو سرویس های خو...

1398/05/28 9198 بازدید
packtpub-hands-on-reactive-microservices-in-net-core

آموزش میکروسرویس های واکنش گرا در NET Core.


در این دوره یک سیستم میکروسرویس واکنش گرای توزیع شده اولیه با استفاده از  .NET Core و Apache Kafka برای ارسال پیام از طریق میکروسرویس ها ایجاد می کنید...

1398/05/21 7987 بازدید
packtpub-microservices-development-on-azure-with-java-video

توسعه میکروسرویس ها روی Azure با جاوا


آموزش تصویری توسعه میکروسرویس ها روی Azure با جاوا...

1397/12/23 1971 بازدید
packtpub-c-microservices-development-on-azure-video

آموزش توسعه میکروسرویس های سی شارپ در Azure 


معماری  Microservice یک روش توسعه سیستم های نرمافزاری است که درطی چند سال گذشته به طور چشمگیری محبوب شده است. معماری میکروسرویس، چالش های جدیدی را بوج...

1397/11/21 2988 بازدید
oreilly-serverless-fundamentals-for-microservices-an-introduction-to-core-concepts-and-best-practices-2

آموزش اصول Serverless برای میکروسرویس ها - مقدمه ای بر مفاهیم اصلی و بهترین شیوه ها


فناوری Serverless یک گزاره جذاب را ارائه می دهد که ما را از بسیاری از کارهای مدیریتی نگران کننده در گذشته آزاد می سازد و به ما فرصت بیشتری برای ساختن ...

1397/10/15 2684 بازدید
packtpub-master-microservices-with-spring-boot-and-spring-cloud-video

آموزش تسلط بر میکروسرویس ها با Spring Boot و Spring Cloud


توسعه خدمات RESTful وب لذتبخش است. ترکیبی از Spring Boot، Spring Web MVC، Spring Web Services و JPA باعث می شود که حتی سرگرم کننده تر نیز باشد. دو بخش...

1397/08/30 5468 بازدید
packtpub-microservices-architecture-video

آشنایی با معماری میکروسرویس ها


همه شرکت های بزرگ اکنون به جای معماری یکپارچه از معماری میکروسرویس ها در وب سایت ها و اپلیکیشن ها به دلیل مزایای بسیار آن، استفاده می کنند. پیشگامان m...

1397/08/24 6416 بازدید