مهدی بابایی
مهدی بابایی
خواندن ۱۲ دقیقه·۲ سال پیش

میکروسرویس چیست؟

میکروسرویس‌ها یک رویکرد معماری و سازمانی برای توسعه نرم‌افزار هستند که در آن نرم‌افزار از سرویس‌های مستقل کوچکی تشکیل شده است که از طریق APIهای کاملاً تعریف شده ارتباط برقرار می‌کنند. این خدمات متعلق به تیم های کوچک و مستقل هستند.


معماری‌های میکروسرویس‌ها، مقیاس‌پذیری و توسعه سریع‌تر برنامه‌ها را آسان‌تر می‌کنند و نوآوری را امکان‌پذیر می‌کنند و زمان ورود به بازار را برای ویژگی‌های جدید تسریع می‌کنند.


معماری یکپارچه در مقابل میکروسرویس ها

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


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


یکپارچه در مقابل میکروسرویس ها

شکستن یک برنامه یکپارچه به میکروسرویس ها


ویژگی های میکروسرویس ها


خود مختار

هر سرویس جزء در معماری میکروسرویس می‌تواند بدون تأثیر بر عملکرد سایر سرویس‌ها توسعه، استقرار، عملیاتی و مقیاس‌بندی شود. سرویس ها نیازی به اشتراک گذاری کد یا پیاده سازی خود با سایر سرویس ها ندارند. هر گونه ارتباط بین اجزای جداگانه از طریق APIهای کاملاً تعریف شده انجام می شود.



تخصصی

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


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


چابکی

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


مقیاس پذیری انعطاف پذیر

میکروسرویس ها به هر سرویس اجازه می دهند تا به طور مستقل برای پاسخگویی به تقاضا برای ویژگی برنامه ای که پشتیبانی می کند، مقیاس بندی شود. این به تیم‌ها امکان می‌دهد تا نیازهای زیرساختی را با اندازه مناسب اندازه‌گیری کنند، هزینه یک ویژگی را به دقت اندازه‌گیری کنند و در صورت افزایش تقاضا برای سرویس، در دسترس بودن را حفظ کنند.

استقرار آسان

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


آزادی تکنولوژیک

معماری‌های میکروسرویس‌ها از رویکرد «یک اندازه متناسب با همه» پیروی نمی‌کنند. تیم ها این آزادی را دارند که بهترین ابزار را برای حل مشکلات خاص خود انتخاب کنند. در نتیجه، تیم‌هایی که میکروسرویس‌ها را ایجاد می‌کنند، می‌توانند بهترین ابزار را برای هر شغل انتخاب کنند.


کد قابل استفاده مجدد

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


تاب آوری

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

کامل ترین پلتفرم برای میکروسرویس ها

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


محاسبه کنید

قدرت پردازش برای میکروسرویس ها


آمازون EMR

ظروف

سرویس کانتینر الاستیک آمازون


یک سرویس مدیریت کانتینر بسیار مقیاس‌پذیر و با کارایی بالا که از کانتینرهای Docker پشتیبانی می‌کند و به شما امکان می‌دهد به راحتی برنامه‌ها را روی یک خوشه مدیریت‌شده از نمونه‌های آمازون EC2 اجرا کنید.

بیشتر بدانید "



با استفاده از آمازون ECS، Coursera اکنون می‌تواند تغییرات نرم‌افزاری را به‌جای ساعت‌ها در یک محیط ایزوله از منابع در چند دقیقه اجرا کند.

بیشتر بدانید "


آمازون EMR

بدون سرور

AWS Lambda


AWS Lambda به شما این امکان را می دهد که کد را بدون تهیه یا مدیریت سرور اجرا کنید. فقط کد خود را آپلود کنید و Lambda همه چیزهایی را که برای اجرا و مقیاس بندی کد شما با در دسترس بودن بالا لازم است را مدیریت می کند.

بیشتر بدانید "



