Apa itu Azure Functions?
Anda mengikuti tim web Tailspin Space Game saat mereka membahas cara terbaik untuk memberi tahu persyaratan pemasaran baru yang dibuat oleh manajemen. Tim perlu mengintegrasikan beberapa teknologi tanpa server, khususnya Azure Functions, ke dalam proses DevOps mereka.
Mari kita lihat keadaan tim ini.
Persyaratan baru
Irwin: Terima kasih telah menghadiri pertemuan dengan pemberitahuan yang singkat. Hal-hal yang memanas, dan tim pemasaran telah membuat beberapa janji yang dapat mempersulit hal-hal bagi kita semua. Mereka benar-benar menyukai situs kami. Mereka berpikir bahwa papan peringkat dapat digunakan untuk mempromosikan permainan selagi kita melangkah menuju peluncuran akhir dan seterusnya. Mereka ingin menskalakan keluar jauh di luar apa yang kita awalnya direncanakan.
Mara: Itu bagus, kan? Kami berada di Azure, sehingga kami dapat menskalakan layanan sebanyak yang diperlukan.
Irwin: Mereka hanya ingin kemampuan bagi siapa pun untuk mengintegrasikan data leaderboard ke dalam aplikasi mereka sendiri. Mereka pikir akan sangat keren untuk memiliki opsi papan peringkat yang sama di situs kami, dalam permainan, di situs ulasan game, dan bahkan di blog eksternal dan situs pribadi. Salah satu tantangannya adalah bahwa tim mesin game saat ini memiliki database produksi tempat kami menarik data papan peringkat. Mereka pikir mereka harus membuat dan memiliki API untuk ke depannya.
Andy: Mara, Anda memiliki opini tentang ini?
Aku yakin kita bisa menemukan sesuatu. Berikut adalah catatan saya:
- Kita perlu mengirimkan dengan cepat, jadi kita harus menemukan solusi di mana kita dapat menggunakan kode dan keterampilan kita.
- Kita perlu merefaktor sepotong kecil fungsionalitas menjadi layanan independen.
- Kita perlu meminimalkan overhead administratif dalam produksi.
- Kita harus memiliki skala besar tanpa membuat komitmen besar.
Tim mengabungkan perjanjian.
Ini bekerja sesuai keputusan saya
Rapatnya selesai. Keesokan paginya, Andy dengan bersemangat datang ke kantor Mara untuk mengobrol secara dadakan.
Andy: Saya sudah menemukan solusinya! Saya menemukan solusi yang memenuhi semua persyaratan kami untuk API papan peringkat. Ini adalah penawaran tanpa server yang disebut Azure Functions.
Mara: Itu bagus! Berapa lama sebelum kita memiliki sesuatu yang bisa kita demo?
Aku sudah melonjakan sesuatu. Saya membuat fork repositori GitHub kami dan merefaktor kode leaderboard ke dalam proyek Azure Functions baru. Ini mengekspos data papan peringkat melalui permintaan HTTP GET sederhana. Saya juga memperbarui situs web untuk menggunakan titik akhir tersebut saat meminta papan peringkat, dan siapa pun dapat melakukan hal yang sama.
Mara: Kedengarannya tepat seperti yang kita butuhkan. Saya dapat membantu memperluas alur CI/CD yang ada untuk mendukung pembangunan dan penyebarannya seperti yang kita lakukan untuk proyek situs utama.
Catatan
Dalam modul ini, kita tidak akan berfokus pada cara menghubungkan aplikasi ke Azure Functions. Jika tertarik, Anda dapat meninjau kode sumber. Kode ini menggunakan runtime Azure Functions untuk C# guna membaca data papan peringkat dari Azure Functions.
Apa itu Azure Functions?
Azure Functions adalah penawaran khusus dalam spektrum teknologi komputasi tanpa server Azure yang lebih luas. Azure Functions menyediakan cara mudah bagi pengembang untuk membangun fungsi langsung yang ada di lingkungan tanpa status dan tanpa server. Fungsi dapat dipicu menggunakan berbagai metode, seperti permintaan HTTP, perubahan pada data dalam penyimpanan, penerimaan pesan dari antrean, dan banyak lagi. Anda dapat mempelajari selengkapnya tentang pengikatan pemicu dalam konsep pemicu dan pengikatan Azure Functions.
Tim Tailspin memilih Azure Functions untuk skenario ini karena memenuhi semua kebutuhan mereka:
- Kita perlu mengirimkan dengan cepat, jadi kita harus menemukan solusi di mana kita dapat menggunakan kode dan keterampilan kita.
- Kita dapat membangun solusi dengan cepat sebagai aplikasi ASP.NET Core yang menerapkan kode yang sudah kita miliki.
- Kita perlu merefaktor sepotong kecil fungsionalitas menjadi layanan independen.
- Kita dapat memberikan fungsi independen tanpa area permukaan aplikasi lain yang perlu dikhawatirkan.
- Kita perlu meminimalkan overhead administratif dalam produksi.
- Azure Functions membuat kita tidak khawatir tentang lingkungan hosting.
- Kita harus memiliki skala besar tanpa membuat komitmen besar.
- Teknologi tanpa server memiliki skala yang hampir tidak terbatas yang dapat secara otomatis meningkatkan dan menurunkan lebih cepat daripada komputer virtual atau layanan aplikasi.
Azure Functions dan teknologi tanpa server lainnya tidak selalu cocok untuk setiap solusi. Nantinya, kita akan membahas di mana Anda dapat menemukan sumber daya untuk membantu Anda memilih teknologi yang tepat untuk pekerjaan tersebut.