Baca dalam bahasa Inggris

Bagikan melalui


Memperkenalkan aplikasi referensi eShopOnContainers

Tip

Konten ini adalah kutipan dari eBook, Merancang Aplikasi .NET Cloud Native untuk Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Microsoft, dalam kemitraan dengan pakar komunitas terkemuka, telah menghasilkan aplikasi referensi layanan mikro cloud-native berfitur lengkap, eShopOnContainers. Aplikasi ini dibangun untuk menampilkan penggunaan .NET dan Docker, serta secara opsional Azure, Kubernetes, dan Visual Studio, untuk membangun etalase online.

eShopOnContainers Sample App Screenshot.

Gambar 2-1. Contoh Cuplikan Layar Aplikasi eShopOnContainers.

Sebelum memulai bab ini, sebaiknya Anda mengunduh aplikasi referensi eShopOnContainers. Jika Anda melakukannya, seharusnya lebih mudah bagi Anda untuk mengikuti informasi yang disajikan.

Fitur dan persyaratan

Mari kita mulai dengan ulasan fitur dan persyaratan aplikasi. Aplikasi eShopOnContainers mewakili toko online yang menjual berbagai produk fisik seperti kaus dan mug kopi. Jika Anda membeli sesuatu secara online sebelumnya, pengalaman menggunakan toko seharusnya cukup terbiasa. Berikut adalah beberapa fitur dasar yang diterapkan toko:

  • Mencantumkan item katalog
  • Memfilter item berdasarkan nama
  • Memfilter item berdasarkan merek
  • Menambahkan item ke keranjang belanja
  • Mengedit atau menghapus item dari keranjang
  • Selesai
  • Mendaftarkan akun
  • Masuk
  • Keluar
  • Mengulas pesanan

Aplikasi ini juga memiliki persyaratan non-fungsi berikut:

  • Ini harus sangat tersedia dan harus diskalakan secara otomatis untuk memenuhi peningkatan lalu lintas (dan menurunkan skala kembali setelah lalu lintas mereda).
  • Ini harus memberikan pemantauan yang mudah digunakan terhadap log diagnostik dan kesehatannya untuk membantu memecahkan masalah yang dihadapinya.
  • Ini harus mendukung proses pengembangan yang tangkas, termasuk dukungan untuk integrasi dan penyebaran berkelanjutan (CI/CD).
  • Selain dua front end web (tradisional dan Aplikasi Halaman Tunggal), aplikasi juga harus mendukung aplikasi klien seluler yang menjalankan berbagai jenis sistem operasi.
  • Ini harus mendukung hosting lintas platform dan pengembangan lintas platform.

eShopOnContainers reference application development architecture.

Gambar 2-2. eShopOnContainers mereferensikan arsitektur pengembangan aplikasi.

Aplikasi eShopOnContainers dapat diakses dari klien web atau seluler yang mengakses aplikasi melalui HTTPS yang menargetkan aplikasi server ASP.NET Core MVC atau API Gateway yang sesuai. API Gateway menawarkan beberapa keuntungan, seperti memisahkan layanan back-end dari klien front-end individu dan memberikan keamanan yang lebih baik. Aplikasi ini juga menggunakan pola terkait yang dikenal sebagai Backends-for-Frontends (BFF), yang merekomendasikan pembuatan gateway API terpisah untuk setiap klien front-end. Arsitektur referensi menunjukkan pemecahan gateway API berdasarkan apakah permintaan berasal dari klien web atau seluler.

Fungsionalitas aplikasi dipecah menjadi banyak layanan mikro yang berbeda. Ada layanan yang bertanggung jawab untuk autentikasi dan identitas, mencantumkan item dari katalog produk, mengelola keranjang belanja pengguna, dan melakukan pemesanan. Masing-masing layanan terpisah ini memiliki penyimpanan persistennya sendiri. Tidak ada penyimpanan data primer tunggal yang berinteraksi dengan semua layanan. Sebaliknya, koordinasi dan komunikasi di antara layanan dilakukan sesuai kebutuhan dan dengan menggunakan bus pesan.

Masing-masing layanan mikro yang berbeda dirancang secara berbeda, berdasarkan persyaratan masing-masing. Aspek ini berarti tumpukan teknologi mereka mungkin berbeda, meskipun semuanya dibangun menggunakan .NET dan dirancang untuk cloud. Layanan yang lebih sederhana menyediakan akses Create-Read-Update-Delete (CRUD) dasar ke penyimpanan data yang mendasarinya, sedangkan layanan yang lebih canggih menggunakan pendekatan dan pola Desain Domain-Driven untuk mengelola kompleksitas bisnis.

Different kinds of microservices

Gambar 2-3. Berbagai jenis layanan mikro.

Gambaran umum kode

Karena menggunakan layanan mikro, aplikasi eShopOnContainers mencakup beberapa proyek dan solusi terpisah dalam repositori GitHub-nya. Selain solusi terpisah dan file executable, berbagai layanan dirancang untuk berjalan di dalam kontainernya sendiri, baik selama pengembangan lokal maupun saat dijalankan dalam produksi. Gambar 2-4 menunjukkan solusi Visual Studio lengkap, tempat berbagai proyek berbeda diatur.

Projects in Visual Studio solution.

Gambar 2-4. Proyek di solusi Visual Studio.

Kode diatur untuk mendukung berbagai layanan mikro, dan dalam setiap layanan mikro, kode dipecah menjadi logika domain, masalah infrastruktur, dan antarmuka pengguna atau titik akhir layanan. Dalam banyak kasus, dependensi setiap layanan dapat dipenuhi oleh layanan Azure dalam produksi, dan opsi alternatif untuk pengembangan lokal. Mari kita periksa bagaimana persyaratan aplikasi dipetakan ke layanan Azure.

Memahami layanan mikro

Buku ini berfokus pada aplikasi cloud-native yang dibangun menggunakan teknologi Azure. Untuk mempelajari lebih lanjut tentang praktik terbaik layanan mikro dan cara merancang aplikasi berbasis layanan mikro, baca buku pendamping, Layanan Mikro .NET: Arsitektur untuk Aplikasi .NET dalam Kontainer.