28 September di konferensi
RubyRussia Nikolai Sverchkov akan membuat presentasi Serverless adalah Ruby Future.
Ivan Solovyov berdiskusi dalam sebuah wawancara mengapa tren ini menarik, dan mengapa para rubrik harus memperhatikannya.
Katakan bagaimana Anda datang ke Ruby?Dia mulai pemrograman di universitas. Semua latihan dalam bahasa C ++, tapi saya mengerjakan makalah dan tesis semester terakhir di Ruby. Mengapa saya memilih Ruby, saya tidak akan mengatakannya dengan pasti, mungkin karena bahasa pada waktu itu sedang hype. Tidak ada yang tahu di Universitas Ruby, apalagi mengajar. Tetapi setelah lulus, saya ingin menulis di Jawa. Kemudian saya merasa bahwa Java itu spesial, pengembang paling keren, semacam kasta programmer yang lebih tinggi, dan saya ingin menjadi salah satunya. Wawancara kerja pertama saya di Jawa junior, dan saya gagal. Tapi dia bisa masuk ke perusahaan tempat Ruby dibutuhkan. Mungkin itu yang terbaik! Hanya beberapa tahun pindah ke Elixir. Sekarang saya bekerja di Evil Martians, melakukan backend.
Laporan Anda tentang serverless. Bagaimana Anda mulai bekerja ke arah ini? Apakah jalan masuk ke teknologi sulit?Dia mulai belajar di waktu luangnya. Saya punya yang nyata, tetapi tidak terkait dengan tugas pekerjaan utama. Kemudian ia mulai menggunakan serverless dalam proyek-proyek perusahaan. Ambang entri cukup rendah, saya pikir itu hanya sedikit lebih tinggi daripada Heroku. Tulis dulu "Halo, dunia!" itu akan sangat sederhana - ada banyak artikel, tutorial, dokumentasi yang sangat kaya dari Amazon. Dan kemudian, tentu saja, maka akan ada kesulitan. Ada jebakan, saya akan berbicara tentang beberapa dari mereka dalam laporan.
Haruskah pemula terjun ke serverless dan menggunakannya dalam produksi?Saya kira begitu! Namun tidak perlu terburu-buru mengimplementasikan semuanya dengan serverless. Untuk memulai, Anda dapat melihat aplikasi Anda dan menemukan di dalamnya sepotong logika bisnis, yang dapat Anda masukkan ke dalam layanan terpisah. Jika microservice baru ini memiliki antarmuka komunikasi yang sederhana, maka dengan probabilitas 99% Anda akan dapat mengimplementasikannya menggunakan AWS Lambda yang sama. Idealnya, jika ini adalah bagian dari logika bisnis tanpa kewarganegaraan, maka Anda tidak perlu memikirkan bagaimana cara menyimpan hasilnya, pikirkan artefak pelaksanaan fungsi lambda Anda. Sebagai contoh, mengirim surat bisa menjadi tugas pertama yang baik. Dalam laporan saya, saya secara terpisah akan mengajukan pertanyaan tentang spektrum tugas apa yang paling cocok untuk model komputasi tanpa server.
Rekomendasi utama adalah untuk memisahkan kode logika bisnis dari lambda itu sendiri. Ini adalah variasi dari aturan yang dikenal luas โpengendali tipis, model tebalโ. Pertama, akan lebih mudah untuk menguji dengan cara ini. Kedua, jika dalam proses Anda menyadari bahwa serverless tidak cocok untuk tugas Anda, Anda dapat dengan mudah bermigrasi ke solusi yang terbukti, misalnya, ganti layer input tanpa server dengan server web biasa. Dalam hal ini,
Jet sangat baik. Ini adalah kerangka kerja Ruby Serverless yang memungkinkan Anda untuk menulis aplikasi yang di luar kotak dapat digunakan untuk AWS Lambda dan instance Amazon EC2 biasa.
Ceritakan lebih banyak tentang kerangka kerja Ruby ini?Jet adalah salah satu dari jenis. Terlepas dari kenyataan bahwa ada kerangka kerja serverless lainnya yang dirancang untuk bahasa tertentu, Jet adalah yang paling fungsional. Sekarang dia memiliki lebih dari 2500 komit di master. Kerangka kerja ini menggunakan banyak konvensi yang sudah dikenal untuk pengembang Ruby, itu seperti "Ruby on Rails on Serverless". Tetapi ini memiliki kekurangannya. Karena dengan model komputasi tanpa server yang Anda bayar untuk waktu pelaksanaan kode, inisialisasi dan memuat sejumlah besar dependensi berat mahal dalam arti kata sebenarnya. Pengungkapan topik ini juga akan diberikan waktu dalam laporan saya.
Platform mana yang paling umum untuk serverless sekarang, apa perbedaannya, mana yang lebih baik untuk dipilih? Seperti yang saya pahami, Anda sekarang tenggelam untuk Layanan Web Amazon, karena sebagian besar waktu Anda membicarakannya.Anda bertanya mengapa saya sering menggunakan kata "lambda" dalam percakapan kami? Saya pikir ceritanya seperti dengan Karcher atau Xerox. Ada merek dengan nama yang biasa disebut ceruk seluruh produk. Pada 2014, Amazon adalah yang pertama memberikan akses publik ke model komputasi tanpa server - AWS Lambda. Orang lain: Microsoft dengan Fungsi Azure, Google dengan Fungsi Cloud, IBM dengan Fungsi Cloud IBM, masih secara mental dalam peran mengejar ketinggalan. Meskipun pasar tanpa server sedang booming, harga layanan AWS seringkali lebih tinggi dari pesaing. Jadi rilis baru, seperti
Google Cloud Run , dapat mengubah game dalam semalam. Jika kami melakukan analisis yang lebih rinci tentang perbandingan platform, maka saya akan merekomendasikan menonton
video Ruslan Serkin dari DataArt dari konferensi DUMP 2019 .
Bagaimana menurut Anda, ke arah mana serverless akan berkembang?Oh, ini bagian paling menarik dari laporan saya! Saya bisa melakukannya tanpa spoiler - dengarkan! Sebagai gantinya, saya dapat berbicara tentang sereless dan produksi. Pada bulan April tahun ini, saya berada di konferensi RubyConfBy di Minsk, di mana penulis Jet yang sama berbicara. Pada pesta setelah itu, kami membahas pengembangan tanpa server dan mengapa, jika ada dukungan dari pemain industri utama, kami tidak melihat distribusi massa fungsi lambda. Kelebihan model ini jelas, ekosistemnya transparan, tetapi tidak ada kepercayaan luas dari komunitas TI. Sebagai hasilnya, kami sampai pada kesimpulan bahwa sekarang serverless adalah semacam pemain bayangan dan situasinya agak mengingatkan kita pada Docker pada satu waktu. Sudah lama diyakini bahwa Docker dalam produksi adalah bunuh diri. Sekarang kita melihat bahwa kontainerisasi adalah alat utama untuk distribusi perangkat lunak. Saya pikir di masa depan, serverless mengharapkan hal yang sama. Semakin banyak orang akan percaya padanya.
Akankah serverless membunuh monolit?Pertanyaan ini dapat diulangi sebagai "Akankah arsitektur microservice membunuh monolit?" Karena serverless adalah microserver yang ideal - ia kecil, ia stateless dan memiliki antarmuka minimal untuk berkomunikasi dengan dunia luar. Sama seperti layanan microser tidak membunuh monolit, demikian juga lambda tidak membunuh monolit. Ketiga arsitektur memiliki berbagai tugas khusus yang sesuai untuk mereka. Dan sebaliknya - ada tugas-tugas di mana, misalnya, serverless tidak praktis untuk digunakan. Cari detail di laporan saya.
Apa yang harus dilakukan dengan kunci vendor? Misalnya, Anda mengembangkan lambda untuk Amazon, tetapi memutuskan untuk pindah ke Google.Migrasi antar platform sangat menyakitkan jika Anda tidak menggunakan semacam kerangka kerja, misalnya,
tanpa server , yang menyediakan API abstrak melalui penyedia cloud dan memungkinkan Anda untuk menggunakan fungsi yang sama di Amazon dan Google. Jika Anda, secara kasar, melakukan segalanya dengan tangan Anda, maka ya, itu akan sedikit menyakitkan.
Apa yang harus dilakukan dengan lambda umum saat menggunakan kode? Misalnya, beberapa komponen umum, beberapa fungsi utilitarian, dan sebagainya.Masih belum ada praktik terbaik tentang hal ini. Dan pertanyaannya lagi dapat dirumuskan kembali dalam "Bagaimana meraba-raba kode umum antara microservices?", Karena artinya sama. Ada opsi ketika Anda memegang logika yang digunakan kembali di suatu tempat di bersama, dan dalam fungsi itu sendiri sambungkan. Pendekatan ini akan bekerja dengan baik, misalnya, dengan Go, di mana output yang Anda dapatkan adalah satu file yang dapat dieksekusi. Pilihan lain adalah untuk menyingkirkan konektivitas komponen dan memungkinkan duplikasi. Mungkin patut dicoba dan lihat mana yang terbaik. Satu-satunya hal yang dapat saya sarankan adalah jangan mencoba membuat fungsi lambda universal. Pada titik tertentu, mungkin Anda merasa bahwa satu fungsi uber akan menjadi solusi sempurna untuk masalah duplikasi kode. Tetapi seiring berjalannya waktu, Anda akan menyadari bahwa ini adalah jalan menuju ke mana-mana. Anda akan mendapatkan "versi monolitik serverless" dengan semua masalah arsitektur pertama dan kedua.
Kami akan membahas secara lebih rinci setelah laporan tentang RubyRusia!Datang dan Anda,
pendaftaran masih terbuka, konferensi akan diadakan Sabtu depan, 28 September.
Tidak hanya akan ada laporan, tetapi juga stand dari perusahaan terbaik:
Penyelenggara -
EvroneMitra Umum -
ToptalMitra Emas -
GettMitra Perak -
Valarm ,
JetBrains ,
Bookmate dan
CashwagonMitra Perunggu -
InSales