Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Happy

Happy adalah alat untuk orkestrasi ringan dari topologi jaringan yang disimulasikan. Gunakan untuk menguji protokol jaringan dan program eksekusi terdistribusi lainnya pada satu mesin pengembangan Linux tanpa menggunakan perangkat keras perangkat IoT.

Apa itu?

Happy mensimulasikan topologi jaringan yang kompleks. Pada satu mesin Linux, Happy dapat membuat banyak node dengan tumpukan jaringan yang independen satu sama lain. Beberapa node mungkin terhubung ke jaringan Thread simulasi, yang lain mungkin terhubung ke simulasi Wi-Fi, WAN (Internet), atau jaringan seluler.

Happy menangani kasus penggunaan berikut:

  • Menguji protokol jaringan dan program eksekusi terdistribusi lainnya pada satu mesin pengembangan Linux tanpa menggunakan perangkat keras
  • Melakukan pengujian fungsional otomatis di seluruh jaringan
  • Menjalankan beberapa jaringan paralel bersamaan pada sistem yang sama untuk meningkatkan hasil pengujian

Happy memecahkan masalah ini dengan membuat abstraksi topologi jaringan dengan overhead pengguna yang minimal. Topologi kompleks dapat dibuat dengan satu panggilan perintah shell. Happy mendukung penggunaan interaktif dan skrip otomatis.

Gunakan perintah Happy shell untuk menyiapkan, menguji, dan men-debug kode mereka selama pengembangan. Konfigurasi jaringan dan program pengujian yang sama kemudian dapat ditulis dan digunakan dalam pengujian otomatis.

Memulai

Cara tercepat dan termudah untuk memulai Happy adalah melalui Codelab. Ini memandu pengguna melalui semua dasar-dasar Happy, termasuk:

  • Membuat dan menghapus topologi
  • Jaringan node bersama-sama
  • Menyimpan dan memulihkan topologi
  • Menghubungkan topologi ke internet
  • Dasar-dasar menenun

Coba Memulai dengan Happy Codelab

Lihat Pengaturan dan Penggunaan untuk informasi lebih lanjut tentang pengaturan dan penggunaan Selamat.

Arsitektur

Senang model berikut:

  • Node - Sebuah Linux jaringan namespace. Proses yang terdiri dari node yang dijalankan dalam namespace jaringan yang ditentukan.
  • Link - antarmuka jaringan A Linux. Senang menggunakan veth perangkat jaringan untuk mendukung L3 (IP) antarmuka dan tap perangkat jaringan untuk mendukung L2 interface keluar dari kotak.
  • Jaringan - Linux ruang nama jaringan dengan jembatan Ethernet berjalan dalam mereka.

Penerapan

Happy adalah kumpulan modul Python. Modul Core Happy menyediakan abstraksi untuk:

  • Mengelola abstraksi simpul
    • Menambah, memodifikasi, dan menghapus node
    • Menjalankan serangkaian proses di dalam node
  • Mengelola tautan
    • Menambah, memodifikasi, dan menghapus tautan
    • Menetapkan link ke node dan jaringan
    • Menetapkan dan memodifikasi penetapan alamat
  • Mengelola jaringan
    • Membuat, memodifikasi, dan menghancurkan jaringan
    • Konektifitas jaringan
  • Mengelola keadaan keseluruhan kerangka kerja dengan cara yang kohesif

Sebagian besar abstraksi yang diterapkan oleh modul Happy dipetakan ke dalam perintah yang memanggil alat jaringan Linux.

Senang juga berisi satu set plugin yang ditemukan di /plugins . Plug-in membungkus serangkaian fungsi yang terkait dengan teknologi tertentu. Sebagai contoh, /plugins/weave mengandung pembantu yang membungkus berbagai aplikasi Weave untuk eksekusi dalam Bahagia.

Eksekusi

Pengguna dapat membangun topologi simulasi melalui dua metode:

  • Shell perintah - Semua perintah dalam /bin .
  • Skrip Python — Impor modul Happy untuk memanggil perintah Happy di skrip Python Anda sendiri. Modul berada di /happy .

Untuk informasi lebih lanjut tentang menggunakan Selamat modul dalam script Python Anda sendiri, lihat scripting Python .