Biaya dan Efisiensi Antara iFaaS dan FaaS (AWS) dalam Membuat Aplikasi Tanpa Server

Arsitektur tanpa server adalah desain sistem canggih yang memungkinkan pengembang membuat dan menjalankan kode tanpa mengelola server dan tanpa membayar layanan cloud yang menganggur.
AWS adalah salah satu penyedia layanan cloud terbesar, tempat Anda dapat membuat sistem Tanpa Server yang kuat. Namun, ada tiga perspektif di bawah ini yang ingin kami sentuh tentang perbedaan antara Kode Lolo (fungsi integrasi sebagai layanan) dan AWS (fungsi sebagai layanan) dalam membuat Aplikasi Tanpa Server.
- Biaya
- Pertunjukan
- Efisiensi
Harga AWS
AWS menawarkan pendekatan harga sesuai penggunaan untuk Anda. Dengan kata lain, Anda akan membayar berapa banyak Anda telah menggunakan sumber daya AWS.
Contoh Harga AWS
API digunakan dalam Aplikasi Web Tanpa Server yang memanggil Lambda untuk mengembalikan konten halaman web dinamis. Situs ini mendapat 10.000 pemuatan halaman per menit. Setiap permintaan API adalah 12KB dan responsnya adalah 46 KB.
Ini akan menjadi total 432 juta permintaan per bulan.
Biaya bulanan = $418,8 ($0,97 per juta) * dalam biaya Amazon API Gateway (tidak termasuk Lambda atau DynamoDB)
Harga Kode Lolo
Lolo Code juga menawarkan model bayar sesuai penggunaan, tetapi lebih mudah, Anda membayar jumlah peristiwa yang perlu diproses oleh aplikasi Anda secara bersamaan, bukan total peristiwa.
Anda dapat berlangganan 1 Aplikasi dengan 1 LCU (atau Replika) dengan memori 256 mb dan 0,125 core (CPU) mulai dari 9 euro per bulan. Tingkat gratis mencakup dua aplikasi dengan masing-masing 1 LCU, tetapi mengharuskan Anda untuk terlibat dengan aplikasi seminggu sekali agar tetap berjalan. Jika Anda ingin meningkatkan replika untuk aplikasi tingkat gratis, harganya masing-masing mulai dari €9.
Harga Contoh Kode Lolo
Mengambil contoh yang sama seperti di atas untuk API Gateway kami melakukan beberapa perhitungan.
Jika situs mendapatkan 10.000 pemuatan halaman per menit dan setiap permintaan API berukuran 12KB dan responsnya adalah 46 KB, kami perlu memproses 10k req/mnt untuk aplikasi Lolo. Ini membutuhkan 0,131 (inti) dan memori 85 mb. Oleh karena itu, ini memerlukan dua replika masing-masing seharga €9, tetapi kami masih memiliki ruang untuk lebih banyak permintaan dalam aplikasi tersebut. Hasilnya adalah
Biaya bulanan = €18 per bulan biaya untuk aplikasi Lolo.
Lolo dapat dilihat sebagai kombinasi dari AWS Lambda dan API Gateway. Anda juga dapat menggunakan Lolo's baked in state store untuk menyimpan konten halaman web dinamis Anda. Dengan cara ini tidak akan ada biaya tersembunyi. Total yang akan Anda bayarkan hanyalah €18 per bulan.
Performa: Perbedaan antara iFaaS dan FaaS
AWS mungkin menawarkan semua yang Anda butuhkan, dan Anda dapat merancang aplikasi berskala besar dengan redundansi, skalabilitas, dan ketersediaan tinggi. Di sisi lain, Anda harus mengetahui sistem jaringan dengan baik dan terbiasa dengan arsitektur AWS untuk membuka potensinya. Tanpa server juga hadir dengan kelemahannya. Salah satunya adalah "awal dingin" yang terkenal.
Sebagai ilustrasi, aplikasi Anda akan menunggu selama jangka waktu tertentu hingga penampung siap menjalankan kode. Permintaan ini membutuhkan waktu lebih lama untuk diproses karena aplikasi Tanpa Server perlu mengaktifkan fungsi (yaitu mengunduh kode, pustaka, modul/dll, dan menginisialisasi lingkungan untuk menjalankan kode). Masalah ini muncul di semua aplikasi Tanpa Server baik di Lolo Code atau AWS.
AWS
AWS menjadi terkenal lebih baik sejak armada Lambda bermigrasi ke teknologi Firecracker pada tahun 2018. Namun, karena fungsinya masih perlu berputar, start dingin akan berlaku.
Di AWS, Anda dapat membangunkan Lambda dengan jumlah kontainer minimum. Tetapi Anda harus membayar biaya tambahan untuk menjalankannya terus-menerus.
Kami meminta pengguna melakukan pengujian * pada penundaan mulai AWS Lambda musim panas ini (menggunakan AWS EU). Hasil percobaan di bawah ini.
+-----------+--------------------
| time | ms
+-----------+--------------------
| 1 min | 180 ms
| 15 min | 750 ms
| 3h | 1467 ms
| 10h | 2060 ms
+-----------+--------------------
Aplikasi di Lolo Code juga memiliki masalah "Cold Start" tetapi Aplikasi Lolo Anda tetap berjalan hingga Anda menghentikannya. Yaitu karena Kode Lolo bekerja dengan wadah, aplikasi Anda secara teknis akan selalu berjalan sampai Anda menghentikannya. Pada dasarnya Anda tidak perlu peduli dengan start dingin.
Namun, pengguna dari atas yang melakukan pengujian di AWS melakukan pengujian yang sama persis di Lolo Code. * Hasilnya ditunjukkan di bawah ini.
+-----------+--------------------
| time | ms
+-----------+--------------------
| 1 min | 172 ms
| 15 min | 210 ms
| 3h | 602 ms
| 10h | 890 ms
+-----------+--------------------
Hal lain yang perlu dipertimbangkan adalah jika skrip Anda berjalan terlalu lama, AWS mungkin bukan pilihan terbaik. Batas waktu maksimal AWS Lambda adalah 900 detik (15 menit) sedangkan Lolo tidak memiliki batas waktu maksimal.
Efisiensi: Bagaimana cara membuat dan mengelola aplikasi Tanpa Server?
Membuat API di AWS dan Lolo Code sangatlah mudah. Namun, ada perbedaan.
AWS
Di AWS Anda membangun fungsi Lambda Anda dan kemudian menghubungkannya dengan layanan lain, API Gateway, yang akan bertindak sebagai pemicunya. Di sini Anda memiliki fungsi anonim yang akan dipicu saat terjadi sesuatu. Ini adalah FaaS yang sangat ideal, fungsi anonim yang hanya dipicu saat suatu peristiwa terjadi.
Karena fungsinya tidak memiliki kewarganegaraan, Anda harus mengambil data di tempat lain, dalam hal ini Anda dapat menggunakan AWS DynamoDB untuk menyimpan dan mengambil data.

