AWS

Apa itu Tanpa Server? AWS Lambda dan FaaS lain

Apa itu Tanpa Server? AWS Lambda dan FaaS lain
Untuk memahami tanpa pelayan, AWS Lamda dan penawaran Fungsi-sebagai-a-Perkhidmatan serupa, kami akan memulakan dengan sejarah dan landskap pengkomputeran dan kemudian meletakkan perkhidmatan baru ini ke dalam konteks. Mari kita mulakan.

Komputer Fizikal

Kami telah menempuh perjalanan jauh dari pelayan besar era dotcom. Pada masa itu, infrastruktur pelayan kebanyakannya berada di premis. Perniagaan menjalankan penyelesaiannya pada pelayan fizikal. Orang menggunakan keseluruhan pelayan yang berasingan untuk tujuan yang berbeza (sandaran, pelayan e-mel, pelayan web, dll). Apabila pelayan tertentu gagal memenuhi keperluan syarikat yang semakin meningkat, ia digantikan oleh pelayan yang lebih cepat dan lebih baru. Anda membuat skala dengan mendapatkan perkakasan yang lebih baik. Anda skala secara menegak.

Pengawas hyper

Kemudian datanglah era pengawas. Ia mendapat momentum dengan meningkatnya VMWare dan orang menyedari bahawa mereka dapat satu rak untuk mengatur semuanya. Satu rak untuk menjalankan semua kes penggunaan dan menyediakan masing-masing mesin maya mereka sendiri. Ini juga menimbulkan pengkomputeran awan dan perniagaan berhenti melabur dalam perkakasan pelayan, secara langsung, dan memilih untuk 'menyewa' pelayan maya.

Pusat data yang besar dan mahal diuruskan oleh penyedia awan di seluruh dunia. Perniagaan memanfaatkan ini dengan menyediakan perkhidmatan mereka di seluruh dunia, dengan menggunakan pusat data seluas-luasnya. Ini dilakukan terutamanya untuk mengurangkan latensi, meningkatkan pengalaman pelanggan dan mensasarkan pasaran yang lebih besar.

Ini juga membuat pengarang perisian berfikir dari segi sistem yang diedarkan. Mereka menulis perisian untuk tidak berjalan pada satu komputer raksasa, tetapi pada banyak komputer biasa dengan cara yang konsisten dan boleh dipercayai. Anda skala secara mendatar.

Anda masih boleh membuat skala secara menegak. Sebenarnya, kerana virtualisasi, penyediaan lebih banyak sumber menjadi lebih mudah. Anda mematikan VM, menyesuaikan sumbernya dan membayar penyedia awan anda sedikit tambahan. Sangat mudah.

Pelayan fizikal yang mendasari belum hilang. Penyedia awan kini bertanggungjawab untuk menguruskan kerumitan antara muka rangkaian, keserasian OS dan patologi menakutkan lain.

Bekas

Kemudian datang bekas-bekas itu. Bekas adalah pengabstrakan ringan yang menakjubkan ini. Persekitaran maya dengan sistem operasi yang membolehkan perisian dikemas dan digunakan sebagai satu unit. Seperti mesin maya, setiap kontena tidak menyedari bekas lain, tetapi mereka berkongsi kernel sistem operasi yang sama.

Ini membolehkan orang menggunakan perisian di pelayan (fizikal atau maya tidak menjadi masalah) pada tahap abstraksi yang lebih tinggi. Anda tidak peduli dengan sistem operasi pengeluaran. Selagi ia menyokong teknologi pengkomputeran anda, perisian anda akan dijalankan. Bekas juga lebih mudah dipusingkan yang menjadikan perkhidmatan lebih mudah ditingkatkan daripada sebelumnya.

