Mengapa revolusi tanpa pelayan menemui jalan buntu

Perkara utama

  • Selama beberapa tahun sekarang, kami telah dijanjikan bahawa pengkomputeran tanpa pelayan akan menyambut era baharu tanpa OS khusus untuk menjalankan aplikasi. Kami diberitahu bahawa struktur ini akan menyelesaikan banyak masalah kebolehskalaan. Malah, semuanya berbeza.
  • Walaupun ramai yang melihat tanpa pelayan sebagai idea baharu, akarnya boleh dikesan kembali ke 2006 dengan kemunculan Zimki PaaS dan Google App Engine, yang kedua-duanya menggunakan seni bina tanpa pelayan.
  • Terdapat empat sebab mengapa revolusi tanpa pelayan telah terhenti, daripada sokongan bahasa pengaturcaraan terhad kepada isu prestasi.
  • Pengkomputeran tanpa pelayan tidak begitu berguna. Tidak sama sekali. Walau bagaimanapun, mereka tidak boleh dianggap sebagai pengganti langsung untuk pelayan. Untuk sesetengah aplikasi ia boleh menjadi alat yang berguna.

Pelayan mati, hidup pelayan!

Ini adalah laungan perjuangan revolusi tanpa pelayan. Hanya sepintas lalu pada akhbar industri sejak beberapa tahun kebelakangan ini dan mudah untuk membuat kesimpulan bahawa model pelayan tradisional telah mati dan dalam masa beberapa tahun kita semua akan menggunakan seni bina tanpa pelayan.

Seperti yang diketahui oleh sesiapa sahaja dalam industri, dan seperti yang kami nyatakan dalam artikel kami tentang keadaan pengkomputeran tanpa pelayan, ini adalah salah. Walaupun banyak artikel tentang merit revolusi tanpa pelayan, ia tidak pernah berlaku. sebenarnya, rancangan penyelidikan terkinibahawa revolusi ini mungkin telah menemui jalan buntu.

Beberapa janji model tanpa pelayan pastinya telah direalisasikan, tetapi tidak semua. Bukan semua orang.

Dalam artikel ini saya ingin melihat sebab-sebab keadaan ini. Mengapa kekurangan fleksibiliti model tanpa pelayan masih menjadi penghalang kepada penggunaan yang lebih luas, walaupun model tersebut kekal berguna dalam keadaan tertentu dan jelas.

Apa yang dijanjikan oleh pakar pengkomputeran tanpa pelayan

Sebelum kita menghadapi cabaran pengkomputeran tanpa pelayan, mari kita lihat perkara yang sepatutnya disediakan. Janji revolusi tanpa pelayan adalah banyak dan - kadang-kadang - sangat bercita-cita tinggi.

Bagi mereka yang tidak biasa dengan istilah ini, berikut ialah definisi ringkas. Pengkomputeran tanpa pelayan mentakrifkan seni bina di mana aplikasi (atau bahagian aplikasi) dijalankan atas permintaan dalam persekitaran masa jalan yang biasanya dihoskan dari jauh. Selain itu, sistem tanpa pelayan boleh dihoskan di rumah. Membina sistem tanpa pelayan yang berdaya tahan telah menjadi kebimbangan utama bagi pentadbir sistem dan syarikat SaaS sejak beberapa tahun kebelakangan ini, kerana (didakwa) seni bina ini menawarkan beberapa kelebihan utama berbanding model pelayan pelanggan "tradisional":

  1. Model tanpa pelayan tidak memerlukan pengguna untuk mengekalkan sistem pengendalian mereka sendiri atau bahkan mencipta aplikasi yang serasi dengan OS tertentu. Sebaliknya, pembangun mencipta kod kongsi, memuat naiknya ke platform tanpa pelayan dan menontonnya berjalan.
  2. Sumber dalam rangka kerja tanpa pelayan biasanya dibilkan mengikut minit (atau bahkan detik). Ini bermakna bahawa pelanggan hanya membayar untuk masa mereka benar-benar menjalankan kod. Ini lebih baik dibandingkan dengan VM awan tradisional, di mana mesin itu melahu pada kebanyakan masa, tetapi anda perlu membayarnya.
  3. Masalah kebolehskalaan juga telah diselesaikan. Sumber dalam rangka kerja tanpa pelayan diperuntukkan secara dinamik supaya sistem dapat dengan mudah mengatasi lonjakan permintaan yang mendadak.