Localytics از AWS Lambda برای ساخت میکروسرویس‌هایی استفاده کرد که به تیم‌های توسعه‌دهنده خود اجازه می‌داد تا تجزیه و تحلیل سفارشی را بدون پشتیبانی مرکزی بسازند. بیشتر بدانید "

ذخیره سازی و پایگاه های داده

ذخیره سازی داده مقیاس پذیر، بادوام و ایمن.


ذخیره سازی

الاستیک کش آمازون


Amazon ElastiCache عملکرد سرویس را بهبود می بخشد و به شما امکان می دهد اطلاعات را از کش های سریع، مدیریت شده و درون حافظه بازیابی کنید، به جای اینکه کاملاً به پایگاه داده های مبتنی بر دیسک کندتر تکیه کنید. بیشتر بدانید "


ذخیره سازی اشیا

آمازون S3


آمازون S3 برای توسعه دهندگان و تیم های فناوری اطلاعات، ذخیره سازی شی بسیار قابل اعتماد، ایمن و مقیاس پذیر را برای همه داده های آنها، بزرگ یا کوچک فراهم می کند. بیشتر بدانید "


پایگاه های داده NoSQL

آمازون DynamoDB


یک سرویس پایگاه داده NoSQL کاملاً مدیریت شده، سریع و انعطاف پذیر برای همه برنامه هایی که به تأخیر ثابت، تک رقمی و میلی ثانیه ای در هر مقیاسی نیاز دارند. بیشتر بدانید "


پایگاه های داده رابطه ای

آمازون RDS


به راحتی یک پایگاه داده رابطه ای را در فضای ابری راه اندازی، اجرا و مقیاس بندی کنید. از میان شش موتور پایگاه داده آشنا، از جمله Oracle، Microsoft SQL Server، PostgreSQL، MySQL و MariaDB را انتخاب کنید. بیشتر بدانید "

آمازون شفق قطبی


یک موتور پایگاه داده رابطه ای که سرعت و قابلیت اطمینان پایگاه های داده تجاری پیشرفته را با سادگی و مقرون به صرفه بودن پایگاه های داده منبع باز ترکیب می کند. حداکثر 5 برابر توان خروجی MySQL استاندارد که روی همان سخت افزار اجرا می شود. بیشتر بدانید "


با ایجاد یک PaaS برای میکروسرویس ها در Amazon ECS، زمان پاسخگویی برنامه کاربردی را تا 200 درصد یادآوری کنید.

بیشتر بدانید "

شبکه سازی

خدمات شبکه با تاخیر بالا و زیر میلی ثانیه.



کشف خدمات

نقشه ابری AWS


AWS Cloud Map کشف سرویس برای تمام منابع ابری شماست. با Cloud Map، می توانید نام های سفارشی را برای منابع برنامه خود تعریف کنید و مکان به روز شده این منابع به طور پویا در حال تغییر را حفظ می کند.

بیشتر بدانید "


مش سرویس

AWS App Mesh


AWS App Mesh نظارت و کنترل میکروسرویس های در حال اجرا در AWS را آسان می کند. App Mesh نحوه برقراری ارتباط میکروسرویس‌های شما را استاندارد می‌کند، به شما دید سرتاسری می‌دهد و به اطمینان از دسترسی بالا برای برنامه‌هایتان کمک می‌کند.


بیشتر بدانید "



متعادل کننده بار الاستیک

Application Load Balancer


بار Application Load Balancer ترافیک HTTP و HTTPS را در لایه برنامه (سطح 7) متعادل می‌کند و مسیریابی درخواست پیشرفته را ارائه می‌کند که هدف آن ارائه معماری‌های کاربردی مدرن از جمله میکروسرویس‌ها و کانتینرها است.


بیشتر بدانید "


متعادل کننده بار شبکه


