ایکون سایت امیر مهجوریان

تحقق واقعی معماری مایکروسرویس‌­ نیازمند کسب‌وکار سرویس­‌گرا

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

برای بررسی معماری مایکروسرویس و نحوه وابستگی آن با معماری سازمانی، ابتدا مروری بر مفاهیم و لایه‌­های معماری سازمانی می‌­کنیم، سپس به معماری مایکروسرویس و ویژگی‌­های آن می­‌پردازیم و در انتها نیز وابستگی بین این دو را بررسی خواهیم کرد.

1) معماری سازمانی

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

مفاهیم معماری بر هر نوع سیستم سخت­افزاری-نرم­افزاری-انسانی-اجتماعی قابل اعمال است، به عبارت­ دیگر معماری مختص یک صنعت(مثلا ساختمان­ سازی) یا یک کاربرد خاص(مثلا تولید نرم ­افزار) نیست. منظور از سیستم، “مجموعه ­ای از عناصر عینی یا ذهنی مرتبط با هم است که در کلیت خود در قالب یک موجودیت به مفهوم عام، ساختاری با نظم معیین و رفتاری قاعده­مند دارد و هدف مشخصی را دنبال می­کنند.”

مفاهیم معماری متاثر از نگاه سیستماتیک (کل­ گرایی) و متدهای تفکر سیستمی نیز هست. تفکر سیستمی پارادایم فکری است که بر مبنای برتری کل به جزء پایه گذاری شده است؛ در چنین تفکری رفتار یک سیستم مستقیما حاصل جمع رفتار اجزاء آن نیست، بلکه نحوه چیدمان و تعامل اجزاء با یکدیگر و حتی تاثیرات متقابل با محیط بیرونی، رفتار سیستم را شکل می­دهد.

هرگونه که معماری را تعریف و تفسیر کنیم، باید بپذیریم که علم “معماری سازمانی”  به صورت رسمی از اواخر دهه 80 میلادی و توسط مهندسان نرم افزار از جمله جان زکمن – معمار نرم‌­افزار در شرکت IBM آمریکا – تبیین و پایه‌­گذاری شد و سپس توسط سایر دولت­‌ها-موسسات-اشخاص توسعه و عملیاتی گردید. در اواخر دهه 2000 ، به تدریج کاربرد معماری سازمانی گسترش یافت و مهندسان فرایند و تحلیل­گران کسب‌­وکار نیز به این مفاهیم علاقمند شدند، تا جاییکه اکنون مخاطب پیکره دانش معماری سازمانی و چارچوب­‌های پرطرفداری همچون توگف، طیف وسیعی از متخصصان در کسب‌­وکار و فناوری اطلاعات را در بر­می‌­گیرد.

بر طبق چارچوب ملی معماری سازمانی ایران، تعریف معماری سازمانی به قرار زیر است:

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

لازم به تاکید است، مفهوم و کاربرد معماری سازمانی مبتنی بر دو اصل محوری است:

  • اصل اول: تقدم برنامه‌ریزی و طراحی بر پیاده‌سازی و اجرا (نگاه برنامه­-محوری)
  • اصل دوم: مهندسی همه جوانب و عناصر سازمان به‌صورت یکپارچه (نگاه کل‌­نگر و سیستماتیک)

برای معماری سازمانی چارچوب­‌ها، متدلوژی‌­ها و مدل‌­های مرجع مختلفی ارایه شده است که همگی آن­ها بر وجود لایه‌­ها و دیدگاه­‌های کسب‌­وکار-اطلاعات-نرم­‌افزار-فناوری تاکید دارند، این لایه‌­های معماری اگرچه در مراجع مختلف اندکی با ادبیات و طبقه‌­بندی متفاوتی بیان شده‌­اند اما وجه مشترک همه این مراجع را می­توان در شکل زیر جمع‌­بندی نمود.

لایه های معماری سازمانی

2) معماری مایکروسرویس