Ringkasnya, model tanpa pelayan menyediakan penyelesaian yang fleksibel, kos rendah, berskala. Sungguh menghairankan bahawa kami tidak memikirkan idea ini lebih awal.

Adakah ini benar-benar idea baru?

Sebenarnya, idea itu bukanlah baru. Konsep membenarkan pengguna membayar hanya untuk masa kod itu sebenarnya berjalan telah wujud sejak ia diperkenalkan oleh Zimki PaaS pada tahun 2006, dan pada masa yang sama Google App Engine menawarkan penyelesaian yang hampir sama.

Malah, apa yang kini kita panggil model "tanpa pelayan" adalah lebih lama daripada kebanyakan teknologi yang kini dipanggil "asli awan" yang menyediakan perkara yang sama. Seperti yang dinyatakan, model tanpa pelayan pada asasnya hanyalah lanjutan daripada model perniagaan SaaS yang telah wujud selama beberapa dekad.

Perlu juga menyedari bahawa tanpa pelayan bukanlah seni bina FaaS, walaupun terdapat hubungan antara keduanya. FaaS pada asasnya ialah bahagian tertumpu pengiraan bagi seni bina tanpa pelayan, tetapi ia tidak mewakili keseluruhan sistem.

Jadi apa yang dihebohkan? Oleh kerana kadar penembusan internet terus meningkat di negara membangun, permintaan untuk sumber pengkomputeran juga meningkat pada masa yang sama. Sebagai contoh, banyak negara dengan sektor e-dagang yang berkembang pesat tidak mempunyai infrastruktur pengkomputeran untuk aplikasi pada platform ini. Di sinilah platform tanpa pelayan berbayar masuk.

Masalah dengan Model Tanpa Pelayan

Masalahnya ialah model tanpa pelayan mempunyai... masalah. Jangan salah faham: Saya tidak mengatakan mereka buruk atau tidak memberikan nilai yang signifikan kepada sesetengah syarikat dalam beberapa keadaan. Tetapi tuntutan utama "revolusi" - bahawa seni bina tanpa pelayan akan segera menggantikan seni bina tradisional - tidak pernah menjadi kenyataan.

sebab tu.

Sokongan terhad untuk bahasa pengaturcaraan

Kebanyakan platform tanpa pelayan hanya membenarkan anda menjalankan aplikasi yang ditulis dalam bahasa tertentu. Ini secara serius mengehadkan fleksibiliti dan kebolehsuaian sistem ini.

Platform tanpa pelayan dianggap menyokong kebanyakan bahasa utama. AWS Lambda dan Azure Functions juga menyediakan pembalut untuk menjalankan aplikasi dan fungsi dalam bahasa yang tidak disokong, walaupun ini sering disertai dengan kos prestasi. Jadi bagi kebanyakan organisasi, batasan ini biasanya bukan masalah besar. Tetapi inilah perkaranya. Salah satu faedah model tanpa pelayan sepatutnya ialah program yang kurang dikenali dan jarang digunakan boleh digunakan dengan lebih murah kerana anda hanya membayar untuk masa ia dijalankan. Dan program yang kurang dikenali, jarang digunakan sering ditulis dalam... bahasa pengaturcaraan yang kurang diketahui, jarang digunakan.

Ini menjejaskan salah satu faedah utama model tanpa pelayan.

Pengikatan vendor

Masalah kedua dengan platform tanpa pelayan, atau sekurang-kurangnya cara ia sedang dilaksanakan, ialah ia biasanya tidak serupa antara satu sama lain di peringkat operasi. Hampir tiada penyeragaman dari segi fungsi penulisan, penggunaan dan pengurusan. Ini bermakna memindahkan ciri dari satu platform ke platform yang lain sangat memakan masa.

Bahagian paling sukar untuk beralih kepada model tanpa pelayan bukanlah fungsi pengiraan, yang biasanya hanya coretan kod, tetapi cara aplikasi berkomunikasi dengan sistem yang disambungkan seperti penyimpanan objek, pengurusan identiti dan baris gilir. Fungsi boleh dialihkan, tetapi aplikasi lain tidak boleh. Ini adalah bertentangan dengan platform murah dan fleksibel yang dijanjikan.

Ada yang berpendapat bahawa model tanpa pelayan adalah baharu dan tidak ada masa untuk menyeragamkan cara ia berfungsi. Tetapi mereka tidak begitu baru, seperti yang saya nyatakan di atas, dan banyak teknologi awan lain, seperti bekas, telah menjadi lebih berguna terima kasih kepada pembangunan dan penggunaan meluas piawaian yang baik.

