جوجو؛ آسان‌کردن توسعه نرم‌افزار

کانونیکال، ‌شرکت پشتیبان توزیع اوبونتو در تلاش است توسعه کد و اجرای عملیات نرم‌افزاری در محیط Cloud را به‌کمک فریم‌ورک juju آسان‌تر کند. مدتی است که از راه‌اندازی طرح جوجو می‌گذرد اما تاکنون تاثیر مثبتی بر جامعه نرم‌افزاری نگذاشته است. ژرژ کاسترو، توسعه‌دهنده کانونیکال و مارک میمز، مهندس نرم‌افزار در دمویی که در کنفرانس اوپن‌سورس OSCON برگزار کردند، نشان دادند که این فریم‌ورک برای استفاده بهینه کاملا مناسب است.
کد خبر: ۴۹۳۶۲۸

آن طور که کاسترو توضیح داد، ایده‌اصلی جوجو، رها شدن از مساله‌ای به‌نام metawork است. متاورک در حقیقت کارهایی است که قبل از اجرای برنامه باید انجام داد. یکی از مثال‌هایی که وی مطرح کرد، کلاینت آی‌آر‌سی Subway بود که بسرعت در حال محبوب شدن است. وقتی ساب‌وی موج اول محبوبیت را کسب کرد، توسعه‌دهندگان آن با درخواست‌های فراوانی در خصوص چگونگی نصب موتور DBMS مواجه شدند.

کار جوجو، دادن ابزارهای لازم به توسعه‌دهندگان و مدیران سیستم در سطح سرویس و نه در سطح ماشین است. در حقیقت، جوجو یک جورهایی App-getای برای Cloud‌ است.

جوجو البته جایگزین برنامه‌هایی چون Puppet و Chef نیست که کارشان پیکربندی خودکار ماشین است. هر سروری تنظیمات نرم‌افزاری خودش را دارد. جوجو سرویس‌ها را مدیریت می‌کند، نه ماشین‌ها را.

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

جوجو در حقیقت کارهای انجام شده DevOps را قابل اشتراک، استفاده مجدد و تکرار می‌کند. می‌توان از نتیجه تلاش دیگران استفاده کرد و اصلاح نشده یا با دستکاری‌های زیاد (مطابق نیاز) از آنها استفاده کرد.

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

طبق گفته کاسترو،‌این فقط یک دمو نیست و اوبونتو از جوجو برای انجام کارهای خود استفاده می‌کند.

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

هم‌اکنون کانونیکال حدود 90 چارم در مخزن عمومی خود در اختیار دارد. استفاده از مخازن یکی دیگر از نقاط مثبت این فریم‌ورک خواهد بود؛ زیرا مشابه Apt-get محبوب، جوجو نیز قابلیت اتصال به مخازن داده را خواهد داشت.

در حال حاضر برای نصب سرورها و کلاوهای محبوبی چون کلاودفاندری، دروپال، مای‌سه‌کوئل، تام‌کت و وردپرس چارم‌هایی نوشته شده است. این ابزارها همه روی اوبونتوی 04/12 اجرا خواهد شد و با توجه به نیاز کاربر به سرورهای کلاود مختلف متصل خواهد شد. هرچند جوجو می‌تواند فراتر از تنظیم سرویس‌های کلاود عمل کند، می‌توان از این فریم‌ورک برای اتصال میان اپلیکیشن‌ها نیز استفاده کرد.

برای مثال می‌توان هادوپ را به یک DBMS خاص وصل کرد یا LAMP را با نسخه‌های خاص برنامه‌های مختلف نصب کرد. همچنین می‌توان از آن برای راه‌اندازی چند نمونه از یک دستور می‌توان استفاده کرد، مثلا:‌

juju add-unit –n20 hadoop-slavecluster

این دستور برای راه‌اندازی 200 نمونه از هادوپ کافی است. در آزمایش‌های کانونیکال، می‌توان تا 2000 نمونه از هادوپ را با جوجو فراخواند و اجرا کرد. البته می‌توان با کمک جوجو چارمی نوشت که اجازه اجرای 2000 نمونه را ندهد!

علاوه بر نصب و حذف نمونه سرویس‌ها، از چارم‌ها می‌توان استفاده دیگری کرد. برای مثال یک چارم در mySQL می‌تواند سه تنظیم داشته باشد: running-level=fast ،safe و unsafe. حالت سریع برای سرعت بالای این سرویس تنظیم شده است. حالت safe سریع‌تر از نصب vanilla است و حالت unsafe باعث می‌شود این سرویس در سریع‌ترین حالت ممکن (و البته بدون ترمز) فعالیت کند. البته می‌توان این چارم‌ها را ویرایش کرد تا نیازهای دیتابیس را بهتر فراهم کند.

فرض کنیم سرویسی برای برنامه‌نویسان Ruby on Rails تهیه می‌کنید؛ گروهی از برنامه‌نویسان که همیشه می‌خواهند آخرین نسخه از برنامه‌هایشان نصب شده باشد. می‌توان چارمی تهیه کرد که هر موقع نمونه‌ای از یک برنامه را اجرا می‌کند، به‌طور خودکار آن را به آخرین نسخه ممکن ارتقا دهد. البته می‌توان چارمی هم تهیه کرد که همواره یک نسخه را اجرا کند و امکان آپدیت وجود نداشته باشد.

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

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

تیم کانونیکال معتقد است برای ایده‌آل شدن جوجو کار زیادی در پیش است. کارهایی از جمله فعالیت در زمینه ذخیره‌سازی ـ که جوجو خیلی در آن ماهر نیست‌ ـ تا سرویس‌هایی همچون PostgreSQL که کار بیشتری نیاز دارد.

با وجود این، جوجو بسیار مفید است و می‌تواند نقش بسزایی در کاهش متاورک داشته باشد.

ترجمه​: محمدرضا قربانی

منبع:linuxtoday

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها