AWS

Apa itu Tanpa Server?? AWS Lambda dan FaaS lainnya

Apa itu Tanpa Server?? AWS Lambda dan FaaS lainnya
Untuk memahami tanpa server, AWS Lamda, dan penawaran Function-as-a-Service yang serupa, kami akan mulai dengan sejarah dan lanskap komputasi dan kemudian menempatkan layanan baru ini ke dalam konteks. Mari kita mulai.

Komputer Fisik

Kami telah datang jauh dari server besar di era dotcom. Kembali pada masa itu, infrastruktur server sebagian besar berada di lokasi. Sebuah bisnis menjalankan solusinya di server fisik. Orang-orang menggunakan seluruh server terpisah untuk tujuan yang berbeda (cadangan, server surat, server web, dll). Ketika server tertentu gagal memenuhi kebutuhan perusahaan yang terus berkembang, server tersebut digantikan oleh server baru yang lebih cepat. Anda diskalakan dengan mendapatkan perangkat keras yang lebih baik. Anda menskalakan secara vertikal.

Hypervisor

Kemudian datanglah era hypervisors. Ini mendapatkan momentum dengan munculnya VMWare dan orang-orang menyadari bahwa mereka bisa mendapatkan satu rak untuk mengatur semuanya. Satu rak untuk menjalankan semua berbagai kasus penggunaan dan menyediakan masing-masing dari mereka mesin virtual terpisah mereka sendiri. Ini juga memunculkan komputasi awan dan bisnis berhenti berinvestasi di perangkat keras server, secara langsung, dan memilih untuk 'menyewa' server virtual.

Pusat data yang besar dan mahal dikelola oleh penyedia cloud di seluruh dunia. Bisnis memanfaatkan ini dengan menyediakan layanan mereka secara global, menggunakan pusat data seluas mungkin. Ini dilakukan terutama untuk mengurangi latensi, meningkatkan pengalaman pelanggan, dan untuk menargetkan pasar yang lebih besar.

Ini juga membuat penulis perangkat lunak berpikir dalam hal sistem terdistribusi. Mereka menulis perangkat lunak untuk dijalankan bukan pada satu komputer raksasa, tetapi pada banyak komputer biasa-biasa saja dengan cara yang konsisten dan andal. Anda menskalakan secara horizontal.

Anda masih dapat menskalakan secara vertikal. Faktanya, karena virtualisasi, penyediaan lebih banyak sumber daya menjadi lebih mudah. Anda mematikan VM, menyesuaikan sumber dayanya, dan membayar penyedia cloud Anda sedikit ekstra. Sepotong kue.

Server fisik yang mendasarinya belum hilang. Penyedia cloud sekarang bertanggung jawab untuk mengelola kompleksitas antarmuka jaringan, kompatibilitas OS, dan patologi mengerikan lainnya.

Wadah

Kemudian datang wadah. Wadah adalah abstraksi ringan yang menakjubkan ini. Lingkungan virtual dengan sistem operasi yang memungkinkan perangkat lunak untuk dikemas dan digunakan sebagai satu unit. Seperti mesin virtual, setiap kontainer berjalan tanpa mengetahui adanya kontainer lain, tetapi mereka berbagi kernel sistem operasi yang sama.

Ini memungkinkan orang untuk menyebarkan perangkat lunak di server (fisik atau virtual tidak masalah) pada tingkat abstraksi yang lebih tinggi. Anda tidak peduli dengan sistem operasi produksi. Selama itu mendukung teknologi penampung Anda, itu akan menjalankan perangkat lunak Anda. Kontainer juga lebih mudah diputar yang membuat layanan lebih skalabel dari sebelumnya.

Ini semakin meningkatkan fleksibilitas sistem terdistribusi. Dengan teknologi seperti Kubernetes, Anda dapat memiliki banyak container yang menjalankan berbagai layanan yang kompleks. Sistem terdistribusi menawarkan banyak manfaat ketersediaan tinggi, ketahanan, dan kemampuan untuk menyembuhkan dirinya sendiri dari kegagalan node node.