Produktiviti

Prestasi pengkomputeran platform tanpa pelayan adalah sukar untuk diukur, sebahagiannya kerana vendor cenderung untuk merahsiakan maklumat. Kebanyakan berpendapat bahawa fungsi pada platform jauh tanpa pelayan berjalan sepantas pada pelayan dalaman, kecuali beberapa isu kependaman yang tidak dapat dielakkan.

Walau bagaimanapun, fakta individu menunjukkan sebaliknya. Ciri yang sebelum ini tidak dijalankan pada platform tertentu atau tidak berjalan untuk beberapa lama akan mengambil sedikit masa untuk dimulakan. Ini mungkin disebabkan oleh fakta bahawa kod mereka telah dialihkan ke beberapa medium storan yang kurang boleh diakses, walaupun - seperti penanda aras - kebanyakan vendor tidak akan memberitahu anda tentang pemindahan data.

Sudah tentu, terdapat beberapa cara untuk mengatasinya. Salah satunya adalah untuk mengoptimumkan ciri untuk apa jua bahasa awan platform tanpa pelayan anda sedang berjalan, tetapi ini agak menjejaskan dakwaan bahawa platform ini "tangkas."

Pendekatan lain ialah memastikan program kritikal produktiviti dijalankan secara berkala untuk memastikannya sentiasa segar. Pendekatan kedua ini, sudah tentu, sedikit bercanggah dengan dakwaan bahawa platform tanpa pelayan lebih menjimatkan kos kerana anda hanya membayar untuk masa program anda berjalan. Pembekal awan telah memperkenalkan cara baharu untuk mengurangkan permulaan sejuk, tetapi kebanyakannya memerlukan "skala kepada satu", yang menjejaskan nilai asal FaaS.

Masalah permulaan dingin boleh diselesaikan sebahagiannya dengan menjalankan sistem tanpa pelayan secara dalaman, tetapi ini datang dengan kosnya sendiri dan kekal sebagai pilihan khusus untuk pasukan yang mempunyai sumber yang baik.

Anda tidak boleh menjalankan keseluruhan aplikasi

Akhir sekali, mungkin sebab paling penting mengapa seni bina tanpa pelayan tidak akan menggantikan model tradisional dalam masa terdekat: mereka (biasanya) tidak dapat menjalankan keseluruhan aplikasi.

Lebih tepat lagi, ia tidak praktikal dari sudut kos. Monolit anda yang berjaya mungkin tidak boleh diubah menjadi satu set empat dozen fungsi yang disambungkan oleh lapan get laluan, empat puluh baris gilir dan sedozen contoh pangkalan data. Atas sebab ini, tanpa pelayan lebih sesuai untuk perkembangan baharu. Hampir tiada aplikasi (seni bina) sedia ada boleh dipindahkan. Anda boleh berhijrah, tetapi anda perlu bermula dari awal.

Ini bermakna bahawa dalam kebanyakan kes, platform tanpa pelayan digunakan sebagai pelengkap kepada pelayan bahagian belakang untuk melaksanakan tugas intensif pengiraan. Ini menjadikan mereka sangat berbeza daripada dua bentuk lain teknologi awan—bekas dan mesin maya—yang menawarkan cara holistik untuk melaksanakan pengkomputeran jauh. Ini menggambarkan salah satu cabaran untuk beralih daripada perkhidmatan mikro kepada tanpa pelayan.

Sudah tentu, ini tidak selalu menjadi masalah. Keupayaan untuk memanfaatkan sumber pengkomputeran yang besar secara berkala tanpa perlu membeli perkakasan anda sendiri boleh membawa manfaat yang nyata dan berkekalan kepada banyak organisasi. Tetapi apabila sesetengah aplikasi berada pada pelayan dalaman dan yang lain pada seni bina awan tanpa pelayan, pengurusan mengambil tahap kerumitan baharu.

Hidup revolusi?

Walaupun semua aduan ini, saya tidak menentang penyelesaian tanpa pelayan per se. Sejujurnya. Pembangun hanya perlu memahami—terutamanya jika mereka meneroka tanpa pelayan buat kali pertama—bahawa teknologi itu bukanlah pengganti langsung untuk pelayan. Sebaliknya, lihat petua dan sumber kami untuk mencipta aplikasi tanpa pelayan dan tentukan cara terbaik untuk menggunakan model tersebut.

Sumber: www.habr.com

Tambah komen