Apa itu komputasi tanpa server?
Komputasi nirserver adalah model pengembangan aplikasi tempat Anda dapat membangun dan melakukan deployment aplikasi pada infrastruktur server terkelola pihak ketiga. Semua aplikasi memerlukan server untuk berjalan. Tetapi dalam model nirserver, penyedia cloud mengelola pekerjaan rutin; mereka menyediakan, menskalakan, dan memelihara infrastruktur dasar. Penyedia cloud menangani beberapa tugas, seperti manajemen sistem operasi, patch keamanan, sistem file dan manajemen kapasitas, penyeimbangan beban, pemantauan, serta pencatatan. Hasilnya, developer Anda dapat berfokus pada desain aplikasi serta tetap menerima keunggulan infrastruktur server yang hemat biaya, efisien, dan dapat diskalakan secara besar-besaran.
Mengapa komputasi nirserver penting?
Pada masa awal internet, siapa pun yang ingin menjalankan aplikasi web harus membeli dan memelihara server fisik. Perusahaan biasanya akan menyimpan perangkat server fisik mereka di pusat data on-premise atau fasilitas kolokasi. Hal ini bisa jadi mahal karena sebagian besar aplikasi hanya menggunakan sebagian kecil sumber daya perangkat keras server.
Model komputasi cloud awalnya memecahkan masalah ini dengan memungkinkan pelanggan untuk membuat server virtual atau instans pada perangkat keras penyedia cloud. Namun, pelanggan masih harus menyediakan, mengonfigurasi, memperbarui, dan menskalakan server virtual mereka.
Menanggapi masalah ini, penyedia cloud mulai menawarkan teknologi nirserver untuk lebih meningkatkan ketangkasan dan mengoptimalkan biaya. Dengan komputasi nirserver, developer Anda dapat menjalankan kode, mengelola data, dan mengintegrasikan aplikasi tanpa khawatir tentang tugas manajemen infrastruktur.
Ada beberapa manfaat adopsi nirserver, yang akan kami uraikan selanjutnya.
Meningkatkan produktivitas developer
Tim pengembangan Anda dapat fokus membangun aplikasi alih-alih mengonfigurasinya. Biaya operasional yang lebih rendah berarti aplikasi Anda masuk ke pasar lebih cepat. Developer Anda dapat merespons umpan balik pelanggan dan sering merilis perubahan kode aplikasi.
Skalabilitas yang efisien
Vendor cloud menyediakan fitur penskalaan otomatis di lingkungan nirserver mereka. Aplikasi nirserver Anda diskalakan secara otomatis dari nol hingga permintaan puncak. Developer Anda tidak perlu memikirkan penggunaan saat menulis kode.
Biaya lebih rendah
Anda hanya membayar untuk CPU, memori, dan sumber daya komputasi lainnya yang diperlukan saat kode Anda berjalan. Anda tidak membayar apa pun untuk sumber daya yang diam. Model penagihan bayar sesuai nilai ini memastikan penggunaan sumber daya yang optimal dan tidak ada pemborosan akibat penyediaan berlebihan.
Apa saja kasus penggunaan komputasi nirserver?
Ada banyak aplikasi dan sistem di mana komputasi nirserver dapat berguna.
Pengembangan aplikasi stateless
Arsitektur nirserver sangat ideal untuk aplikasi asinkron dan stateless yang tidak menyimpan data klien di antara sesi. Contoh aplikasi nirserver, termasuk chatbot, penjadwal tugas, dan aplikasi IoT. Misalnya, Coca-Cola menggunakan AWS untuk mengembangkan aplikasi penuangan seluler untuk dispenser minuman nirsentuh hanya dalam 100 hari. Coca-Cola menggunakan blok bangunan nirserver, seperti AWS Lambda.
Pemrosesan batch
Aplikasi pemrosesan batch secara berkala menyelesaikan tugas data bervolume tinggi dan berulang, seperti pencadangan, pemfilteran, dan penyortiran. Pemrosesan batch sangat cocok untuk lingkungan nirserver yang berskala besar saat dibutuhkan dan tidak memerlukan biaya apa pun saat tidak digunakan.
Misalnya, Liberty Mutual menggunakan AWS untuk mengonsolidasikan lini bisnis global yang berbeda ke dalam sistem terpusat yang disebut Financial Central Services (FCS). Liberty Mutual menggunakan AWS Step Functions untuk membuat aplikasi nirserver yang dapat memproses 100 juta transaksi dalam satu kali proses pada akhir setiap bulan.
Analitik data waktu nyata
Komputasi nirserver sangat ideal untuk mesin streaming waktu nyata guna meningkatkan respons pelanggan. Aplikasi nirserver dapat menangani sejumlah besar data streaming dari ratusan ribu sumber sekaligus mengalami latensi rendah dan bandwidth tinggi. Hasilnya, Anda dapat memperoleh wawasan dalam hitungan detik, alih-alih menit.
Misalnya, Genentech menggunakan fungsionalitas nirserver AWS untuk analisis data klinis. Para peneliti kini dapat menyelesaikan tugas dalam beberapa jam yang sebelumnya membutuhkan waktu berminggu-minggu untuk dijalankan.
Otomatisasi proses bisnis
Anda dapat menggunakan pendekatan nirserver untuk mengotomatiskan proses bisnis yang membosankan dan memakan waktu. Developer Anda dapat fokus menerjemahkan logika bisnis ke kode aplikasi tanpa mengelola server.
Misalnya, Taco Bell menggunakan AWS untuk membuat aplikasi nirserver untuk melakukan logika bisnis dan transformasi data. Aplikasi ini mengirimkan informasi menu dan restoran waktu nyata kepada partner pengiriman Taco Bell. Investasi nirserver membantu merek beralih dengan cepat untuk memenuhi permintaan konsumen akan pengiriman selama pandemi COVID-19.
Bagaimana cara kerja arsitektur nirserver?
Setiap aplikasi memiliki dua area fungsionalitas yang luas, yaitu frontend dan backend. Frontend mencakup semua yang berinteraksi dengan pengguna akhir Anda, seperti tata letak visual, tombol, dan teks tampilan. Backend mencakup fungsionalitas yang tidak dapat diakses pengguna Anda, seperti penyimpanan dan pemrosesan data.
Misalnya, tilik aplikasi pemesanan penerbangan di perangkat seluler Anda. Frontend adalah UI aplikasi Anda, di mana Anda dapat memilih tanggal dan meminta daftar penerbangan yang tersedia. Permintaan Anda masuk ke backend, yang mencari basis data dan mengembalikan informasi tentang semua penerbangan yang tersedia dalam jangka waktu yang Anda pilih. Diagram berikut menunjukkan arsitektur tradisional.
Dalam arsitektur nirserver, developer menerapkan kode backend di infrastruktur cloud yang disediakan oleh penyedia cloud. Kunci aplikasi nirserver adalah arsitektur yang didorong peristiwa, sebuah pola arsitektur modern yang dibangun dari layanan kecil dan terpisah yang menerbitkan, menggunakan, atau merutekan peristiwa. Peristiwa adalah pesan yang dikirim antar layanan.
Arsitektur ini membuatnya lebih mudah untuk menskalakan, memperbarui, dan secara mandiri melakukan deployment komponen sistem yang terpisah. Diagram berikut menunjukkan layanan mikro nirserver yang didorong peristiwa.
Selanjutnya, kami memberikan gambaran umum tentang cara arsitektur nirserver bekerja.
Fungsi
Fungsi adalah unit kode kecil dan diskrit yang melakukan satu tugas. Sebuah fungsi membutuhkan sumber daya komputasi, seperti CPU dan memori untuk berjalan. Penyedia cloud mengalokasikan sumber daya ini hanya jika diperlukan. Ini menciptakan lingkungan sementara agar fungsi nirserver dapat dijalankan.
Peristiwa tertentu dapat memicu atau membuat unit kode berjalan. Misalnya, peristiwa dapat berjalan jika pengguna memilih tombol dalam aplikasi. Permintaan akan memicu fungsi yang membaca basis data dan mengembalikan informasi yang relevan kepada pengguna.
Permintaan penskalaan
Semakin banyak permintaan yang diterima fungsi, semakin banyak sumber daya yang dibutuhkan untuk menjalankannya. Platform nirserver memantau beban dan terus mengalokasikan sumber daya cloud ke skala yang hampir tak terbatas. Dengan demikian, fungsi nirserver tunggal dapat menangani satu atau satu juta permintaan tanpa perubahan kode.
Setelah fungsi berhenti menerima permintaan, penyedia cloud menghapus infrastruktur terkait untuk menghemat biaya. Penyedia cloud mengalokasikan sumber daya hanya jika diperlukan. Jika tidak ada penggunaan, lingkungan dapat diskalakan ke nol.
Apa saja tipe arsitektur nirserver?
Dalam arsitektur nirserver, penyedia cloud mengelola beberapa tugas backend kecil dan besar untuk aplikasi Anda. Anda dapat menerapkan kode khusus; penyedia cloud akan mengalokasikan sumber daya secara dinamis setiap kali kode Anda berjalan. Platform cloud juga dapat menyediakan fungsionalitas backend yang dapat Anda gunakan secara langsung tanpa menulis kode dari awal.
Berikutnya, kami akan menjelaskan kedua jenis arsitektur nirserver.
Fungsi sebagai layanan
Fungsi sebagai layanan (FaaS) adalah arsitektur nirserver yang dapat digunakan developer untuk menulis fungsi backend khusus dan menerapkan kode fungsi secara langsung ke infrastruktur cloud. Saat fungsi dipanggil, penyedia cloud menjalankan fungsi pada server aktif yang sudah ada atau memutar server baru jika diperlukan. Fungsi semacam itu disebut fungsi nirserver karena proses pelaksanaannya terpisah jauh dari developer. Developer dapat menulis dan menerapkan kode tanpa khawatir bagaimana dan di mana kode tersebut dijalankan.
Backend sebagai layanan
Backend sebagai layanan (BaaS) memberi developer akses ke fungsi backend menggunakan API. API adalah mekanisme yang memungkinkan dua komponen perangkat lunak untuk saling berkomunikasi menggunakan serangkaian definisi dan protokol.
Di lingkungan nirserver mereka, vendor cloud memberikan akses berbasis API ke enkripsi tambahan, autentikasi, dan basis data yang dapat diakses cloud. Vendor cloud juga dapat menyediakan akses ke layanan dan aplikasi pihak ketiga lainnya. Fungsi nirserver ini telah ditulis sebelumnya dan dapat dipanggil langsung dalam kode.
Apa itu strategi yang mengutamakan nirserver?
Arsitektur nirserver diakui berdasarkan prinsip berikut:
- Tanpa manajemen server
- Layanan bayar sesuai nilai
- Penskalaan berkelanjutan
- Toleransi kesalahan yang sudah terintegrasi
Strategi yang mengutamakan nirserver memprioritaskan prinsip-prinsip ini di seluruh aplikasi, operasi, dan siklus pengembangan organisasi. Developer nirserver atau perusahaan yang mengutamakan nirserver bekerja untuk membangun dengan mengutamakan dan mengedepankan prinsip-prinsip ini.
Namun, komputasi nirserver tidak cocok untuk setiap beban kerja. Anda dapat menggabungkan teknologi non-nirserver sebagai arsitektur pendukung yang Anda butuhkan.
Apakah arsitektur nirserver aman?
Sebagian besar vendor cloud mengadopsi model keamanan bersama. Penyedia cloud bertanggung jawab atas keamanan cloud, sementara pelanggan bertanggung jawab atas keamanan di cloud.
Dengan nirserver, penyedia cloud mengelola banyak lapisan infrastruktur tambahan, termasuk sistem operasi dan jaringan. Pelanggan harus mengikuti prinsip hak akses paling rendah dan praktik terbaik untuk mengamankan aplikasi nirserver.
Misalnya, dalam solusi AWS FaaS seperti AWS Lambda, Anda dapat mengamankan setiap sumber daya dengan izin terperinci menggunakan alat yang familier, seperti Pusat Identitas AWS IAM. Hal ini dapat membantu memberi Anda postur keamanan yang kuat untuk aplikasi nirserver Anda.
Bagaimana AWS dapat mendukung persyaratan komputasi nirserver Anda?
Amazon Web Services (AWS) memiliki banyak penawaran untuk mendukung komputasi nirserver Anda.
Nirserver di AWS merinci teknologi yang dapat Anda gunakan untuk menjalankan kode, mengelola data, dan mengintegrasikan aplikasi tanpa perlu mengelola server. Dengan teknologi nirserver AWS, Anda mendapatkan penskalaan otomatis, ketersediaan tinggi bawaan, dan model penagihan bayar sesuai penggunaan untuk meningkatkan ketangkasan dan mengoptimalkan biaya. Teknologi ini juga menghilangkan tugas manajemen infrastruktur seperti penyediaan kapasitas dan patching, sehingga Anda dapat fokus pada penulisan kode yang melayani pelanggan Anda.
Aplikasi nirserver dimulai dengan AWS Lambda, layanan komputasi berbasis peristiwa yang terintegrasi secara native dengan lebih dari 200 layanan AWS. Kami juga memiliki sejumlah besar layanan pendukung tambahan, seperti berikut ini:
- AWS Fargate akan membangun aplikasi nirserver yang kompatibel dengan Amazon Elastic Container Service (Amazon ECS) dan Amazon Elastic Kubernetes Service (Amazon EKS)
- Amazon Aurora Nirserver akan membangun basis data nirserver yang secara otomatis menskalakan kapasitas berdasarkan kebutuhan aplikasi Anda
- AWS AppSync mempercepat pengembangan aplikasi dengan API GraphQL yang dapat diskalakan
Mulai nirserver di AWS dengan membuat akun sekarang juga.