سکوی پلتکو، مبتنی بر نرم افزار WSO2 و با هدف مدیریت یکپارچه سرویس های سازمان به صورت مقیاسپذیر، قابل اطمینان و قابل ردگیری پیاده سازی شده است. مستند حاضر با هدف ارائه نمای کلی و کافی از معماری ساختار پلتکو و نحوه برطرف کردن نیاز های سازمان توسط آن را ارئه می نماید. هدف از نگارش مستند حاضر، ارائه نگاه سطح بالا به ساختار و اجزای پلتکو به همراه نقش هر یک از این اجزا در این نگاه کلی می باشد. علاوه بر این، هر بخش در صورت نیاز تا حد لزوم به جزئیات و تصمیمات معماری نیز پرداخته است.خواندن این مستند باعث ایجاد تفکر یکنوا در نقشهای مختلف تاثیر گذار در پیادهسازی این سامانه می شود و بحث راجع به تصمیمات مختلف معماری را تسهیل می نماید.
این مستند بیشتر به جوانب سطح بالای معماری سامانه پلتکو می پردازد و بررسی جزئیات را تنها در تصمیمات و بخشهای مهم معماری مورد توجه قرار می دهد. جزئیات طراحی و پیاده سازی سامانه در این مستند، بررسی نمی گردد. در ادامه این مطلب با شرکت دانش بنیان پلتکو همراه باشید.
تعاریف، سرنام ها و مخفف ها مدیریت وب سرویس
- ESB: مخفف Enterprise Service Bus می باشد و یک زیرساخت ارتباط مشترک برای دسترسی به سرویس های مختلف سازمانی می باشد. ارائه سرویس های مختلف، امکان تغییر در تعریف سرویس ها و مدیریت نسخه های مختلف سرویسها از مهمترین کاربردهای ESB است.
- WSO2 ESB: یک نرم افزار ESB می باشد که توسط شرکت WSO2 طراحی و گسترش داده شده است و به صورت متنباز در اختیار عموم قرار گرفته است.
- WSO2 EI: پس از انتشار نسخه ۶ از نرم افزار WSO2 ESB، این بسته نرم افزاری پا را از محل تعریف ESB فراتر گذارده و قابلیت ارائه وب سرویس از روی پایگاه داده به صورت مستقیم را نیز فراهم آورد. به همین دلیل این شرکت نام نسخه آتی آن را EI گذاشت که مخفف Enterprise Integrator می باشد.
- WSO2 API Manager: با گذر زمان و بروز مشکلات مختلف هنگام استفاده از نرم افزارهای ESB نسل جدید این نرم افزارها با هدف مدیریت وب سرویسها به صورت ساده، توجه بیشتر بر سرویس های REST، عدم تاکید بر امکان تغییر وب سرویسها در سامانه واسط با نام API Manager منتشر شده است. نرم افزار WSO2 API Manager یک نرم افزار API Manager می باشد که مبتنی بر زیرساخت نرم افزاری شرکت WSO2 است و توسط این شرکت گسترش داده شده و به صورت متن باز در اختیار عموم قرار گرفته است.
- Dev Portal: بخشی از بسته نرم افزاری WSO2 API Manager می باشد که واسط کاربری راه حل WSO2 API Manager برای تعامل با توسعه دهندگان نرم افزار استفاده کننده از سرویس های تعریف شده در API Manager می باشد.
- Publisher: بخشی از بسته نرم افزاری WSO2 API Manager می باشد که واسط کاربری برای تعریف و مدیریت وب سرویسهای API Manager می باشد.
- PI: یک بسته نرم افزاری سفارشی سازی شده مبتنی بر زبان برنامه نویسی پایتون و برای اتصال به Endpoint ها و انجام تغییرات لازم روی وب سرویسها می باشد. PI مخفف Platco Integrator می باشد و این محصول به عنوان جایگزین محصول WSO2 Micro Integrator استفاده شده است.
نماهای معماری مدیریت وب سرویس
در ادامه مستند به توضیح نماهای مختلف معماری محصول پلتکو و نحوه برآورده شدن نیازهای مختلف با استفاده از ماژول های مختلف می پردازیم.
نمایش ساختاری (معماری)
برای توضیح معماری بستر پلتکو، نمای منطقی سطح بالا بهترین ابزار می باشد. در این نمای منطقی، اطلاعات بسته ها و بخش های کلی نرم افزار نمایش داده شده و شهود سطح بالای مناسب از نحوه ارتباط آنها در آن آمده است. نمای مورد کاربرد نیز برای موارد کاربرد اصلی لازم می باشد. نمای فرایند و نمای پیادهسازی در پیاده سازی این بسته، بیش از حد جزئی بوده و مناسب نمی باشد.
اهداف و محدودیت های ساختاری
با توجه به قرارگیری سامانه پلتکو بین تمامی ارتباطات مبتنی بر سرویس سازمان، قابلیت اتکا (reliability) و دسترسپذیری بالا (High Availability) بسیار حائز اهمیت است.
از طرفی به علت قرار گیری در نقطه مرزی تعامل با دنیای بیرون، امنیت اینگونه نرم افزارها نیز از اهمیت خاصی برخورده است. همچنین به علت نیاز به پشتیبانی از تعداد زیاد درخواست، لازم است این نرم افزار امکان مقیاسپذیری (Scalability) بالا را نیز داشته باشد.
از آنجا که این نرم افزار در قلب ارتباطات سازمانی قرار دارد، لازم است تغییر آن در آینده ممکن باشد و پشتیبانی از آن در بلند مدت امکانپذیر باشد.
نمای مورد-کاربرد
تعداد مورد-کاربرد های سامانه پلتکو زیاد می باشد. مهمترین آن ها به صورت سطح بالا در ادامه آورده شده است:
1. ساخت API جدید
2. عیبیابی API
3. مدیریت API
4. بهره برداری از API
5. نمای منطقی
توجه: ارتباطات هر دو ماژولWSO2 API Manager با هم و همچنین ارتباطات PI ها با هم یکسان است و برای سادگی در نمودار بالا فقط ارتباطات مربوط به یکی از آن ها نمایش داده شده است.
6. نمای استقرار
پلتفرم جامع پلتکو از لحاظ استقرار مبتنی بر Container بوده و بر روی بستر Docker Swarm (و یا در صورت بر روی بستر Kubernetes) نصب و راه اندازی می شود. سرویس های واسط نیز مبتنی بر معماری میکرو سرویس توسعه یافته و در ماژول PI سامانه نصب و میزبانی می شوند.
- PSQL: از این پایگاه داده به منظور ذخیره سازی داده های زیر استفاده می شود:
- اطلاعات مربوط به API ها: به عنوان مثال اطلاعات مربوط به نام، context، شماره نسخه، تاریخچه نسخه های پیشین، مستند، کامنت و… هر API
- اطلاعات کاربران پنل WSO2: اطلاعات مربوط به نام کاربری، رمز عبور و نوع دسترسی هر کاربر (نقش)
- تنظیمات مدیریتی: ذخیره اطلاعاتی که از طریق پرتال admin انجام میشود مانند مدیریت کاربران و مشترکین API ها، ثبت تنظیمات مربوط به رویکرد های محدود سازی API ها براساس IP ، دامنه و غیره و تغییر theme پرتال DEV Portal و…
- و موارد دیگر مربوط به WSO2 API Manager
- PI: سرویس های واسط متناظر سرویس دهندگان مختلف در این میکرو سرویس پیاده سازی و میزبانی می شود.
- Zabbix: زبیکس یکی از قویترین نرم افزارهای مانیتورینگ ( API Monitoring ) است که طیف وسیعی از سامانههای سخت افزاری و نرم افزاری را پوشش میدهد و با کارکردهای متنوع نیاز اکثر سازمانهای بزرگ یا کوچک را مرتفع نموده است. با استفاده از این نرم افزار، ماشین های زیرساخت، ارتباطات شبکه ای و سرویس ها به صورت آنلاین و آفلاین پایش شده، و وضعیت های مختلف در قالب پیامک های هشدار از طریق سرویس پیامک به مسئولین پشتیبانی مربوطه ارسال می گردد.
- ELK : از این نرم افزار برای مدیریت وقایع نگاری مربوط به فراخوانی های API های مختلف استفاده می گردد. به ازای هر فراخوانی از یک سرویس واسط چهار رکورد لاگ مختلف ثبت میگردد.
- Redis: از این پایگاه داده برای ذخیره سازی موقت برخی داده ها (مثلا Session تولید شده توسط سرویس Login و یا توکن دسترسی برخی از APIها) استفاده می شود.
- FTP Server : این ماژول نقش واسط در نگهداری، ارسال و دریافت فایل هایی مربوط به سرویس هاییکه از نوع FTP هستند یا در فرایند عملیات خود به FTP نیاز دارند مورد استفاده قرار می گیرد و فراخوانندگان API-های مختلف در صورت نیاز به ارسال/دریافت فایل به/از سرویس دهندگان مختلف باید به این واسط مراجعه نمایند.
- Storage Server: از این سرویس (در نمای استقرار به نام Storage and FTP Server نشان داده شده است) که در حقیقت یک ماشین مجازی می باشد و از طریق پروتکل NFS به کلاستر Docker Swarm متصل می باشد، برای ذخیره و نگهداری دادهها ، لاگ ها و فایل های پیکربندی مختلف استفاده میشود.
عملکرد هر یک از اجزاء استقرار (مطابق تصویر پایین) به صورت زیر می باشد :
7. اندازه و کارایی
از آنجا که تعداد درخواستهای API همزمان ممکن است زیاد باشد و از طرفی اهمیت به نتیجه رسیدن تمامی درخواستها زیاد است ساختار معماری به گونه ای طراحی شده که علاوه بر حفظ سادگی توانایی پاسخگویی تعداد زیاد درخواست را داشته و همچنین از دسترسپذیری بالا پشتبیانی کند.
همانگونه که در معماری نمایش داده شده در بخش«نمای منطقی» نمایش داده شد، در ابتدا از یک Load Balancer که خود نیز با قابلیت دسترسپذیری بالا و به صورت چند Node تعریف شده است، استفاده شده و در ادامه از دو بسته WSO2 API Manager کاملا یکسان با تنظیمات sync شده استفاده شده که در صورت بروز مشکل برای هر یک از آنها، برای درخواست ها مشکلی ایجاد نشود.
لازم به ذکر است که از آنجا که اصل بار سامانه روی تغییرات انجام شده بر سرویسها بوده و این کار در WSO2 API Manager انجام نمیشود، نیازی به راه اندازی و پشتیبانی از تعداد Node بیشتر WSO2 API Manager وجود ندارد. از طرفی راه اندازی دو بسته WSO2 API Manager کاملا یکتا، معماری استقرار را سادهتر کرده و ریسک بروز مشکل ناشی از پیچیدگی را کاهش می دهد.
همچنین از آنجا که WSO2 API Manager به صورت تک Node قابلیت پاسخگویی در حد هزار درخواست در ثانیه را دارد قاعدتا تحمل بار مورد نیاز در این ساختارهای متداول را خواهد داشت.
در ادامه دوباره درخواستها به زیرساخت Load Balancer منتقل شده و به PI ها می رسند. بار اصلی این سامانه در این قسمت انجام میشود. PI ها به صورت کاملا Stateless طراحی شده اند بنابراین افزایش تعداد آنها هیچگونه پیچیدگی و سختی ندارد و با توجه به استفاده از بستر Docker Swarm به راحتی و با تنظیمات محدود قابل انجام می باشد. همچنین کد و تنظیمات تمامی PI ها یکسان می باشد بنابراین پشتیبانی تعداد زیادی از آنها کاملا ممکن بوده و پیچیدگی ایجاد نمیکند.
بدین ترتیب به راحتی در صورت لزوم می توان با افزایش منابع سختافزاری، قابلیت پشتیبانی از تعداد بیشتر درخواست یا بار بیشتر تغییر API ها به راحتی فراهم می باشد.
بخش های دیگر مانند سامانه مدیریت لاگها و سامانه مانیتورینگ هم با افزایش منابع قابل گسترش بوده و مشکلی در مسیر استفاده از آنها به وجود نمی آید. ضمن آنکه داده های آن ها برای زمان محدود نگه داری شده و سپس آرشیو می شود بنابراین حجم داده های آنها زیاد نخواهد شد.
8. کیفیت
در معماری تعریف شده، درخواستها در ابتدا توسط WSO2 API Gateway دریافت می شوند بنابراین از امکانات امنیتی این بسته شناخته شده، استفاده خواهیم کرد. از طرفی با استفاده از دیگر قابلیت های WSO2 API Manager مثل Throttling از ایجاد فشار بیش از اندازه روی PI ها و سرور های Endpoint ها جلوگیری می شود و این نیز به امنیت این سرویس ها می افزاید.
تنظیمات انجام شده در WSO2 API Manager بسیار ساده بوده و قابلیت توسعه و پشتیبانی آن در آینده فراهم بوده و به نسبت آسان است.
کدهای پیاده شده در بسته PI، نیز بسیار ساده بوده و با مستند سازی کافی در اختیار کارفرما قرار می گیرد بنابراین امکان توسعه بیشتر آن و پشتیبانی از آن بسیار آسان خواهد بود.
شرکت دانش بنیان پلتکو، ارائه دهنده خدمات تخصصی یکپارچه سازی و مدیریت وبسرویسها می باشد که خدماتی نظیر گذرگاه سرویسهای سازمانی (ESB) و مدیریت وبسرویسها (API Manager)، مانیتورینگ، مدیریت لاگها، وب پرتال و دهها سرویس تخصصی دیگر به سازمانها ارائه میدهد. برای دریافت اطلاعات بیشتر از طریق شمارههای درج شده در سایت با کارشناسان پلتکو تماس حاصل فرمایید.
بدون دیدگاه