Ini terlihat seperti desain yang dapat diskalakan dan kuat, namun, Anda perlu mempertimbangkan beberapa faktor penting:
- Bagaimana mengelola perubahan pada kode perangkat lunak?
- Bagaimana cara menyebarkan atau menyesuaikan aplikasi Anda dengan cepat?
- Di mana harus mulai memeriksa seluruh layanan jika ada masalah infra?
Lihat tutorial lengkap tentang cara membangun API HTTP dengan Lambda, API Gateway, dan DynamoDB di sini .
Kode Lolo
Dengan Kode Lolo Anda dapat menambahkan pemicu HTTP dan kemudian menggunakan toko negara yang dipanggang untuk database. Anda dapat menambahkan fungsi mentah baru untuk bertindak sebagai lambda Anda (untuk mengikuti kasus penggunaan yang tepat dari atas).
Aplikasi Lolo Anda mungkin terlihat seperti ini.

Anda akan memutuskan apa yang ada di blok kode hanya dengan mengubah kodenya (NodeJS) dan kemudian mengganti namanya.
Selanjutnya, Kode Lolo menawarkan fungsi Perpustakaan yang dapat Anda salin dan gunakan fungsi templat yang ada dan buat templat Anda sendiri. Untuk kasus API, kita dapat menggunakan fungsi Lolo/CRUD API v3 untuk membuat CRUD API dengan cepat. Ini akan lebih cepat daripada mengatur sendiri dari awal.

Anda tidak perlu mengubah terlalu banyak hal di tempat yang berbeda. Dengan Kode Lolo, semua pekerjaan Anda ada di satu tempat.
Setelah Anda menyimpan dan menjalankan aplikasi Anda, Anda tidak perlu khawatir tentang memelihara atau menyediakan server Anda sendiri agar tetap berjalan (yaitu sepenuhnya "tanpa server"). Kecuali jika Anda memutuskan untuk menggunakan runtime pribadi di akun cloud publik atau pusat data pribadi Anda sendiri. Lihat Lolo runtime-d docs di sini . Runtime-d adalah biner mandiri yang mengubah laptop atau server linux apa pun menjadi runtime Lolo.
Ringkasan
AWS adalah platform cloud yang tersebar luas, menawarkan layanan berfitur lengkap dari pusat data secara global.
Dengan AWS, Anda dapat melakukan banyak hal, tetapi juga memerlukan upaya dan waktu yang layak untuk mengubah ide Anda menjadi aplikasi dan menerapkannya di AWS. Kode Lolo akan membantu Anda mempercepat pengembangan dan menjaganya tetap berjalan dengan biaya lebih sedikit. Meskipun Lolo Code menggunakan cloud AWS untuk menerapkan aplikasi, Lolo Code juga menawarkan kemampuan untuk menggunakan runtime Anda sendiri, menjadikannya cloud agnostic.
❤️ Lolo