Happy

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

چیست؟

Happy توپولوژی های شبکه پیچیده را شبیه سازی می کند. در یک ماشین لینوکس، Happy می‌تواند چندین گره با پشته‌های شبکه ایجاد کند که از یکدیگر مستقل هستند. برخی از گره ها ممکن است به شبکه های Thread شبیه سازی شده متصل شوند، برخی دیگر ممکن است به شبکه های Wi-Fi شبیه سازی شده، WAN (اینترنت) یا شبکه های سلولی متصل شوند.

Happy به موارد استفاده زیر می پردازد:

  • تست پروتکل های شبکه و سایر برنامه های اجرایی توزیع شده بر روی یک ماشین توسعه لینوکس بدون استفاده از سخت افزار
  • انجام تست عملکرد خودکار در سراسر یک شبکه
  • اجرای چندین شبکه همزمان و موازی در یک سیستم برای بهبود توان آزمایشی

Happy این مشکلات را با ایجاد انتزاعات توپولوژی شبکه با حداقل سربار کاربر حل می کند. توپولوژی های پیچیده ممکن است با یک فراخوان فرمان پوسته ایجاد شوند. Happy از استفاده تعاملی و اسکریپت خودکار پشتیبانی می کند.

از دستورات Happy shell برای تنظیم، تست و اشکال زدایی کد آنها در طول توسعه استفاده کنید. همان پیکربندی شبکه و برنامه های آزمایشی ممکن است سپس اسکریپت شده و در آزمایش خودکار استفاده شوند.

شروع کنید

سریع ترین و ساده ترین راه برای شروع با Happy این است که از Codelab استفاده کنید. کاربر را از طریق تمام اصول Happy راهنمایی می کند، از جمله:

  • ایجاد و حذف توپولوژی
  • گره های شبکه با هم
  • ذخیره و بازیابی توپولوژی ها
  • اتصال توپولوژی به اینترنت
  • اصول را ببافید

شروع با Happy Codelab را امتحان کنید

برای اطلاعات بیشتر در مورد راه اندازی و استفاده از Happy، به تنظیمات و استفاده مراجعه کنید.

معماری

مدل های شاد زیر:

  • Node - یک فضای نام شبکه لینوکس. فرآیندهای شامل گره در یک فضای نام شبکه مشخص اجرا می شوند.
  • پیوند - یک رابط شبکه لینوکس. Happy از دستگاه شبکه veth برای پشتیبانی از رابط های L3 (IP) و دستگاه شبکه tap برای پشتیبانی از رابط های L2 خارج از جعبه استفاده می کند.
  • شبکه - فضاهای نام شبکه لینوکس با پل اترنت که درون آنها اجرا می شود.

پیاده سازی

Happy مجموعه ای از ماژول های پایتون است. ماژول های Core Happy انتزاعاتی را برای موارد زیر ارائه می کنند:

  • مدیریت انتزاع گره ها
    • اضافه کردن، اصلاح و حذف گره ها
    • اجرای مجموعه ای از فرآیندها در گره
  • مدیریت لینک ها
    • افزودن، اصلاح و حذف پیوندها
    • تخصیص پیوندها به یک گره و یک شبکه
    • تخصیص و اصلاح تخصیص آدرس
  • مدیریت شبکه ها
    • ایجاد، اصلاح و تخریب شبکه ها
    • اتصال به شبکه
  • مدیریت وضعیت کلی چارچوب به شیوه ای منسجم

بیشتر انتزاع‌های پیاده‌سازی شده توسط ماژول‌های Happy به دستوراتی تبدیل می‌شوند که ابزارهای شبکه لینوکس را فراخوانی می‌کنند.

Happy همچنین شامل مجموعه‌ای از افزونه‌های موجود در /plugins است. پلاگین ها مجموعه ای از عملکردهای مرتبط با یک فناوری خاص را در بر می گیرند. برای مثال، /plugins/weave حاوی کمک‌هایی است که برنامه‌های Weave مختلف را برای اجرا در Happy قرار می‌دهند.

اجرا

کاربران می توانند توپولوژی های شبیه سازی شده را از طریق دو روش بسازند:

  • دستورات پوسته - همه دستورات در /bin هستند.
  • اسکریپت های پایتون - ماژول های Happy را برای فراخوانی دستورات Happy در اسکریپت های پایتون خود وارد کنید. ماژول ها در /happy .

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