Network Load Balancer متعادل‌سازی بار با کارایی بالا را ارائه می‌دهد که در لایه اتصال شبکه (سطح 4) عمل می‌کند و به شما امکان می‌دهد اتصالات را به میکروسرویس‌ها بر اساس داده‌های پروتکل IP مسیریابی کنید. Network Load Balancer می‌تواند میلیون‌ها درخواست را در ثانیه رسیدگی کند و در عین حال تأخیر بسیار کم را حفظ کند.


بیشتر بدانید "



پروکسی API

دروازه API آمازون


Amazon API Gateway یک پلتفرم جامع برای مدیریت API ارائه می دهد. Amazon API Gateway به شما امکان می دهد صدها هزار تماس API همزمان را پردازش کنید و مدیریت ترافیک، مجوز و کنترل دسترسی، نظارت و مدیریت نسخه API را مدیریت کنید.


بیشتر بدانید "


DNS

مسیر آمازون 53


Amazon Route 53 یک سرویس وب سیستم نام دامنه ابری (DNS) بسیار در دسترس و مقیاس‌پذیر است که درخواست‌ها را به طور موثر به زیرساخت‌هایی که در AWS اجرا می‌شود متصل می‌کند. می توان از آن برای بررسی سلامت IP و کشف خدمات برای میکروسرویس ها استفاده کرد.


بیشتر بدانید "



Airtime پس از طراحی مجدد برنامه خود به عنوان میکروسرویس هایی که روی AWS اجرا می شوند، تجربه اجتماعی خود را سریعتر، قابل اطمینان تر و بدون تاخیر در اختیار مشتریان قرار می دهد. بیشتر بدانید "


پیام رسانی

انتشار و هماهنگی ارتباطات بین فرآیندی.



انتشار پیام و اشتراک

سرویس اطلاع رسانی ساده آمازون (Amazon SNS)


Amazon SNS یک سرویس پیام رسانی میخانه/فرعی کاملاً مدیریت شده است که جداسازی و مقیاس بندی میکروسرویس ها، سیستم های توزیع شده و برنامه های کاربردی بدون سرور را آسان می کند.

بیشتر بدانید "


صف پیام

سرویس صف ساده آمازون (Amazon SQS)


Amazon SQS یک سرویس صف پیام کاملاً مدیریت شده است که جداسازی و مقیاس بندی میکروسرویس ها، سیستم های توزیع شده و برنامه های بدون سرور را آسان می کند.

بیشتر بدانید "



Lyft از AWS برای حرکت سریعتر به عنوان یک شرکت و مدیریت رشد تصاعدی خود استفاده می کند و از محصولات AWS برای پشتیبانی از بیش از 100 میکروسرویس استفاده می کند که هر عنصر از تجربه مشتریان خود را بهبود می بخشد. بیشتر بدانید "


ثبت و نظارت

نظارت بر عملکرد خدمات و استفاده از منابع. ردیابی در معماری های پیچیده برای عیب یابی و بهینه سازی.



مانیتورینگ API

AWS CloudTrail


با CloudTrail، می‌توانید وارد سیستم شوید، به طور مداوم نظارت کنید و فعالیت حساب مربوط به اقدامات در زیرساخت خود را حفظ کنید. تاریخچه رویداد CloudTrail تجزیه و تحلیل امنیتی، ردیابی تغییر منابع و عیب یابی را ساده می کند. بیشتر بدانید "


نظارت بر برنامه و منابع

آمازون CloudWatch


از Amazon CloudWatch برای جمع‌آوری و ردیابی معیارها، جمع‌آوری و نظارت بر فایل‌های گزارش، تنظیم آلارم‌ها و واکنش خودکار به تغییرات در سرویس‌های در حال اجرا و منابع AWS خود استفاده کنید.

بیشتر بدانید "



ردیابی توزیع شده

AWS X-Ray