Ini seterusnya meningkatkan fleksibiliti sistem yang diedarkan. Dengan teknologi seperti Kubernetes, anda boleh memiliki banyak kontena yang menjalankan pelbagai perkhidmatan yang kompleks. Sistem yang diedarkan menawarkan banyak faedah ketersediaan tinggi, ketahanan dan kemampuan untuk menyembuhkan dirinya daripada kegagalan nod.

Pada masa yang sama, kerana sangat kompleks, mereka juga lebih sukar untuk merancang, menggunakan, memelihara, memantau dan melakukan debug. Ini bertentangan dengan trend asal mengabaikan kerumitan perisian anda dan menyerahkan tanggungjawab itu kepada penyedia awan anda. Di sinilah seni bina tanpa pelayan masuk.

Tanpa Server atau Fungsi-sebagai-a-Perkhidmatan (FaaS)

Idea tanpa pelayan telah mendapat daya tarikan terutamanya kerana AWS Lambda, dan di sini saya akan menggunakannya sebagai model untuk membincangkan tentang tanpa pelayan. Prinsip-prinsip yang berdasarkan pada FaaS adalah:

Apabila tidak ada yang mengakses perkhidmatan anda, perkhidmatan tersebut tidak aktif. Ini tidak berlaku dalam penyelesaian hosting tradisional di mana anda membayar untuk VPS yang selalu berjalan, walaupun ia diam tidak melakukan perkara yang lebih berguna daripada mendengar permintaan baru.
Dalam seni bina tanpa pelayan, perkhidmatan anda tidak berjalan melainkan seseorang benar-benar mahu menggunakannya. Apabila permintaan masuk, perkhidmatan dibuat dengan cepat untuk menanganinya.

Bagaimanakah ia berfungsi?

Fungsi anda (contohnya program Python, Go, atau Java) berfungsi sebagai fail di AWS Lambda. Dengan fungsi ini anda mengaitkan peristiwa pencetus tertentu, seperti gerbang API, atau objek baru yang masuk ke dalam baldi S3 anda. Dan sumber tertentu seperti pangkalan data atau stor objek lain atau contoh EC2.

Sebagai tindak balas kepada sebarang peristiwa pencetus yang berkaitan, AWS Lambda membuat wadah dengan fungsi anda di dalamnya. Fungsi ini dilaksanakan dan memberi tindak balas. Sebagai contoh, jika gambar baru masuk ke dalam baldi S3 anda maka AWS Lambda boleh mempunyai kod pembelajaran mesin di dalamnya, yang akan menganalisis gambar ini dan menuliskan outputnya ke DynamoDB (salah satu perkhidmatan datastore AWS).

Anda tidak mempunyai bayaran untuk keseluruhan pelayan tetapi hanya untuk jumlah memori yang anda peruntukkan untuk fungsi anda, jumlah permintaan yang anda dapat, dan untuk berapa lama fungsi anda berjalan.

Lebih-lebih lagi, anda tidak perlu bimbang tentang penskalaan kontena sebagai tindak balas terhadap beban kerja yang masuk. Sekiranya banyak peristiwa pencetus berlaku secara serentak, maka AWS akan menguruskan penggunaan bekas baru dan menjadualkan beban kerja di antara mereka dan semua kerumitan lain.

Bukan penyelesaian yang lengkap

Ketika mesin maya datang, pelayan fizikal tidak lagi wujud. Semasa kontena tiba, kami masih menggunakan VM. FaaS adalah abstraksi tahap yang lebih tinggi dan sangat sesuai dengan reka bentuk moden RESTful API, perkhidmatan tanpa status dan bahasa ringan seperti Node.js atau Python.

Walau bagaimanapun, masih berjalan di pelayan fizikal (dikendalikan oleh AWS, misalnya), ia masih mendengarkan permintaan masuk (anda tidak membayarnya secara langsung) dan anda masih perlu menyimpan data secara berterusan dan itulah sebabnya integrasi untuk S3, EC2, dan perkhidmatan lain. Walau bagaimanapun, ia adalah pengambilan yang berguna.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...