Beranda
Topics
Tanpa server
Diterbitkan: 10 Juni 2024
Kontributor: Stephanie Susnjara, Ian Smalley
Komputasi tanpa server adalah model pengembangan dan eksekusi aplikasi yang memungkinkan pengembang untuk membangun dan menjalankan kode aplikasi tanpa menyediakan atau mengelola server atau infrastruktur back-end.
Tanpa server tidak berarti "tidak ada server." Terlepas dari namanya, server dalam komputasi tanpa server dikelola oleh penyedia layanan cloud (CSP). 'Tanpa server' menggambarkan pengalaman pengembang dengan server tersebut—server tidak terlihat oleh pengembang, yang tidak melihat, mengelola, atau berinteraksi dengan server tersebut melalui cara apa pun.
Pengembang dapat fokus pada penulisan kode aplikasi front-end dan logika bisnis terbaik dengan komputasi tanpa server. Yang perlu mereka lakukan hanyalah menulis kode aplikasi dan menerapkannya ke kontainer yang dikelola oleh CSP.
Penyedia cloud menangani sisanya, penyediaan infrastruktur cloud yang diperlukan untuk menjalankan kode dan menskalakan infrastruktur naik dan turun sesuai permintaan sesuai kebutuhan, dan juga bertanggung jawab atas semua manajemen dan pemeliharaan infrastruktur rutin, seperti pembaruan dan tambalan sistem operasi, manajemen keamanan, perencanaan kapasitas, pemantauan sistem, dan banyak lagi.
Selain itu, pengembang tidak pernah membayar kapasitas yang menganggur dengan serverless. Penyedia cloud beroperasi dan menyediakan sumber daya komputasi yang diperlukan sesuai permintaan saat kode dijalankan, dan memutarnya kembali—disebut 'penskalaan ke nol'—saat eksekusi berhenti. Penagihan dimulai saat eksekusi dimulai, dan berakhir saat eksekusi berhenti; biasanya, harga didasarkan pada waktu pelaksanaan dan Sumber daya yang dibutuhkan.
Seiring dengan infrastruktur sebagai layanan (IaaS), platform sebagai layanan (PaaS), fungsi sebagai layanan (FaaS), dan perangkat lunak sebagai layanan (SaaS), tanpa server telah menjadi penawaran layanan cloud terkemuka. Menurut laporan dari SkyQuest Technology, ukuran pasar arsitektur tanpa server global bernilai USD 8,01 miliar pada tahun 2022 dan diperkirakan akan tumbuh dari USD 9,84 miliar pada tahun 2023 menjadi USD 50,86 miliar pada tahun 20311. Saat ini setiap penyedia layanan cloud terkemuka menawarkan platform tanpa server termasuk Amazon Web Services (AWS Lambda), Microsoft Azure (Azure Functions), Google Cloud (Google Cloud Functions) dan IBM Cloud (IBM Cloud Code Engine).
Bersama-sama, komputasi tanpa server, layanan mikro, dan kontainer membentuk tiga serangkai teknologi yang merupakan inti dari pengembangan aplikasi cloud native.
Lihat video ini untuk penjelasan terperinci tentang tanpa server dan tumpukan tanpa server (6:37).
Hubungkan dan integrasikan sistem Anda untuk mempersiapkan infrastruktur Anda untuk AI.
Tanpa server dimulai pada tahun 2008 ketika Google merilis Google App Engine (GAE), sebuah platform untuk mengembangkan dan menghosting aplikasi web di pusat data yang dikelola Google. Dengan GAE, pengembang perangkat lunak dapat membuat dan meluncurkan perangkat lunak di Google Cloud tanpa khawatir tentang tugas manajemen server seperti patching atau penyeimbangan beban, , yang ditangani Google.
Istilah 'tanpa server' pertama kali muncul dalam sebuah artikel teknologi oleh spesialis komputasi cloud Ken Fromm pada tahun 20122. Pada tahun 2014, Amazon memperkenalkan AWS Lambda, platform tanpa server pertama. Dinamakan berdasarkan fungsi dari kalkulus lambda dan pemrograman, AWS Lambda, sebuah model FaaS, membantu kerangka kerja komputasi tanpa server mendapatkan daya tarik pasar massal dan adopsi yang cepat di kalangan pengembang perangkat lunak dengan memungkinkan mereka untuk menjalankan kode sebagai respons terhadap peristiwa tanpa perlu manajemen server. Pada tahun 2016, Microsoft Azure Functions dan Google Cloud Functions meluncurkan platform tanpa server mereka.
Pemain utama lainnya di pasar platform serverless saat ini termasuk IBM Cloud Code Engine, Oracle Cloud Infrastructure (OCI) Functions, Cloudflare Workers, dan Alibaba Function Compute.
Serverless lebih dari sekadar fungsi sebagai layanan (FaaS), yaitu layanan komputasi awan yang memungkinkan pengembang untuk menjalankan kode atau kontainer sebagai respons terhadap peristiwa atau permintaan tertentu tanpa menentukan atau mengelola infrastruktur yang diperlukan untuk menjalankan kode.
FaaS adalah model komputasi yang penting bagi serverless, dan kedua istilah ini sering digunakan secara bergantian. DIbandingkan dengan FaaS, tanpa server merupakan keseluruhan tumpukan yang dapat merespons peristiwa atau permintaan tertentu, dan berskala ke nol ketika tidak lagi digunakan, yang penyediaan, pengelolaan, dan penagihan ditangani oleh penyedia cloud dan tidak terlihat oleh pengembang.
Selain FaaS, layanan ini mencakup database dan penyimpanan, antarmuka pemrograman aplikasi (API) gateway dan arsitektur berbasis peristiwa.
Database (SQL dan NoSQL) dan penyimpanan (terutama object storage) adalah dasar dari lapisan data. Pendekatan serverless terhadap teknologi ini melibatkan transisi dari penyediaan 'instans' dengan kapasitas, koneksi, dan batas kueri yang ditentukan, dan beralih ke model yang berskala linier dengan permintaan baik dalam infrastruktur maupun harga.
API gateway bertindak sebagai proksi untuk tindakan aplikasi web dan menyediakan perutean metode HTTP, ID dan rahasia klien, batas kecepatan, CORS, melihat penggunaan API, melihat log respons, dan kebijakan berbagi API.
Arsitektur tanpa server bekerja dengan baik untuk beban kerja yang digerakkan oleh peristiwa dan pemrosesan aliran, terutama platform streaming acara Apache Kafka sumber terbuka.
Fungsi tanpa server otomatis bersifat tanpa status dan dirancang untuk menangani peristiwa individual. Fungsi-fungsi ini telah menjadi bagian penting dari arsitektur berbasis peristiwa (EDA)—model desain perangkat lunak yang dibangun di sekitar publikasi, penangkapan, pemrosesan, dan penyimpanan peristiwa. Dalam kerangka kerja EDA, produsen peristiwa (misalnya, layanan mikro, API, perangkat IoT) mengirim event notifications real-time kepada konsumen peristiwa, yang mengaktifkan rutinitas pemrosesan tertentu. Misalnya, ketika Netflix merilis serial orisinal baru, beberapa layanan EDA menunggu dalam keadaan siaga untuk pemberitahuan rilis, yang memicu serangkaian pembaruan untuk memberi tahu pengguna. Banyak perusahaan lain yang berbasis web dan aplikasi seluler yang berhadapan dengan pengguna (misalnya, Uber, DoorDash, Instacart) mengandalkan arsitektur berbasis peristiwa.
Karena tanpa server, platform sebagai layanan (PaaS), kontainer, dan virtual machines (VM) semuanya memainkan peran penting dalam pengembangan aplikasi cloud dan ekosistem komputasi, ada baiknya mengukur bagaimana tanpa server dibandingkan dengan yang lain dalam beberapa atribut utama.
Kubernetes adalah platform orkestrasi kontainer sumber terbuka yang mengotomatiskan penerapan, pengelolaan, dan penskalaan kontainer. Otomatisasi ini secara drastis menyederhanakan pengembangan aplikasi yang dikontainerisasi .
Aplikasi serverless sering kali diterapkan di kontainer. Namun, Kubernetes hanya dapat menjalankan aplikasi serverless secara mandiri dengan perangkat lunak khusus yang mengintegrasikan Kubernetes dengan platform serverless dari penyedia cloud tertentu.
Knative adalah ekstensi sumber terbuka untuk Kubernetes yang menyediakan kerangka kerja serverless. Ekstensi ini memungkinkan kontainer apa pun untuk berjalan sebagai beban kerja serverless di platform cloud apa pun yang menjalankan Kubernetes, baik kontainer dibangun dengan fungsi serverless atau kode aplikasi lain (misalnya, layanan mikro). Knative bekerja dengan mengabstraksi kode dan menangani perutean jaringan, pemicu peristiwa, dan penskalaan otomatis untuk eksekusi serverless.
Knative transparan bagi pengembang. Mereka membangun kontainer menggunakan Kubernetes, dan Knative melakukan sisanya, menjalankan kontainer sebagai beban kerja tanpa server.
Komputasi tanpa server menawarkan banyak manfaat teknis dan bisnis bagi pengembang individu dan tim pengembangan perusahaan:
Meskipun tanpa server memiliki banyak keuntungan, penting untuk mempertimbangkan beberapa kelemahan:
Meskipun CSP menyediakan langkah-langkah keamanan untuk mengelola aplikasi tanpa server, klien juga bertanggung jawab untuk mengamankan kode aplikasi dan data sesuai dengan model tanggung jawab bersama. Langkah-langkah keamanan berbasis cloud untuk tanpa server mencakup kebijakan dan solusi keamanan otomatis seperti informasi keamanan dan manajemen peristiwa (SIEM), manajemen identitas dan akses (IAM), serta deteksi dan respons ancaman.
Mengikuti praktik DevSecOps membantu tim pengembangan mengamankan teknologi tanpa server. DevSecOps, yang merupakan kependekan dari development (pengembangan), security (keamanan), dan operations (operasi), adalah praktik pengembangan aplikasi yang mengotomatiskan integrasi keamanan dan praktik keamanan di setiap fase siklus pengembangan perangkat lunak, mulai dari desain awal hingga integrasi, pengujian, pengiriman, dan penerapan.
Tidak seperti lingkungan pusat data on-prem tradisional, model komputasi tanpa server dapat membantu organisasi mengurangi konsumsi energi dan menurunkan jejak karbon untuk operasi TI.
Selain itu, model tanpa server memungkinkan perusahaan untuk mengoptimalkan emisi mereka melalui efisiensi sumber daya dengan hanya membayar dan menggunakan sumber daya yang dibutuhkan. Fitur ini menghasilkan lebih sedikit energi yang terbuang pada proses idle atau berlebih.
Dengan atribut dan manfaatnya yang unik, arsitektur tanpa server berfungsi paling baik untuk contoh penggunaan yang melibatkan layanan mikro, back-end seluler, serta pemrosesan aliran data dan peristiwa.
Contoh penggunaan tanpa server yang paling umum saat ini adalah mendukung arsitektur layanan mikro. Model layanan mikro difokuskan pada pembuatan layanan kecil yang melakukan satu pekerjaan dan berkomunikasi satu sama lain menggunakan API. Meskipun layanan mikro juga dapat dibangun dan dioperasikan menggunakan PaaS atau kontainer, layanan tanpa server telah mendapatkan momentum yang signifikan mengingat atributnya seputar bit kode kecil, penskalaan bawaan dan otomatis, penyediaan cepat, dan model harga yang tidak pernah mengenakan biaya untuk kapasitas siaga.
Tindakan (atau fungsi) apa pun dalam platform tanpa server dapat diubah menjadi titik akhir HTTP yang siap digunakan oleh klien web. Saat diaktifkan untuk web, tindakan ini disebut tindakan web. Setelah memiliki tindakan web, Anda dapat merakitnya menjadi API berfitur lengkap dengan API gateway yang menghadirkan lebih banyak keamanan, dukungan OAuth3, pembatasan kecepatan, dan dukungan domain kustom.
Open Liberty InstantOn4 mengambil pendekatan baru untuk mendukung startup yang cepat untuk aplikasi tanpa server. Dengan InstantOn, Anda dapat mengambil titik pemeriksaan dari proses aplikasi Java yang sedang berjalan selama pembuatan aplikasi dan kemudian mengembalikan titik pemeriksaan tersebut dalam produksi. Pemulihan cepat (hingga 100 milidetik), yang membuatnya ideal untuk tanpa server. Karena InstantOn adalah titik pemeriksaan dari aplikasi Anda yang sudah ada, perilakunya setelah pemulihan identik, termasuk kinerja throughput yang sama baiknya. Proses ini memungkinkan organisasi untuk mengadopsi tanpa server untuk aplikasi cloud native baru dan memberikan kesempatan untuk membawa arsitektur tanpa server ke perusahaan yang sudah ada.
Tanpa server sangat cocok untuk bekerja dengan data teks, audio, gambar, dan video yang terstruktur di sekitar tugas-tugas seperti pengayaan data, transformasi, validasi, dan pembersihan. Pengembang juga dapat menggunakannya untuk pemrosesan PDF, normalisasi audio, pemrosesan gambar (rotasi, penajaman, pengurangan noise, pembuatan thumbnail), pengenalan karakter optik (OCR) dan transkode video.
Setiap tugas yang sangat paralel adalah contoh penggunaan yang baik untuk waktu proses tanpa server, dengan setiap tugas yang dapat diparalelkan menghasilkan satu pemanggilan tindakan. Contoh tugas mencakup semuanya mulai dari pencarian dan pemrosesan data (khususnya cloud object storage), operasi MapReduce, dan pengumpulan web hingga otomatisasi proses bisnis, penyetelan hyperparameter, simulasi Monte Carlo, dan pemrosesan genom.
Menggabungkan Apache Kafka terkelola dengan FaaS dan database atau penyimpanan menawarkan fondasi yang kuat untuk pembangunan alur data dan aplikasi streaming secara real-time. Arsitektur ini cocok untuk bekerja dengan semua jenis penyerapan aliran data (untuk validasi, pembersihan, pengayaan, dan transformasi), termasuk data sensor IoT, data log aplikasi, data pasar keuangan, dan aliran data bisnis (dari sumber data lain).
Tanpa server menyediakan skalabilitas otomatis yang diperlukan untuk menjalankan beban kerja kecerdasan buatan (AI) dan machine learning (ML), memastikan kinerja yang optimal dan mempercepat inovasi.
Komputasi tanpa server mendukung strategi hybrid cloud dengan memberikan kelincahan, fleksibilitas, dan skalabilitas yang diperlukan untuk mengakomodasi beban kerja yang berfluktuasi di seluruh lingkungan on-premises, cloud publik, cloud privat, dan lingkungan edge.
Tanpa server mendukung banyak aplikasi paling umum saat ini, termasuk manajemen hubungan pelanggan (CRM), komputasi kinerja tinggi (HPC), analitik big data, otomatisasi proses bisnis, streaming video, game, telemedicine, digital commerce, pembuatan chatbot , dan banyak lagi.
Anda dapat mengembangkan keterampilan komputasi serverless dengan tutorial berikut:
Menjalankan kontainer, kode aplikasi, atau pekerjaan batch pada waktu proses kontainer yang terkelola sepenuhnya.
Baik itu penerapan, membangun aplikasi cloud native baru, refactoring atau replatforming aplikasi yang sudah ada, Cloud Pak for Applications (CP4Apps) telah mencakupnya.
Menerapkan dan menjalankan aplikasi secara konsisten di seluruh lingkungan on premises, komputasi edge, dan cloud publik dari vendor cloud mana pun.
Lapisan data untuk aplikasi berskala besar, tangguh, dan tersedia secara global, berdasarkan Apache CouchDB sumber terbuka.
Pemantauan aplikasi dan layanan tanpa server Anda untuk mengoptimalkan kinerja, ketersediaan, dan keamanan.
Pelajari lebih lanjut insight tentang peluang dan tantangan dunia nyata dari komputasi tanpa server.
Melampaui fungsi untuk menjalankan semua beban kerja dalam kontainer - termasuk aplikasi web, layanan mikro, dan tugas batch - pada platform tanpa server yang terkelola sepenuhnya ini.
Lihatlah lebih dekat IBM Cloud Code Engine dan manfaat yang ditawarkannya.
(Semua tautan berada di luar ibm.com)
1 Global Serverless Architecture Market Report, SkyQuest, Maret 2024
2 Why The Future Of Software And Apps Is Serverless, ReadWrite, Oktober 2012
3 Tentang OAuth 2.0, OAuth
4 Faster startup for containerized applications with Open Liberty InstantOn, Open Liberty