help-header

OpenShift چیست؟

OpenShift پلتفرمی بر پایه‌ی مجازی‌سازی است که Red Hat آن را بر مبنای Kubernetes توسعه داده و ارایه کرده است. به‌وسیله‌ی OpenShift می‌توان اپلیکیشن‌ها را به‌شکل خودکار روی کانتینرها ایجاد و راه‌اندازی کرد. در این معماری، منابع سخت‌افزاری با سیستم‌عامل‌های Red Hat یا CentOS مدیریت می‌شوند، در لایه‌ی بعدی Kubernetes قرار می‌گیرد و در نهایت OpenShift در بالاترین لایه، به‌عنوان واسطه‌ی کاربری Kubernetes عمل می‌کند. به کمک این ساختارمی‌توان اپلیکیشن‌های مختلف نوشته شده به زبان هایی مانند Node.js ،Perl ،Python ،Ruby و Java را پیاده‌سازی کرد.

 

شیوه‌ کار OpenShift

OpenShift به توسعه‌دهندگان نرم‌افزار کمک می‌کند که بدون درگیر شدن با جزییات کانتینر و موارد مربوط به آن، اپلیکیشن خود را توسعه دهند، تست کنند، و به انتشار برسانند. در این مفهوم جدید، تنها کاری که برنامه‌نویس باید انجام دهد آن است که کد را به مخزن مشخصی ارسال کند تا ادامه‌ی مسیر به‌وسیله‌ی OpenShift انجام شود. به‌شکل خلاصه، OpenShift با کد دریافت شده یک Docker Image می‌سازد، آن را در یک Registry نگهداری می کند و در زیرساخت مناسب پیاده می‌کند. 

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

 

ویژگی‌های OpenShift

از سوی دیگر OpenShift به تیم DevOps کمک می‌کند تا از در دسترس بودن برنامه برای کاربران مطمین باشند و تعداد میزبان‌های اجرای آن را به‌سادگی کم و زیاد کنند. هم‌چنین، با استفاده از OpenShift می‌توان تعداد ماشین‌های مجازی یک کلاستر را (با کمک Ansible Playbook) تنظیم کرد، کاری که با استفاده از Kubernetes باید به‌شکل دستی انجام شود.

از نظر امنیتی نیز، اگرچه در Kubernetes به عنوان یک پروژه متن باز، می توان مکانیزم‌های امنیتی پیاده کرد اما از سوی دیگر با توجه به ارایه‌ی OpenShift توسط Red Hat، مکانیزم‌های امنیتی بسیاری در آن به‌شکل پیش فرض در نظر گرفته شده و بهبود یافته است.

از آنجا که Image در OpenShift به‌شکل Root اجرا نمی‌شود، ممکن است در بعضی موارد خروجی دریافت شده از اجرای یک Image با خروجی مورد نظر متفاوت باشد. در حالی که چنین مشکلی در کار کردن با Kubernetes وجود ندارد. هم‌چنین باید در نظر داشت با این‌کهOpenShift راهکاری برای تمام مشکلات نیست، اما می‌تواند دشواری کار با Kubernetes را بسیار کم‌تر کند.