معماری مایکروسرویس­ (Microservice Architecture) یا به‌­اختصار مایکروسرویس‌­ها که در منابع فارسی گاهی به نام میکروسرویس‌­ها­ نیز ترجمه شده است، در چندسال اخیر یکی از ترندهای کلیدی صنعت تولید نرم افزار است. اگرچه اولین اشاره مستقیم به واژه “مایکروسرویس‌­ها” به سال 2011 و در یک کارگاه معماری نرم‌­افزار بر­می­‌گردد، اما داغ شدن این موضوع در طی سال­های 2014 و 2015 بود.

مایکروسرویس‌­ها یک تکنیک توسعه نرم‌­افزار مشتق شده از سبک معماری سرویس‌­گرا است که از مجموعه‌­ای از سرویس‌­های خوش­‌‌تعریف تشکیل شده است. در معماری مایکروسرویس پروتکل‌­های ارتباطی سبک و مستقل از پلتفرم هستند و سرویس­‌ها دامنه و مسئولیت معیین و مشخصی دارند، مزایای این معماری بهبود ماژولاریتی سیستم و تسهیل توسعه، استقرار و تست سیستم است؛ همچنین سیستم توسعه‌­یافته دارای مقیاس‌­پذیری بالا و سرعت بالاتر اعمال تغییر است. این معماری با رویکرد DevOps در توسعه و پشتیبانی نرم‌­افزارها هماهنگی دارد.

به‌­صورت خلاصه تعریف معماری مایکروسرویس به قرار زیر است:

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

معماری مایکروسرویس دربرابر معماری یک­‌تکه

بسیاری از کتاب­‌ها و مقالاتی که درباره معماری مایکروسرویس­ وجود دارد، برای توضیح ویژگی و تمایز معماری مایکروسرویس از مقایسه با معماری یک­‌تکه استفاده کرده‌­اند. بر مبنای نظر این نویسندگان در سیستم­های یک­‌تکه، مجموعه مولفه‌­ها-سرویس‌­ها-داده‌­ها چنان در هم آمیخته است که نمی‌­توان بلوک‌­های سازنده این سیستم‌­ها را مستقلا از هم جدا کرده و یا تغییر(جایجا) نمود؛ اما در معماری مایکروسرویس هدف این است که یک سیستم به مجموعه‌­ای از ماژول(سرویس) کاملا مستقل(خودمختار) تقسیم شود که هر سرویس همه محاسبات، داده‌­ها و قوانین مورد نیاز را در خود داشته باشد و برای اجرا به سایر سرویس­ها نیاز نداشته باشد یا حداقل وابستگی وجود داشته باشد.(شکل زیر)

معماری مایکروسرویس

ارتباط معماری سرویس­‌گرا با معماری مایکروسرویس

یکی از موضوعات مورد بحث دراین حوزه، نسبت معماری مایکروسرویس با معماری سرویس­‌گرا است؛ دلیل این امر شباهت‌­ها و اشتراکات فناوری-متدها دراین دو معماری است. در این خصوص دو دیدگاه کلی وجود دارد؛ دیدگاه اول معماری مایکروسرویس را رویکردی در تقابل با معماری سرویس‌­گرا می‌­داند و معماری سرویس‌­گرا را نوعی معماری یک‌­تکه قلمداد می‌­کند که مایکروسرویس برای تغییر آن آمده است. دیدگاه دوم که مورد تایید مراجع معتبرتر است معتقد است معماری سرویس‌­گرا یک پارادایم فکری است و فناوری‌­هایی مانند وب-­سرویس(نسل اول تحقق معماری سرویس­‌گرا) یا مایکروسرویس‌­ها نمونه­‌هایی از تحقق آن هستند که هرکدام نقاط قوت و ضعفی دارند.

با مقایسه تعاریف مایکروسرویس با معماری سرویس‌­گرا مشخص می­‌شود که تقابل(تفاوت) عمده‌­ای بین این دو نیست، و شاید بتوان معماری مایکروسرویس را گونه­ کامل‌­تر و اصولی‌­تر از تحقق معماری سرویس‌­گرا نسبت به فناوری وب-­سرویس و استانداردهای آن دانست که طی دو دهه گذشته معرفی شدند.

