13 poin oleh xguru 2023-10-26 | Belum ada komentar. | Bagikan ke WhatsApp
  • Platform FaaS yang digunakan Meta secara internal
  • Menangani triliunan pemanggilan fungsi setiap hari di lebih dari 100.000 server yang tersebar di puluhan region pusat data
  • Diklaim lebih efisien daripada AWS Lambda dan Azure Functions, serta dipublikasikan melalui makalah "XFaaS: Hyperscale and Low Cost Serverless Functions"

Statistik menarik dan implikasinya

  • Inti makalah ini adalah bahwa kinerja serverless dapat ditingkatkan dengan mengoptimalkan penggunaan hardware melalui software
  • Meta menyadari pemborosan startup overhead pada Serverless Functions, dan menargetkan emulasi Universal Worker agar semua worker dapat langsung menjalankan semua fungsi tanpa overhead saat memulai
    • Pada skala sebesar ini, biaya hardware sangat besar dan bahkan persentase yang sangat kecil pun penting
  • XFaaS hanya digunakan untuk fungsi yang tidak berhadapan langsung dengan pengguna. Fungsi serverless memiliki terlalu banyak variabilitas latensi untuk digunakan secara konsisten pada fungsi yang berhadapan dengan pengguna
  • Klien XFaaS menjalankan pemanggilan fungsi dengan pola yang sangat meledak-ledak. Permintaan puncak 4,3 kali lebih tinggi daripada permintaan di luar jam sibuk
    • Sebagai contoh, 20 juta pemanggilan fungsi pernah dikirim ke XFaaS dalam waktu kurang dari 15 menit
    • Meta menemukan bahwa bahkan fungsi yang melonjak pun memiliki pola, dan memanfaatkan hal itu untuk membuat lonjakan dalam workload lebih dapat diprediksi

Seberapa efisien XFaaS?

  • Mencapai utilisasi CPU rata-rata harian sebesar 66%, jauh lebih tinggi dari rata-rata industri
  • Mendistribusikan beban secara efisien dengan memanfaatkan waktu (melalui latensi fungsi) dan ruang (dengan mengirim ke pusat data yang bebannya lebih ringan)

    Meta terus mengalihkan banyak fungsi untuk dijadwalkan pada jam penggunaan rendah, saat beban dan biaya bisa diprediksi

  • Karena merupakan cloud internal, Meta dapat melakukan berbagai optimasi unik seperti menjalankan beberapa fungsi dari beberapa pengguna dalam proses yang sama
  • Sebagian besar fungsi berjalan dalam waktu kurang dari 1 detik, tetapi tidak semua fungsi demikian

Masalah yang diselesaikan dengan XFaaS

  • Masalah: waktu cold start yang panjang
    • Jika container dimatikan terlalu cepat, seluruh container harus diinisialisasi ulang untuk pemanggilan berikutnya
    • Jika container dimatikan terlalu lambat, container akan tetap idle dan membuang resource komputasi yang berharga
    • Solusi: XFaaS melakukan pendekatan (approximate) agar semua worker dapat langsung menjalankan semua fungsi, menggunakan metode seperti kompilasi JIT
  • Masalah: distribusi beban yang berat sebelah
    • Over-provisioning menimbulkan biaya hardware tambahan, sementara underprovisioning memperlambat sistem
    • Solusi: XFaaS menunda eksekusi fungsi yang delay-tolerant hingga waktu penggunaan rendah dan mendistribusikan pemanggilan fungsi ke region pusat data di seluruh dunia
  • Masalah: layanan downstream mengalami kelebihan beban
    • Contoh: lonjakan pemanggilan fungsi yang tidak berhadapan dengan pengguna pernah menyebabkan layanan online yang berhadapan dengan pengguna berhenti
    • Solusi: XFaaS mengatur eksekusi fungsi dengan mekanisme yang mirip kontrol kemacetan TCP

Perbandingan dengan FaaS umum (AWS Lambda, Google Cloud Functions, Azure Functions)

  • FaaS public cloud membatasi eksekusi fungsi ke satu region pusat data, sedangkan XFaaS dapat mendistribusikan pemanggilan fungsi secara global untuk meningkatkan load balancing
  • Platform FaaS umumnya memprioritaskan penurunan latensi sambil mengabaikan utilisasi hardware. XFaaS berfokus pada utilisasi hardware dan throughput pemrosesan pemanggilan fungsi
  • Teknologi XFaaS yang dapat membantu public cloud
    • Mengizinkan pemanggil menentukan waktu mulai eksekusi fungsi
    • Mengizinkan pemilik fungsi menetapkan service level objective (SLO) terkait tenggat penyelesaian; jika SLO lebih longgar, eksekusi dapat ditunda demi runtime yang lebih baik
    • Mengizinkan pemilik fungsi menentukan tingkat prioritas untuk fungsi
  • Public cloud tidak dapat menjalankan fungsi dari banyak pengguna dalam proses yang sama seperti XFaaS, tetapi pelanggan cloud berskala besar dapat mengadopsi pendekatan XFaaS di virtual private cloud
  • Sejumlah kecil tim di Meta mengonsumsi porsi besar kapasitas XFaaS. Pelanggan besar serupa di public cloud kemungkinan juga bisa mendapatkan manfaat dari strategi XFaaS

Latar belakang: asumsi dan persyaratan

  • Asumsi
    • Insight utamanya adalah bahwa sebagian besar fungsi XFaaS dipicu oleh workflow otomatis dan dapat mentoleransi latensi
    • Ini memungkinkan XFaaS mendistribusikan beban lintas waktu (dengan menunda fungsi) dan ruang (dengan mengirimkannya ke pusat data yang bebannya lebih ringan)
    • XFaaS mendukung runtime PHP, Python, Erlang, Haskell, serta runtime umum berbasis container untuk semua bahasa
    • Fungsi memiliki berbagai atribut yang dapat diatur developer seperti nama fungsi, argumen, runtime, prioritas, waktu mulai eksekusi, tenggat penyelesaian eksekusi, kuota resource, batas konkurensi, dan kebijakan retry; tenggat penyelesaian dapat diatur dari hitungan detik hingga 24 jam
    • Karena kapasitas hardware tiap region berbeda, load balancing XFaaS harus mempertimbangkannya
  • Jenis workload
    • Meta mendukung tiga jenis workload di XFaaS
      • Fungsi yang dipicu antrean
      • Fungsi yang dipicu event (peristiwa perubahan data pada data warehouse dan sistem data stream)
      • Fungsi yang dipicu timer (berjalan otomatis pada waktu yang telah ditentukan)
    • XFaaS digunakan untuk fungsi non-user-facing seperti sistem rekomendasi asinkron, logging, bot produktivitas, dan notifikasi

Arsitektur keseluruhan

(Bagian ini dihilangkan karena terlalu panjang dan hampir menyalin isi makalah secara langsung.)

Belum ada komentar.

Belum ada komentar.