Mengapa pengembang tidak berteman dengan Tanpa Server



Saya baru-baru ini menonton video dari developer dan youtuber yang baik berjudul "Serverless Senselessness." Saya menyukai pemikiran penulis, tetapi saya tidak setuju dengan beberapa pernyataannya dan ingin membahasnya dalam artikel ini.



Video tersebut dimulai dengan lelucon: "Ada dua hal di dunia ini yang tidak saya mengerti - anak perempuan dan komputasi tanpa server." Saya tidak tahu apa-apa tentang hubungan developer ini dengan perempuan, tapi apakah dia benar tentang Serverless? Mari kita lihat poin kritis utamanya dan diskusikan kemungkinan argumen yang mendukung komputasi tanpa server.



Peringatan spoiler: Saya percaya pada Tanpa Server. Anda hanya perlu mengetahui kapan dan bagaimana menggunakan teknologi ini.




Kritik tanpa server



Argumen utama melawan komputasi tanpa server adalah kecepatan. Atau masalah start dingin yang terkenal. Cold start adalah penundaan dalam eksekusi kode (dapat mencapai hingga 1 detik untuk bahasa seperti JavaScript, Python, Go, Java, Ruby), yang terjadi karena kebutuhan untuk mengalokasikan resource komputasi, mengambil kode, dan meluncurkan container dari sisi penyedia.



Terkadang ini benar-benar tentang milidetik. Ini menimbulkan pertanyaan: apakah benar seberapa cepat kode menyelesaikan tugasnya sebagai metrik utama keberhasilan manajemen siklus hidup aplikasi?



Sebagai orang yang bekerja di bidang IT dan dihadapkan pada perkembangan teknologi yang relevan, saya tidak yakin apa metrik kecepatan adalah kuncinya. Bagaimanapun, ada kriteria lain seperti kecepatan siklus pengembangan, kemudahan pemeliharaan, waktu pengembalian produk, biaya rendah untuk pengguna akhir, dan pengurangan risiko gangguan dengan memastikan operasi TI yang tidak terganggu. Akhirnya, menghemat waktu pengembang. Jika Anda memikirkannya, Komputasi Tanpa Server memenuhi semua kriteria ini.



Apa yang hilang dari pengembang? Manfaat nyata dari Tanpa Server



Jika Anda peduli dengan kecepatan eksekusi kode sedemikian rupa sehingga kemungkinan latensi 200 milidetik (hingga satu detik) tidak dapat diterima untuk pekerjaan Anda, maka komputasi tanpa server mungkin tidak benar-benar berfungsi untuk Anda, dan ini sepenuhnya normal. Namun, ini bukan alasan untuk menyebut Tanpa Server sebagai hal yang tidak berguna. Setiap orang harus memutuskan bagaimana penundaan seperti itu tidak dapat diterima baginya.



Komputasi Tanpa Server adalah cara yang ampuh untuk mengelola infrastruktur TI, terutama bagi perusahaan yang mungkin tidak memiliki sumber daya untuk membeli infrastruktur mereka sendiri dan menyewa spesialis untuk memelihara server 24/7.



- Serverless . ยซ ยป. Serverless, .




Dalam sebagian besar kasus yang saya temui, menggunakan komputasi tanpa server jauh lebih murah daripada menggunakan sumber daya yang dihosting sendiri. Ini benar tidak hanya untuk biaya daya komputasi seperti itu. Yang membuat Serverless lebih murah adalah solusinya menghemat waktu yang diperlukan untuk mengoperasikan, menskalakan, dan memelihara infrastruktur. Anda akan mengalami penghematan biaya yang nyata karena Anda tidak perlu menyewa tim insinyur sistem internal. Talenta yang baik harganya jauh lebih mahal daripada komputasi tanpa server.



Saya tidak mengatakan bahwa komputasi tanpa server adalah obat mujarab dan cocok untuk semua orang. Jika beban kerja Anda stabil dan Anda memiliki keahlian yang cukup untuk mengelola infrastruktur Anda, Anda mungkin lebih baik menjalankannya di server klasik.



Start dingin bisa diratakan



Kembali ke pertanyaan tentang waktu eksekusi kode, masalah cold start sangat bergantung pada cara Anda membuat kode dan mengkonfigurasi Tanpa Server.



Secara umum, ada banyak cara untuk melunakkan start dingin dengan "memanaskannya". Jadi, Anda dapat menjalankan fungsi dengan frekuensi tertentu, memulai layanan lebih sering, atau membiarkan beberapa container tetap berjalan sepanjang waktu (jika penyedia mengizinkannya). Tindakan ini akan menyediakan "lingkungan hangat" yang diperlukan untuk memulai fungsi.



Selain itu, beberapa penyedia Tanpa Server menawarkan sistem pemantauan bawaan yang memberi tahu Anda tentang fungsi start dingin apa pun sehingga Anda dapat menyederhanakan prosesnya. Anda bahkan dapat menyinkronkan dengan email atau ruang kerja seperti Slack - pesan awal yang dingin akan tiba di kotak masuk Anda.



Berapa banyak latensi yang dapat diterima untuk beban kerja Anda?