نتایج و مزایای معماری مایکروسرویس

مهمترین مزایا و نتایج حاصل از معماری مایکروسرویس به قرار زیر است:

حق­ انتخاب فناوری/ابزار:

  • در معماری مایکروسرویس حق انتخاب سبد متنوعی از فناوری‌­ها-ابزارها برای تیم‌­های طراحی و پیاده‌­سازی مهیا است به­‌صورتی­که می­‌توان در فرایند تولید یک سیستم، برای مایکروسرویس‌­های مختلف از فناوری‌­ها و ابزارهای مختلفی استفاده کرد.

پایداری سیستم:

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

مقیاس­‌پذیری بالا و هدفمند:

  • امکان مقیاس­‌پذیری سیستم در سیستم­‌های یک­‌تکه به‌­صورت همه یا هیچ است، اما در معماری مایکروسرویس امکان مقیاس­‌پذیری موثر به ازای هر سرویس دلخواه میسر است. بنابراین هر بخش از سیستم که بار(load) کاری بیشتری داشته باشد، متناسبا می­تواند منابع پردازشی بیشتر نیز در اختیار گیرد و نیازی نیست برای همه مولفه‌­های سیستم مقیاس‌­پذیری یکنواخت انجام شود.

توسعه و تغییرات:

  • امکان تغییر در منطق  هر سرویس بدون نگرانی از تاثیرات منفی در سایر سرویس‌­ها به دلیل خودمختاری سرویس‌­ها ساده‌­تر است، این موضوع البته برای تغییر منطق داخلی است و در صورتیکه واسط سرویس تغییر کند باید به سایر سرویس‌­ها (استفاده‌­کنندگان) اطلاع داده شود.

سهولت جابجایی و جایگزینی سرویس‌­ها:

  • با توجه به خودمختاری کارکردی و فناوری سرویس‌­ها، به سادگی می­‌توان یک سرویس را که عملکرد آن مناسب نبوده با نمونه بهتر جایگزین نمود یا یک سرویس را به­‌تنهایی به یک محیط/سیستم دیگر منتقل نمود و از آن استفاده نمود

3) معماری سازمانی مبتنی بر مایکروسرویس

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

سازمان­‌هایی که می‌­خواهند به سمت پیاده‌­سازی مایکروسرویس در مقیاس سازمان اقدام کنند باید توجه داشته باشند که تاثیرات این سبک معماری صرفا در لایه نرم‌­افزار و داده محدود نشده و معماری کسب­‌وکار را نیز تحت تاثیر قرار می‌­دهد.

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

معماری سازمانی سرویس گرا

وابستگی معماری سازمانی با مایکروسرویس‌­ها

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

جمع ­بندی:

همانطور که گفته‌­شد، پارادایم سرویس‌­گرایی(به صورت عام) و معماری مایکروسرویس (به­‌صورت خاص) روندهای آینده‌­دار صنعت فاوا هستند که در دنیای رقابتی و سرویس­-محور کسب­‌وکار نیز تضمین‌­کننده همراستایی بین کسب­‌وکار با فاوا هستند، اما برای بکارگیری هدفمند و موفق مایکروسرویس‌­ها باید به تاثیرات آن بر معماری سازمانی نیز توجه ویژه شود. تغییر سبک سازمان از وظیفه‌­محور به سرویس‌­محور اگرچه ساده و بدون مانع نیست؛ اما با برنامه هدفمند و ارزیابی دقیق از فرصت­‌ها و تهدیدها می­توان گام‌­به‌­گام به سمت آن پیش رفت. حتی تحقق میزان حداقلی 10 درصد تحول در معماری سازمانی در هر سال – اما به‌­صورت پیوسته- بعد از چندسال منجر به تغییرات عمیق و ملموس در هر سازمانی می‌­شود.

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

اشتراک‌گذاری پست: