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

میکروسرویس‌ها یک رویکرد معماری و سازمانی برای توسعه نرم‌افزار هستند که در آن نرم‌افزار از سرویس‌های مستقل کوچکی تشکیل شده است که از طریق APIهای کاملاً تعریف شده ارتباط برقرار می‌کنند. این خدمات متعلق به تیم های کوچک و مستقل هستند.معماری‌های میکروسرویس‌ها، مقیاس‌پذیری و توسعه سریع‌تر برنامه‌ها را آسان‌تر می‌کنند و نوآوری را امکان‌پذیر می‌کنند و زمان ورود به بازار را برای ویژگی‌های جدید تسریع می‌کنند.معماری یکپارچه در مقابل میکروسرویس هابا معماری‌های یکپارچه، همه فرآیندها به‌طور محکم با یکدیگر همراه هستند و به عنوان یک سرویس واحد اجرا می‌شوند. این بدان معنی است که اگر یکی از فرآیندهای برنامه با افزایش تقاضا مواجه شود، کل معماری باید مقیاس شود. افزودن یا بهبود ویژگی های یک برنامه یکپارچه با رشد پایه کد پیچیده تر می شود. این پیچیدگی آزمایش را محدود می کند و اجرای ایده های جدید را دشوار می کند. معماری‌های یکپارچه خطری را برای در دسترس بودن برنامه‌ها افزایش می‌دهند، زیرا بسیاری از فرآیندهای وابسته و کاملاً مرتبط، تأثیر شکست یک فرآیند را افزایش می‌دهند.با معماری میکروسرویس، یک برنامه کاربردی به عنوان اجزای مستقل ساخته می شود که هر فرآیند برنامه را به عنوان یک سرویس اجرا می کند. این سرویس ها از طریق یک رابط کاملاً تعریف شده با استفاده از API های سبک با هم ارتباط برقرار می کنند. سرویس ها برای قابلیت های تجاری ساخته شده اند و هر سرویس یک عملکرد واحد را انجام می دهد. از آنجایی که آنها به طور مستقل اجرا می شوند، هر سرویس را می توان به روز کرد، مستقر کرد، و برای پاسخگویی به تقاضا برای عملکردهای خاص یک برنامه، مقیاس بندی کرد.یکپارچه در مقابل میکروسرویس هاشکستن یک برنامه یکپارچه به میکروسرویس هاویژگی های میکروسرویس هاخود مختارهر سرویس جزء در معماری میکروسرویس می‌تواند بدون تأثیر بر عملکرد سایر سرویس‌ها توسعه، استقرار، عملیاتی و مقیاس‌بندی شود. سرویس ها نیازی به اشتراک گذاری کد یا پیاده سازی خود با سایر سرویس ها ندارند. هر گونه ارتباط بین اجزای جداگانه از طریق APIهای کاملاً تعریف شده انجام می شود.تخصصیهر سرویس برای مجموعه ای از قابلیت ها طراحی شده و بر حل یک مشکل خاص تمرکز دارد. اگر توسعه دهندگان کد بیشتری را در طول زمان به یک سرویس اضافه کنند و سرویس پیچیده شود، می توان آن را به سرویس های کوچکتر تقسیم کرد.مزایای میکروسرویس هاچابکیمیکروسرویس ها سازمانی متشکل از تیم های کوچک و مستقل را پرورش می دهند که مالکیت خدمات آنها را در اختیار می گیرند. تیم ها در یک زمینه کوچک و به خوبی درک شده عمل می کنند و این اختیار را دارند که مستقل تر و سریع تر کار کنند. این باعث کوتاه شدن زمان چرخه توسعه می شود. شما به طور قابل توجهی از ظرفیت کل سازمان سود می برید.مقیاس پذیری انعطاف پذیرمیکروسرویس ها به هر سرویس اجازه می دهند تا به طور مستقل برای پاسخگویی به تقاضا برای ویژگی برنامه ای که پشتیبانی می کند، مقیاس بندی شود. این به تیم‌ها امکان می‌دهد تا نیازهای زیرساختی را با اندازه مناسب اندازه‌گیری کنند، هزینه یک ویژگی را به دقت اندازه‌گیری کنند و در صورت افزایش تقاضا برای سرویس، در دسترس بودن را حفظ کنند.استقرار آسانمیکروسرویس‌ها یکپارچه‌سازی مداوم و تحویل مستمر را امکان‌پذیر می‌کنند و آزمایش ایده‌های جدید را آسان می‌کنند و در صورت عدم موفقیت به عقب برمی‌گردند. هزینه پایین شکست آزمایش را امکان پذیر می کند، به روز رسانی کد را آسان تر می کند و زمان ورود به بازار برای ویژگی های جدید را تسریع می بخشد.آزادی تکنولوژیکمعماری‌های میکروسرویس‌ها از رویکرد «یک اندازه متناسب با همه» پیروی نمی‌کنند. تیم ها این آزادی را دارند که بهترین ابزار را برای حل مشکلات خاص خود انتخاب کنند. در نتیجه، تیم‌هایی که میکروسرویس‌ها را ایجاد می‌کنند، می‌توانند بهترین ابزار را برای هر شغل انتخاب کنند.کد قابل استفاده مجددتقسیم نرم افزار به ماژول های کوچک و کاملاً تعریف شده، تیم ها را قادر می سازد از توابع برای اهداف متعدد استفاده کنند. سرویسی که برای یک تابع خاص نوشته شده است می تواند به عنوان بلوک ساختمانی برای ویژگی دیگری استفاده شود. این به یک برنامه اجازه می دهد تا خود را بوت استرپ کند، زیرا توسعه دهندگان می توانند بدون نوشتن کد از ابتدا قابلیت های جدیدی ایجاد کنند.تاب آوریاستقلال سرویس مقاومت برنامه را در برابر شکست افزایش می دهد. در یک معماری یکپارچه، اگر یک جزء از کار بیفتد، می تواند باعث از کار افتادن کل برنامه شود. با میکروسرویس ها، برنامه ها با کاهش عملکرد و عدم از کار افتادن کل برنامه، با شکست کامل سرویس مقابله می کنند.کامل ترین پلتفرم برای میکروسرویس هاAWS بلوک های ساختمانی یکپارچه ای دارد که از هر معماری کاربردی، صرف نظر از مقیاس، بار، یا پیچیدگی پشتیبانی می کند.محاسبه کنیدقدرت پردازش برای میکروسرویس هاآمازون EMRظروفسرویس کانتینر الاستیک آمازونیک سرویس مدیریت کانتینر بسیار مقیاس‌پذیر و با کارایی بالا که از کانتینرهای Docker پشتیبانی می‌کند و به شما امکان می‌دهد به راحتی برنامه‌ها را روی یک خوشه مدیریت‌شده از نمونه‌های آمازون EC2 اجرا کنید.بیشتر بدانید " با استفاده از آمازون ECS، Coursera اکنون می‌تواند تغییرات نرم‌افزاری را به‌جای ساعت‌ها در یک محیط ایزوله از منابع در چند دقیقه اجرا کند.بیشتر بدانید "آمازون EMRبدون سرورAWS LambdaAWS 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 درصد یادآوری کنید.بیشتر بدانید "شبکه سازیخدمات شبکه با تاخیر بالا و زیر میلی ثانیه.کشف خدماتنقشه ابری AWSAWS Cloud Map کشف سرویس برای تمام منابع ابری شماست. با Cloud Map، می توانید نام های سفارشی را برای منابع برنامه خود تعریف کنید و مکان به روز شده این منابع به طور پویا در حال تغییر را حفظ می کند.بیشتر بدانید "مش سرویسAWS App MeshAWS 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مسیر آمازون 53Amazon Route 53 یک سرویس وب سیستم نام دامنه ابری (DNS) بسیار در دسترس و مقیاس‌پذیر است که درخواست‌ها را به طور موثر به زیرساخت‌هایی که در AWS اجرا می‌شود متصل می‌کند. می توان از آن برای بررسی سلامت IP و کشف خدمات برای میکروسرویس ها استفاده کرد.بیشتر بدانید " Airtime پس از طراحی مجدد برنامه خود به عنوان میکروسرویس هایی که روی AWS اجرا می شوند، تجربه اجتماعی خود را سریعتر، قابل اطمینان تر و بدون تاخیر در اختیار مشتریان قرار می دهد. بیشتر بدانید "پیام رسانیانتشار و هماهنگی ارتباطات بین فرآیندی.انتشار پیام و اشتراکسرویس اطلاع رسانی ساده آمازون (Amazon SNS)Amazon SNS یک سرویس پیام رسانی میخانه/فرعی کاملاً مدیریت شده است که جداسازی و مقیاس بندی میکروسرویس ها، سیستم های توزیع شده و برنامه های کاربردی بدون سرور را آسان می کند.بیشتر بدانید "صف پیامسرویس صف ساده آمازون (Amazon SQS)Amazon SQS یک سرویس صف پیام کاملاً مدیریت شده است که جداسازی و مقیاس بندی میکروسرویس ها، سیستم های توزیع شده و برنامه های بدون سرور را آسان می کند.بیشتر بدانید " Lyft از AWS برای حرکت سریعتر به عنوان یک شرکت و مدیریت رشد تصاعدی خود استفاده می کند و از محصولات AWS برای پشتیبانی از بیش از 100 میکروسرویس استفاده می کند که هر عنصر از تجربه مشتریان خود را بهبود می بخشد. بیشتر بدانید "ثبت و نظارتنظارت بر عملکرد خدمات و استفاده از منابع. ردیابی در معماری های پیچیده برای عیب یابی و بهینه سازی.مانیتورینگ APIAWS 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) ادغام شده است و روند توسعه تا تولید کانتینرها را ساده می کند. بیشتر بدانید "تحویل مستمرابزارهای توسعه دهنده AWSAWS 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مستنداتآمازون ECSAWS Lambdaالاستیک آمازونآمازون S3آمازون RDSمسیر آمازون 53متعادل کننده بار الاستیکآمازون SNSآمازون SQSAWS CloudTrailآمازون CloudWatchAWS X-Rayآمازون ECRابزارهای توسعه دهندهاطلاعیه های محصولبا آخرین اطلاعیه های AWS re:Invent آشنا شوید »AWS Free Tierبه مدت 12 ماه با AWS تجربه رایگان و عملی به دست آوریدآموزش رایگان AWSبرای ایجاد مهارت‌های AWS Cloud به بیش از 500 دوره رایگان دیجیتال در نقش‌ها، سطوح مهارت و دامنه دسترسی داشته باشید.