Pada saat yang sama, karena sangat kompleks, mereka juga lebih sulit untuk dirancang, disebarkan, dipelihara, dipantau, dan di-debug. Ini bertentangan dengan tren asli untuk mengabstraksikan kompleksitas dari perangkat lunak Anda dan mendelegasikan tanggung jawab itu kepada penyedia cloud Anda. Di sinilah arsitektur tanpa server masuk.

Tanpa Server atau Function-as-a-Service (FaaS)

Gagasan tanpa server telah mendapatkan daya tarik sebagian besar karena AWS Lambda, dan di sini saya akan menggunakannya sebagai model untuk berbicara tentang tanpa server. Prinsip-prinsip yang menjadi dasar FaaS adalah:

Ketika tidak ada yang mengakses layanan Anda, layanan tersebut tidak aktif. Ini tidak terjadi dalam solusi hosting tradisional di mana Anda membayar untuk VPS yang selalu aktif dan berjalan, bahkan jika itu diam tidak melakukan sesuatu yang lebih berguna daripada mendengarkan permintaan baru.
Dalam arsitektur tanpa server, layanan Anda tidak berjalan kecuali seseorang benar-benar ingin menggunakannya. Saat permintaan masuk, layanan dibuat dengan cepat untuk menanganinya.

bagaimana cara kerjanya?

Fungsi Anda (misalnya program Python, Go, atau Java) berada sebagai file di AWS Lambda. Dengan fungsi ini, Anda mengaitkan peristiwa pemicu tertentu, seperti gateway API, atau objek baru yang masuk ke bucket S3 Anda. Dan sumber daya tertentu seperti database atau penyimpanan objek lain atau instans EC2.

Menanggapi salah satu peristiwa pemicu terkait, AWS Lambda membuat wadah dengan fungsi Anda di dalamnya. Fungsi dijalankan dan memberikan respons. Misalnya, jika gambar baru masuk ke bucket S3 Anda, maka AWS Lambda dapat memiliki kode pembelajaran mesin di dalamnya, yang akan menganalisis gambar ini dan menulis outputnya ke DynamoDB (salah satu layanan penyimpanan data AWS).

Anda tidak perlu membayar untuk seluruh server tetapi hanya untuk jumlah memori yang Anda alokasikan untuk fungsi Anda, jumlah permintaan yang Anda dapatkan, dan untuk berapa lama fungsi Anda berjalan.

Selain itu, Anda tidak perlu khawatir tentang penskalaan container sebagai respons terhadap beban kerja yang masuk yang berat. Jika banyak peristiwa pemicu terjadi secara bersamaan, maka AWS akan menangani pemintalan kontainer baru dan menjadwalkan beban kerja di antara mereka dan semua kerumitan lainnya.

Bukan solusi lengkap

Ketika mesin virtual datang, server fisik tidak berhenti ada. Saat kontainer tiba, kami masih menggunakan VM. FaaS adalah abstraksi tingkat yang lebih tinggi dan sangat cocok dengan desain modern RESTful API, layanan stateless, dan bahasa ringan seperti Node.js atau Python.

Namun, masih berjalan di server fisik (dikelola oleh AWS, misalnya), masih mendengarkan permintaan yang masuk (Anda tidak membayarnya secara langsung) dan Anda masih perlu menyimpan data secara terus-menerus, itulah sebabnya ia memiliki integrasi untuk S3, EC2, dan layanan lainnya. Bagaimanapun, ini adalah abstraksi yang berguna.

10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...
5 Game Arkade Terbaik untuk Linux
Saat ini, komputer adalah mesin serius yang digunakan untuk bermain game. Jika Anda tidak bisa mendapatkan skor tinggi baru, Anda akan tahu apa yang s...
Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...