Bagaimana arsitektur tanpa server mengelola koneksi basis data?

10

Keuntungan utama dari arsitektur serverless dikatakan bahwa program-program seperti itu tidak memerlukan server khusus untuk berjalan terus menerus. Kemudian dipanggil berdasarkan permintaan dan berhenti keluar dari fungsi.

Ini berarti bahwa program tanpa server harus cepat untuk memulai, agar responsif. Bagaimana cara menangani tindakan yang menghabiskan waktu seperti koneksi database? Apakah itu terhubung ke database setiap kali atau apakah ia mengelola koneksi database secara terpisah untuk fungsi pemanggilan seperti yang dilakukan dalam aplikasi server?

Pengguna Terdaftar
sumber

Jawaban:

9

Karena aplikasi tanpa server tidak membuat keadaan berjalan, aplikasi tidak dapat mempertahankan kumpulan koneksi database. Aplikasi tanpa server benar-benar menghadapi kendala yang sama dengan skrip CGI 90-an. Secara umum, proses server permanen akan dapat mengungguli arsitektur proses-per-permintaan atau kontainer-per-permintaan karena server melakukan inisialisasi sekali, bukan sekali per permintaan.

Program tanpa server tidak cocok untuk tugas yang sensitif terhadap latensi seperti melayani situs web. Mereka lebih cocok untuk tugas latar belakang sporadis yang tidak ingin Anda jalankan di server utama Anda, tanpa harus mengelola dan memuat server aplikasi tambahan secara manual. Mereka juga mungkin cocok jika produktivitas pengembang jauh lebih penting daripada respons latensi rendah.

amon
sumber
Poin luar biasa. Saya juga menyarankan bahwa satu keuntungan utama yang mendorong orang ke serverless adalah biayanya. Jika Anda membayar penyedia (mis. Amazon) hanya berdasarkan # permintaan, dan tidak membayar untuk menjaga server idle berjalan, Anda akan menghemat uang terutama selama fase startup.
Paul
2
@ Paul Keuntungan utama serverless adalah kenyamanan (PaaS vs. IaaS). Mengelola server dengan aman adalah suatu keahlian yang tidak dimiliki sebagian besar pengembang (termasuk saya). Saya yakin ada beberapa skenario di mana serverless terasa lebih murah. Tetapi server pribadi virtual mulai dari $ 5 / bulan yang sangat kompetitif, untuk mengatakannya dengan ringan. Terutama mengingat bahwa VPS memiliki batasan yang jauh lebih sedikit, memungkinkan Anda untuk menjalankan perangkat lunak sewenang-wenang dan layanan permanen. Ini sedikit perbandingan apel dengan jeruk. Dalam satu model Anda membayar untuk server idle, yang lain Anda membayar untuk waktu startup yang berulang.
amon
4

Tergantung.

Implementasi di belakang layar pelari lambda akan mempengaruhi ini. Kita dapat melihat bahwa di AWS, wadah mungkin digunakan kembali.

http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html

Jadi kita bisa melihat koneksi pooling / reuse untuk beberapa permintaan setidaknya. Kita juga harus mempertimbangkan database itu sendiri dan bagaimana ia memperlakukan permintaan koneksi masuk.

Pertanyaan semacam ini bagi saya menggarisbawahi beberapa masalah dengan 'serverless' masih sangat baru dan belum matang, sehingga detailnya belum dituntaskan.

Kita harus selalu ingat bahwa tanpa server tidak berarti tidak ada server. Jika tingkat di mana Anda memanggil lambda cukup tinggi, Anda mungkin secara efektif memiliki beberapa server, atau 'wadah' berjalan.

Dalam praktiknya, waktu mulai dan sumber daya seperti alamat IP dari lambdas dapat menjadi masalah nyata. Mungkin ketika mereka matang konsensus tentang bagaimana menjalankannya akan muncul dan masalah ini akan mendapatkan jawaban yang solid.

Ewan
sumber