هنگامی که درخواست‌ها در برنامه شما حرکت می‌کنند، یک نمای سرتاسری از درخواست‌ها دریافت کنید و نقشه اجزای اصلی برنامه خود را ببینید. از آنجایی که مجموعه‌ای از میکروسرویس‌ها برای رسیدگی به یک درخواست با هم کار می‌کنند، AWS X-Ray می‌تواند نمای متمرکزی از گزارش‌ها را ارائه دهد و به شما امکان نظارت و عیب‌یابی تعاملات پیچیده را می‌دهد. بیشتر بدانید "



Shippable با استفاده از میکروسرویس‌های میزبانی شده در Amazon ECS توانسته است بر ارائه ویژگی‌ها به مشتریان خود تمرکز کند و زمان‌های استقرار ویژگی‌ها را از یک بار در هفته به چندین بار در روز افزایش داده است. بیشتر بدانید "

DevOps

چرخه عمر کد را از commit تا اجرا مدیریت کنید.


مخزن تصویر ظرف

رجیستری ظروف الاستیک آمازون (Amazon ECR)


یک رجیستری کانتینر Docker کاملاً مدیریت شده که می توانید از آن برای ذخیره، مدیریت و استقرار تصاویر کانتینر Docker استفاده کنید. آمازون ECR با سرویس کانتینر الاستیک آمازون (Amazon ECS) ادغام شده است و روند توسعه تا تولید کانتینرها را ساده می کند. بیشتر بدانید "



تحویل مستمر

ابزارهای توسعه دهنده AWS


AWS Developer Tools مجموعه‌ای از خدمات است که توسعه‌دهندگان و متخصصان عملیات فناوری اطلاعات را که DevOps را تمرین می‌کنند، قادر می‌سازد تا به سرعت و ایمن نرم‌افزار را ارائه کنند. این سرویس‌ها با هم به شما کمک می‌کنند کد منبع برنامه‌تان را به‌طور امن ذخیره کرده و نسخه را کنترل کنید، و به‌طور خودکار برنامه‌تان را در AWS یا محیط داخلی خود بسازید، آزمایش کنید و اجرا کنید. بیشتر بدانید "



Gilt از یک مرکز داده داخلی به AWS منتقل شد تا از سرعت و کارایی یک زیرساخت میکروسرویس مبتنی بر ابر استفاده کند.

بیشتر بدانید "


شروع کنید

از همین امروز با این منابع شروع به ساخت میکروسرویس کنید.


کاغذهای سفید

میکروسرویس ها در AWS

میکروسرویس های کانتینری در AWS

معماری های چند لایه بدون سرور AWS


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

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

Microservices Containerized: Break the Monolith!

آموزش: اجرای میکروسرویس های کانتینری فعال در AWS

پروژه های متن باز

مدل برنامه بدون سرور (SAM)

برو میکروسرویس

Node.js Microservices

میکروسرویس جاوا

وبلاگ ها

میکروسرویس بدون سرور

استقرار میکروسرویس های جاوا در سرویس کانتینر الاستیک آمازون

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

Microservices Containerized را با Amazon ECS و ALB اجرا کنید

استفاده از دروازه API آمازون با میکروسرویس های مستقر در آمازون ECS

کشف خدمات: معماری مرجع آمازون ECS

مستندات

آمازون ECS

AWS Lambda

الاستیک آمازون

آمازون S3

آمازون RDS

مسیر آمازون 53

متعادل کننده بار الاستیک

آمازون SNS

آمازون SQS

AWS CloudTrail

آمازون CloudWatch

AWS X-Ray

آمازون ECR

ابزارهای توسعه دهنده


اطلاعیه های محصول

با آخرین اطلاعیه های AWS re:Invent آشنا شوید »


AWS Free Tier

به مدت 12 ماه با AWS تجربه رایگان و عملی به دست آورید


آموزش رایگان AWS

برای ایجاد مهارت‌های AWS Cloud به بیش از 500 دوره رایگان دیجیتال در نقش‌ها، سطوح مهارت و دامنه دسترسی داشته باشید.

میکروسرویس
هر روز در تلاش برای رسیدن به قله های برنامه نویسی
شاید از این پست‌ها خوشتان بیاید