Semua penyedia cloud memasarkan solusi "serverless" mereka. Janji adalah bahwa serverless akan menggantikan cara pengembang saat ini mengembangkan perangkat lunak mereka, dan operasi mengelolanya dalam produksi.
Apa itu "tanpa server"? Di mana orang dapat mempelajari lebih lanjut tentang hal itu, dan bagaimana hal itu dapat digunakan hari ini?
terminology
serverless
Evgeny
sumber
sumber
Jawaban:
Artikel Wikipedia tentang komputasi tanpa server memberikan pengantar yang layak untuk topik ini:
Idenya adalah bahwa pengembang tidak perlu peduli dengan infrastruktur server sama sekali . Penyedia cloud mengelola server fisik, sistem operasi yang digunakan dan semua kesulitan tradisional yang terlibat dalam menjalankan server.
Komputasi tanpa server mengubah arsitektur Anda dari memikirkan tentang apa yang dilakukan mesin hingga fungsi apa yang dilakukan. AWS Lambda adalah contoh yang muncul di benak Anda - Anda membayar dan menjalankan fungsi , tanpa menyebutkan jenis infrastruktur fisik apa yang berjalan di bawah ini. Ada juga host tanpa server yang bersaing seperti Azure Functions (atau Anda dapat mencari jika Anda tidak tertarik pada keduanya).
Ada beberapa keuntungan untuk serverless (walaupun Anda perlu menulis dengan cara yang sedikit berbeda dari yang biasa Anda lakukan dalam beberapa kasus, karena arsitekturnya sangat berbeda):
Skalabilitas pada dasarnya datang secara gratis - karena Anda hanya membayar untuk menjalankan suatu fungsi, penyedia cloud dapat dengan mudah mendedikasikan lebih banyak perangkat keras yang diperlukan untuk menjalankan kode Anda. Anda juga dapat meningkatkan skala saat permintaan meningkat, daripada membayar tarif tetap apakah aplikasi Anda digunakan sekali atau jutaan kali.
Perangkat lunak dan perangkat keras server tidak lagi perlu dikelola oleh pengembang - penyedia cloud menanganinya. Jika Anda pernah menggunakan sesuatu seperti Arch di server, Anda akan tahu betapa mudahnya menghapus paket penting dan menghancurkan semuanya!
Ini membebaskan pengembang untuk fokus pada apa yang mereka kuasai - kode . Sebagian besar pengembang mungkin tidak akan hebat dalam infrastruktur dan pemrograman server - serverless hanya mengeluarkan satu masalah dari persamaan.
sumber
Martin Fowler memiliki ikhtisar yang baik:
https://martinfowler.com/articles/serverless.html
TL; DR
"Serverless" menjelaskan pengembangan aplikasi dan arsitektur yang mendesain aplikasi di mana infrastruktur bersifat sementara , yang berarti bahwa mereka cenderung berbasis kontainer dan dapat "datang dan pergi" berdasarkan mekanisme penskalaan dinamis. Ini menentukan penggunaan arsitektur stateless yang bergantung pada teknologi terdistribusi (seperti toko kunci / nilai.)
sumber
'Serverless', seperti banyak hal di ruang kami, menjadi istilah yang kelebihan beban .. tetapi umumnya artinya "Secara fungsional, arsitektur kami tidak bergantung pada penyediaan atau pemeliharaan server yang sedang berlangsung"
Contoh pertama yang muncul dalam pikiran adalah aplikasi javascript satu halaman, yang menggunakan penyimpanan lokal, dan disimpan pada sesuatu seperti Amazon S # atau Github Pages (atau situs statis mana pun - itu hanya contoh umum). Bayangkan sesuatu seperti aplikasi gaya 'todo' atau 'menyelesaikan sesuatu' yang sepenuhnya berjalan di browser Anda. Browser Anda membuka layanan seperti S3 untuk mengunduh kode, dan item yang Anda simpan semuanya disimpan dalam penyimpanan lokal di browser Anda. Tidak ada server yang Anda kelola untuk ini.
Contoh kedua, dan sedikit lebih rumit (dan juga yang mempopulerkan istilah 'serverless'), menggunakan layanan seperti AWS Lambda. Biarkan saya menjelaskan ini dengan menyajikan masalah yang dipecahkannya:
Berkali-kali dalam karir saya, saya telah memecahkan masalah bisnis untuk klien dengan sedikit lebih dari beberapa kode ruby yang melakukan ekstrak, transformasi, dan memuat berkala (biasanya ditulis sebagai tugas menyapu). Setelah dipecahkan, saya biasanya mengotomatiskannya dengan cron. Lalu masalahnya menjadi 'di mana saya meng-host hal ini yang berjalan sekali setiap jam?' Untuk beberapa klien, kami akan menyiapkan server di infrastruktur yang ada. Untuk yang lain, kami akan membuat instance EC2, meskipun saat itu idle 99%. Dalam salah satu dari keadaan itu, ada server yang membutuhkan penyediaan, penambalan, pemantauan, pembaruan, dll.
Dengan Amazon Lambda, saya dapat mengambil tugas menyapu dan menjalankannya pada layanan mereka sebagai 'fungsi' murni. Aku bahkan bisa menjadwalkannya. Klien tidak lagi membutuhkan infrastruktur untuk hal yang sederhana sekali dalam satu jam.
Dengan 'serverless' masih ada server, sama seperti 'cloud' masih ada komputer. Hanya ada tingkat abstraksi di atasnya yang mengambil beberapa tanggung jawab lingkungan untuk Anda.
sumber
Semua jawaban bagus sudah. Saya telah melalui posting blog Thinking Serverless - Bagaimana Pendekatan Baru Menangani Kebutuhan Pemrosesan Data Modern di HighScalability, di mana saya menemukan penjelasan yang sangat bagus tentang apa arti serverless:
Dan, satu lagi pembelajaran dari pengalaman pribadi saya dalam membangun infrastruktur tanpa server adalah:
Seperti misalnya: Simpan file dalam antrian AWS SQS. Setelah jumlah pesan dalam antrian mencapai 10, aktifkan acara ke Lambda.
sumber
Selain hanya menjelaskan definisi istilah Serverless, asal-usul istilah dan sejarahnya juga memberikan beberapa wawasan tentang maknanya. Konsep ini berasal dari kerangka kerja JAWS oleh Austen Collins , yang kemudian diganti namanya menjadi Serverless . Saya telah mempelajarinya pertama kali di AWS re: Invent 2015 sesi , yang dapat membantu untuk tanggal konsep. Inilah yang sebenarnya menciptakan istilah Serverless, yang kemudian menyebar dengan cepat ke sistem cloud lain:
sumber