Ada baiknya jika Anda mengetahui jawaban atas pertanyaan ini. Latensi start dingin biasanya disebut sebagai milidetik. Dalam semua kasus penggunaan yang saya temui dalam pekerjaan saya sebagai insinyur data, keterlambatan dalam pekerjaan sehari-hari tidak terlihat.



Selain itu, penyedia tingkat lanjut memungkinkan Anda membuat infrastruktur hybrid yang mencakup komputasi tanpa server dan server.



Komputasi tanpa server adalah tentang NoOps dan skalabilitas



Tanpa server memungkinkan Anda menghasilkan nilai bisnis lebih cepat karena penyedia cloud mengambil alih sebagian besar operasi TI. Mengalokasikan daya komputasi, menskalakan cluster sesuai beban yang diperlukan, memantau keamanan dan pembaruan, menjaga integritas peralatan, dan sebagainya. Karena sakit kepala yang terkait dengan manajemen infrastruktur telah hilang, Anda dapat berkonsentrasi untuk bekerja dengan klien. Apakah ini hal utama pada akhirnya?



Tanpa server membebaskan waktu insinyur yang sangat terampil sehingga mereka dapat fokus pada penyelesaian masalah bisnis daripada mengelola kluster.



Kapan Komputasi Tanpa Server sangat berguna?



Bayangkan Anda sedang memulai sebuah startup. Anda mungkin tidak memerlukan infrastruktur yang signifikan pada awalnya, dan Anda mungkin hanya memiliki satu pengembang. Paradigma Tanpa Server memungkinkan Anda untuk memulai dari yang kecil dan secara otomatis berkembang seiring bisnis Anda tumbuh dengan model biaya Bayar sesuai pemakaian.



Grup lain yang bisa mendapatkan keuntungan besar dari Serverless Computing adalah bisnis kecil yang tidak memiliki departemen TI yang besar. Kemampuan untuk mengelola seluruh siklus hidup aplikasi hanya dengan satu insinyur DevOps (bukan tim pemrogram) adalah keuntungan besar dari Komputasi Tanpa Server.



Jika situs atau aplikasi Anda sedang dimuat musiman, Tanpa Server juga merupakan pilihan yang bagus. Misalnya, jika Anda memiliki bisnis e-niaga, kemungkinan Anda akan mengalami puncak selama Black Friday dan Malam Tahun Baru. Infrastruktur tanpa server memungkinkan Anda menyesuaikan konsumsi kapasitas dengan situasi seperti itu.



Selain itu, tidak semua peristiwa dalam hidup dapat diprediksi. Bayangkan menjual pembersih tangan, antiseptik lainnya, masker wajah, dan barang serupa di toko online Anda. Lalu ada pandemi global, dan sekarang semua orang membutuhkan produk Anda. Dengan infrastruktur tanpa server, Anda akan siap untuk beban kerja apa pun.



Kecepatan eksekusi kode versus kecepatan siklus pengembangan



Kecepatan pengembangan produk juga berguna. Dalam banyak kasus, Komputasi Tanpa Server mendukung arsitektur layanan mikro, yang berarti siklus pengembangan yang lebih cepat dan komponen arsitektur yang relatif independen satu sama lain.



Ternyata Serverless membantu melakukan iterasi lebih cepat dalam siklus pengembangan dan mengirimkan produk ke pengguna akhir lebih cepat, yang hanya mengimbangi latensi milidetik tersebut karena cold start berkala.



Kekurangan Tanpa Server yang tidak disebutkan dalam video



Beberapa kekurangan dari Serverless Computing tidak disebutkan dalam video, dan saya ingin memberi nama mereka untuk memberi Anda gambaran lengkap tanpa hiasan.



Meskipun Komputasi Tanpa Server mungkin ideal dalam beberapa kasus dalam hal biaya, skalabilitas, dan manajemen infrastruktur, ini bukanlah obat mujarab untuk semua orang.



  1. Ada risiko penguncian vendor . Penyedia membuat layanan mereka sangat nyaman dan hemat biaya sehingga Anda berisiko terikat dengan penyedia cloud tertentu.
  2. , , . , SSH , โ€‹โ€‹ , .
  3. , .
  4. - , .




Secara umum, menggunakan paradigma baru dalam TI, seperti komputasi tanpa server atau layanan cloud lainnya, dalam logika yang sama dengan teknologi lokal "rumah" yang kita kenal, bukanlah ide yang bagus. Saat Anda langsung menyalin dan menempel alur kerja dari infrastruktur fisik ke cloud, Anda kehilangan banyak manfaat layanan cloud, jika tidak sama sekali.



Tidak ada alasan untuk mengharapkan bahwa teknologi apa pun akan berlaku untuk semua bisnis, tidak akan memiliki kekurangan, dan akan murah.



Dari sudut pandang saya, kita tidak boleh berbicara secara tegas tentang Tanpa Server (seperti, memang, tentang solusi TI lainnya), hanya mempertimbangkan satu aspek pekerjaan dan mengabaikan yang lainnya. Komputasi tanpa server masuk akal. Jika Anda tahu kapan dan bagaimana menggunakannya.






All Articles