همایش معماری میکروسرویس از افسانه تا واقعیت، روز سوم شهریورماه با حمایت داتین در دانشگاه الزهرا (س) برگزار و معماری میکروسرویس، چالشها و مزایای آن بررسی شد.
علیرضا ارومند، مدیر محصول راهکارهای بیمهگری مدرن داتین در همایش معماری میکروسرویس، از افسانه تا واقعیت به توضیح این معماری پرداخت و گفت: «میکروسرویس یک روش معماری نرمافزار است. در الگوی کلان نرمافزار هم این معماری وجود دارد که در چند سال اخیر ترند شده است. دلیل استفاده از این معماری هم این است که به جای تولید یک نرمافزار بزرگ، کار خود را به سرویسهای کوچکتری تقسیم کنیم که یک کار کوچک را به صورت مختار انجام میدهند. بعد از آن، از کنار هم قراردادن این سرویسهای کوچک به اپلیکیشن بزرگی میرسیم که آن را در نظر داشتهایم.»
ارومند با بیان اینکه در تعریف معماری میکروسرویس دو پرسش اساسی وجود دارد، گفت: «سوال اول این است که مبنای کوچکبودن سرویس چیست؟ چقدر کوچک؟ و سوال دیگر اینکه خودمختاری به چه معناست؟ یعنی چقدر یک برنامه میتواند کاربردی باشد. میکروسرویس مانند بدن ماست که اجزای کوچکی دارد و هر کدام یک کار کاربردی کوچک انجام میدهد.»
مونولیت و میکروسرویس در برابر هم نیستند
معماری دیگری که مدیر محصول راهکارهای بیمهگری مدرن داتین از آن نام برد و به تشریح مزایا و معایب آن پرداخت، مونولیت بود. او تاکید کرد: «مونولیت و میکروسرویس در برابر هم نیستند و مقایسه بین آن دو کار درستی نیست. نرمافزارهای مبتنی بر معماری مونولیت در قالب یک مخزن کد توسعه داده میشوند و یک آدرس خروجی در اختیار کاربران قرار میگیرد. دادهها در یک دیتابیس نگهداری میشود که ما با آن سروکار داریم و با یک چارچوب و زبان توسعه داده میشوند. مهمترین مزیت مونولیت سادگی در ارتباط بخشهای مختلف است. این موضوع، سادگی کارکردن با اطلاعات را هم در پی دارد. سادگی نصب و راهاندازی هم مزیت دیگر آن است. در این نوع معماری، فایلی که خروجی ماست در بدترین حالت، تحویل یک مهندس استقرار شده و اپلیکیشن اجرا میشود.»
در برابر این مزایا تعدادی عیب را هم برای این نوع معماری باید در نظر بگیریم که ارومند به تشریح آن پرداخت: «در مونولیت، حجم بالای سرویس کد را داریم و خطوط بالای کد، ممکن است حتی یک کتاب چند صفحهای به ما بدهد. یادگرفتن این صفحات و دانستن منطق آن تقریبا از توان هر فردی خارج است. در کنار این، محیط توسعه هم دچار مشکل میشود. مدام نیاز به بررسی کدها وجود دارد که به دلیل وجود ماژولهای مشترک، باید پسرفت در فرایند کدزدن هم چک شود. این کار نیاز به بررسی خیلی زیادی دارد.»
او اضافه کرد: «موضوع بعدی بهینهنبودن است تا به نرمافزار، حداکثر زیرساخت موجود را داد. این باعث میشود زیرساختی استفاده شود که بلااستفاده است. مساله بعدی که برای این نوع معماری ممکن است ایجاد شود، انتشار مشکل به بخشهای مختلف است. وقتی یک ماژول دچار مشکل شود و نتوانیم آن را بالا نگه داریم، کل پروژه توانایی خدمتدادن ندارد.»
موضوع پراهمیت از دیدگاه مدیر محصول راهکارهای بیمهگری مدرن داتین، استفاده از ابزار مناسب است. در مونولیت، تکنولوژیها یکسان است در حالی که ممکن است ما نیاز به تکنولوژیهای خاص داشته باشیم. انجام این کار ما را از بهینگی دور میکند.
مزایای معماری میکروسرویس
در برابر این شرایط میکروسرویس قرار دارد که توسط ارومند تشریح شد. به گفته او یکی از مزایای این نوع معماری، آزادی در انتخاب تکنولوژی است و من هر جایی که بخواهم از یک تکنولوژی خاص استفاده میکنم. از سوی دیگر، بهراحتی زبان و دیتابیس قابل تغییر است. این موضوع باعث میشود شرکتهای پیشرو در این حوزه سراغ تکنولوژی و زبانهای مختلف نروند و در نهایت، تعداد محدودی دیتابیس و زبان دارند. بنابراین میکروسرویس مقیاسپذیری بهتری دارد.
سادگی در انتشار، دیگر مزیت معماری میکروسرویس است. ارومند درباره این موضوع هم گفت: «در میکروسرویس، اگر محدوده سرویسها و ورودی و خروجیها دقیق تعیین شود، هر سرویس وظیفه خاصی دارد که باید به آن عمل کند و اگر در سرویس تغییری ایجاد شود میتوان آن را در مدار آورد. ساختاردهی بهتر تیمها دیگر مورد مهمی است که باید به آن اشاره کرد. در واقعیت این اتفاق نمیافتد که تیمها با هم کار کنند. درگیریها بین تیمها در میکروسرویس ایجاد نمیشود، هر تیم کار خودش را انجام میدهد و تا زمانی که به قرارداد پایبند باشند مساله خاصی رخ نمیدهد. قابلیت سازگاری بهتر و قابلیت جایگزینی، دیگر موضوعی است که باعث انتخاب معماری میکروسرویس میشود.»
دیگر بخش این همایش، پرداختن به چالشهای میکروسرویس بود که یکی از آنها به گفته مدیر محصول راهکارهای بیمهگری مدرن داتین، تعیین محدوده سرویسهاست. هر چند میگویند اندازه تعیینکننده نیست بلکه کسبوکار تعیینکننده محدودیتهاست و در معماری میکروسرویس، این چالش است.
او تصریح کرد: «پیچیدگی ارتباط، دیگر چالش این معماری است و تعدادی زیادی API، صف برای ارتباط با دریافتکننده و… در آن وجود دارد که همین هم به برنامهنویسی نیاز دارد و نگهداری همان هم خود یک تخصص است. نصب و راهاندازی پیچیده هم در کنار این ارتباط را باید در نظر گرفت. راهاندازی سرویسها با کانفیگهای مختلف و کار با توجه به زیرساخت مورد نیاز، دشواری دیگر است.»
ارومند با بیان اینکه داده چالش اصلی این روزهای زندگی ماست، گفت: «تجمیع و بهدستآوردن اطلاعات برای ما مهم است و وقتی سراغ میکروسرویس میرویم این دادهها توزیع میشوند و مدیریت آن را سخت میکند.»
او تاکید کرد: «اینها فقط یک سری ابزار برای گسترش دانش ما هستند. هرچند این روزها همه میگویند که اپلیکیشنها روی میکروسرویس پیادهسازی شوند اما این کار کمهزینه و ساده نیست.»
ارومند در پایان دو کتاب «Bulding Microservices» و «Microservices Patterns» را برای مطالعه بیشتر علاقهمندان به این حوزه پیشنهاد کرد.
برای تماشای کامل این رویداد میتوانید به صفحه آپارات داتین مراجعه کنید.