it-swarm.asia

Fargate vs Lambda, kapan harus menggunakan yang mana?

Saya cukup baru untuk seluruh lanskap Serverless, dan saya mencoba membungkus kepala saya kapan harus menggunakan Fargate vs Lambda.

Saya sadar bahwa Fargate adalah bagian dari ECS yang tidak memiliki server, dan Lambda juga tidak memiliki server tetapi didorong oleh berbagai peristiwa. Tapi saya ingin bisa menjelaskan dua paradigma secara sederhana kepada orang lain yang akrab dengan wadah tetapi tidak banyak dengan AWS dan serverless.

Saat ini kami memiliki beberapa server fisik yang bertugas menerima file teks, menguraikannya, dan mengisi beberapa tabel db dengan hasilnya. Berdasarkan pemahaman saya, saya pikir ini akan menjadi kasus penggunaan yang lebih cocok untuk Lambda karena proses yang mem-parsing file teks dipicu oleh jadwal, tidak berjalan lama, dan landai ketika tidak digunakan.

Namun, jika kami melakukan porting ke salah satu server kami yang menerima panggilan API, kami mungkin ingin menggunakan Fargate karena kami akan selalu membutuhkan setidaknya satu instance gambar untuk beroperasi.

Dalam hal wadah, dan dalam istilah yang sangat umum akan lebih aman untuk mengatakan bahwa jika wadah itu dirancang untuk dilakukan:

docker run <some_input>

Maka itu adalah pekerjaan untuk Lambda.

Tetapi jika wadah itu dirancang untuk melakukan sesuatu seperti:

docker run --expose 80

Maka itu adalah pekerjaan untuk Fargate.

Apakah ini analogi yang bagus?

17
janDro

Itu awal dari analogi yang bagus. Namun Lambda juga memiliki keterbatasan dalam hal CPU dan RAM yang tersedia, dan waktu menjalankan maksimum 15 menit per doa. Jadi apa pun yang membutuhkan lebih banyak sumber daya, atau perlu berjalan lebih dari 15 menit, akan lebih cocok untuk Fargate.

Juga saya tidak yakin mengapa Anda mengatakan sesuatu lebih cocok untuk Fargate karena Anda "selalu membutuhkan setidaknya satu contoh berjalan". Lambda + API Gateway sangat cocok untuk panggilan API, API Gateway selalu siap untuk menerima panggilan API dan kemudian akan memanggil fungsi Lambda untuk memprosesnya (jika responsnya belum di-cache).

13
Mark B

Penting untuk diperhatikan bahwa dengan Lambda Anda tidak perlu membangun, mengamankan, atau memelihara wadah. Anda hanya khawatir tentang kodenya. Sekarang seperti yang telah disebutkan, Lambda memiliki batas waktu menjalankan maks dan batas memori 3GB (CPU meningkat secara proporsional). Juga jika digunakan secara sporadis, mungkin perlu dipanaskan terlebih dahulu (dipanggil sesuai jadwal) untuk kinerja ekstra.

Fargate mengelola wadah buruh pelabuhan, yang perlu Anda tetapkan, pelihara, dan amankan. Jika Anda memerlukan kontrol lebih besar atas apa yang tersedia di lingkungan tempat kode Anda berjalan, Anda berpotensi menggunakan wadah (atau server), tetapi itu lagi-lagi datang bersama manajemen. Anda juga memiliki lebih banyak opsi pada ukuran Memori/CPU dan lamanya waktu yang dapat dijalankan untuk dijalankan.

Bahkan untuk server API seperti yang Anda sebutkan, Anda dapat menempatkan gateway API di depan dan memanggil Lambda.

10
Pedro Graber

Seperti yang telah disebutkan oleh Mark, Anda dapat Lambda + API Gateway untuk mengekspos fungsi lambda Anda sebagai API. Tetapi lambda memiliki batasan signifikan dalam hal fungsi eksekusi. Ada batasan pada bahasa pemrograman yang didukung, konsumsi memori dan waktu eksekusi (Itu meningkat menjadi 15 menit baru-baru ini dari 5 menit sebelumnya). Di sinilah AWS Fargate dapat membantu dengan memberikan manfaat dari dunia kontainer dan dunia Serverless (FaaS). Di sini Anda hanya khawatir tentang wadah (CPU-nya, persyaratan memori, kebijakan IAM ..) dan menyerahkan sisanya ke Amazon ECS dengan memilih jenis peluncuran Fargate. ECS akan memilih jenis contoh yang tepat, mengelola kluster Anda, penskalaan otomatis, pemanfaatan optimal.

3
vkumars

Ini analogi yang benar, tetapi ini bukan daftar lengkap untuk dapat menjelaskan kedua paradigma tersebut.

Secara umum, Lambda lebih cocok untuk aplikasi tanpa server. Sifatnya adalah fungsi-sebagai-layanan (FaaS). Itu hanya melakukan tugas-tugas sederhana dan itu saja. Jangan berharap terlalu banyak.

Ini harus dipertimbangkan sebagai opsi pertama untuk modul serverless. Tetapi memiliki lebih banyak batasan dan batasan. Arsitektur modul dijabarkan dari persyaratan fungsional dan bukan fungsional, infrastruktur yang dikelilingi dan banyak faktor lainnya.

Untuk membuat keputusan minimum, Anda harus meninjau daftar pembatasan seperti:

  1. Portabilitas
  2. Kontrol lingkungan
  3. Jenis pemicu
  4. Waktu merespon
  5. Ukuran respons
  6. Waktu proses
  7. Penggunaan memori

Ini adalah faktor utama. Tetapi daftar ini belum mencakup semua faktor dan batasan untuk dipertimbangkan antara kedua teknologi tanpa server ini.

Untuk mengetahui lebih banyak tentang saya merekomendasikan artikel ini https://medium.com/greenm/aws-lambda-or-aws-fargate-the-step-by-step-guide-to-choosing-the-right- technology-925ebcf89b7c

0
okiri