Pendahuluan
Dalam artikel ini, saya akan menjelaskan dua generasi dari Google Cloud Functions (GCF), fitur, keterbatasan, dan peningkatan yang dilakukan pada generasi kedua.
Generasi Pertama
Sebagai platform komputasi serverless, GCF diluncurkan pada tahun 2016 untuk memungkinkan pengembang menjalankan kode tanpa perlu mengelola infrastruktur yang mendasarinya. Generasi pertama GCF bertujuan untuk menyederhanakan proses membangun dan menerapkan fungsi kecil dan berorientasi pada tujuan tunggal di cloud.
Fitur dari Generasi Pertama
Iterasi awal GCF menawarkan arsitektur yang ringan dan berbasis peristiwa yang memungkinkan pengembang fokus menulis kode sambil membebaskan mereka dari beban manajemen server. Fitur kunci generasi ini meliputi:
- Dukungan untuk runtime Node.js, Python, dan Go, yang memungkinkan pengembang memilih dari berbagai bahasa.
- Skala otomatis berdasarkan jumlah permintaan masuk, memastikan penggunaan resource yang efisien.
- Model harga bayar sesuai penggunaan yang membuat GCF hemat biaya untuk berbagai kasus penggunaan.
- Integrasi dengan layanan Google Cloud lainnya seperti Pub/Sub, Storage, dan Firestore, menyederhanakan proses membangun aplikasi end-to-end.
- Trigger HTTP untuk memanggil fungsi melalui API RESTful, memberikan cara yang nyaman untuk mengekspos fungsionalitas kepada klien eksternal.
Keterbatasan dan Kelemahan
Meskipun banyak keuntungan dari generasi pertama GCF, ada beberapa keterbatasan dan kelemahan yang harus dihadapi oleh para pengembang:
- Dukungan runtime yang terbatas, yang membatasi pilihan bahasa dan kerangka kerja pemrograman.
- Latensi start yang lambat, yang dapat mengakibatkan waktu eksekusi fungsi yang lambat untuk fungsi yang jarang digunakan karena waktu yang diperlukan untuk menginisialisasi lingkungan.
- Kustomisasi lingkungan eksekusi fungsi yang terbatas, membatasi kemampuan untuk mengkonfigurasi pengaturan atau menginstal dependensi kustom.
- Dukungan yang terbatas untuk fungsi yang berjalan lama, dengan waktu eksekusi maksimum 540 detik, yang membuat sulit untuk menggunakan GCF untuk beberapa kasus penggunaan yang membutuhkan waktu pemrosesan yang lebih lama.
Keterbatasan ini mendorong kebutuhan untuk versi Google Cloud Functions yang lebih baik, yang terealisasi dalam bentuk generasi kedua. Versi baru ini bertujuan untuk mengatasi kekurangan pendahulunya dan menyediakan platform serverless yang lebih kuat dan fleksibel bagi para pengembang.
Generasi Kedua
Menanggapi keterbatasan pendahulunya, generasi kedua dari GCF dikembangkan untuk memberikan platform serverless yang lebih kokoh dan fitur-rich bagi para pengembang. Generasi baru ini memperkenalkan peningkatan yang signifikan pada kemampuan dan kinerja platform, mengatasi banyak kelemahan generasi pertama.
Kemampuan dan Kinerja yang Ditingkatkan
Generasi kedua dari GCF dilengkapi dengan berbagai fitur dan perbaikan baru, termasuk:
- Dukungan runtime yang lebih luas, yang memperluas pilihan bahasa pemrograman dengan menambahkan Java, Ruby, PHP, dan .NET, memungkinkan pengembang untuk bekerja dalam bahasa yang disukai.
- Latensi start yang jauh lebih rendah, yang menghasilkan waktu eksekusi fungsi yang lebih cepat dan responsif yang lebih baik bagi pengguna.
- Pemberian resource yang ditingkatkan, memberikan pengembang lebih banyak kontrol atas resource CPU dan memori untuk mengoptimalkan kinerja fungsi mereka.
- Dukungan untuk fungsi yang berjalan lama, meningkatkan waktu eksekusi maksimum menjadi 900 detik, yang memungkinkan GCF untuk menjangkau lebih banyak kasus penggunaan.
- Pengenalan VPC (Virtual Private Cloud) connectors, menawarkan opsi jaringan yang lebih baik untuk koneksi yang aman dan andal ke layanan lain dalam ekosistem Google Cloud.
Peningkatan Skala dan Keamanan
Selain peningkatan kinerja, generasi kedua dari GCF juga fokus pada menyediakan opsi skala dan keamanan yang lebih baik bagi para pengembang:
- Kontrol skala yang halus, memungkinkan pengembang untuk menyesuaikan jumlah eksekusi konkuren dan jumlah maksimum instansi per fungsi, menghasilkan penggunaan resource yang lebih efisien dan pengelolaan biaya yang lebih baik.
- Fitur keamanan yang lebih baik, termasuk jaringan pribadi, peran IAM kustom, dan integrasi Secret Manager, yang meningkatkan postur keamanan keseluruhan aplikasi berbasis GCF.
- Pemantauan dan observabilitas yang lebih baik melalui integrasi Cloud Monitoring dan Cloud Trace, memungkinkan pengembang untuk mendapatkan wawasan berharga tentang kinerja fungsi mereka dan menyelesaikan masalah potensial dengan lebih efektif.
Dengan mengatasi banyak keterbatasan dan kelemahan generasi pertama, generasi kedua dari Google Cloud Functions bertujuan untuk menyediakan platform serverless yang lebih kuat, fleksibel, dan aman bagi para pengembang untuk membangun dan menerapkan berbagai aplikasi. Generasi baru ini membuat lebih mudah bagi para pengembang untuk memanfaatkan keuntungan dari komputasi serverless, sambil juga melayani kasus penggunaan yang lebih kompleks dan menuntut.
Perbandingan
Berikut adalah tabel perbandingan antara generasi pertama dan kedua.
Fitur | Cloud Functions (Generasi Pertama) | Cloud Functions (Generasi Kedua) |
---|---|---|
Registri Gambar | Container Registry atau Artifact Registry | Hanya Artifact Registry |
Timeout Permintaan | Hingga 9 menit | - Hingga 60 menit untuk fungsi yang dipicu oleh HTTP - Hingga 9 menit untuk fungsi yang dipicu oleh peristiwa |
Ukuran Instance | Hingga 8GB RAM dengan 2 vCPU | Hingga 16GiB RAM dengan 4 vCPU |
Kepadatan | 1 permintaan konkuren per instance fungsi | Hingga 1000 permintaan konkuren per instance fungsi |
Pembagian Trafik | Tidak didukung | Didukung |
Jenis Peristiwa | Dukungan langsung untuk peristiwa dari 7 sumber | Dukungan untuk jenis peristiwa apa pun yang didukung oleh Eventarc, termasuk 90+ sumber peristiwa melalui Cloud Audit Logs |
CloudEvents | Hanya didukung dalam runtime Ruby, .NET, dan PHP | Didukung dalam semua runtime bahasa |
Referensi