Layanan Mikro .NET: Arsitektur untuk Aplikasi .NET yang Dikemas dalam Kontainer

Book cover

EDISI v6.0 - Diperbarui ke ASP.NET Core 6.0

Lihat log perubahan untuk pembaruan buku dan kontribusi komunitas.

Panduan ini adalah sebuah pengantar untuk mengembangkan aplikasi berbasis layanan mikro dan mengelolanya menggunakan kontainer. Panduan ini membahas desain arsitektur dan pendekatan implementasi menggunakan kontainer .NET dan Docker.

Untuk mempermudah memulai, panduan ini berfokus pada aplikasi berbasis kontainer dan layanan mikro referensi yang dapat Anda jelajahi. Aplikasi referensi tersedia di repositori GitHub eShopOnContainers.

Pengantar

Perusahaan semakin menyadari penghematan biaya, memecahkan masalah penyebaran, dan meningkatkan DevOps serta operasi produksi dengan menggunakan kontainer. Microsoft telah merilis inovasi kontainer untuk Windows dan Linux dengan membuat produk seperti Azure Kubernetes Service dan Azure Service Fabric, dan bermitra dengan para pemimpin industri seperti Docker, Mesosphere, dan Kubernetes. Produk-produk ini memberikan solusi kontainer yang membantu perusahaan membangun serta menyebarkan aplikasi dengan kecepatan dan skala cloud, apa pun pilihan platform atau alat mereka.

Docker menjadi standar de facto dalam industri kontainer, didukung oleh vendor-veendor paling penting dalam ekosistem Windows dan Linux. (Microsoft adalah salah satu vendor cloud utama yang mendukung Docker.) Di masa depan, Docker mungkin akan terdapat di pusat data apa pun di cloud atau lokal.

Di samping itu, arsitektur layanan mikro muncul sebagai pendekatan penting untuk aplikasi misi penting terdistribusi. Pada arsitektur berbasis layanan mikro, aplikasi ini dibangun di atas kumpulan layanan yang dapat dikembangkan, diuji, disebarkan, dan dibuat versinya secara independen.

Tentang panduan ini

Panduan ini adalah sebuah pengantar untuk mengembangkan aplikasi berbasis layanan mikro dan mengelolanya menggunakan kontainer. Panduan ini membahas desain arsitektur dan pendekatan implementasi menggunakan kontainer .NET dan Docker. Untuk mempermudah memulai kontainer dan layanan mikro, panduan ini berfokus pada aplikasi berbasis kontainer dan layanan mikro referensi yang bisa Anda jelajahi. Aplikasi contoh tersedia di repositori GitHub eShopOnContainers.

Panduan ini menyediakan pengembangan dasar dan panduan arsitektur terutama pada tingkat lingkungan pengembangan dengan fokus pada dua teknologi: Docker dan .NET. Niat kami adalah agar Anda membaca panduan ini saat memikirkan desain aplikasi Anda tanpa berfokus pada infrastruktur (cloud atau lokal) lingkungan produksi Anda. Anda akan membuat keputusan tentang infrastruktur Anda nanti saat Anda membuat aplikasi siap produksi Anda. Oleh karena itu, panduan ini dimaksudkan untuk menjadi agnostik infrastruktur dan lebih berfokus pada lingkungan pengembangan.

Setelah Anda mempelajari panduan ini, langkah Anda selanjutnya adalah mempelajari layanan mikro siap produksi di Microsoft Azure.

Versi

Panduan ini telah direvisi untuk mencakup versi .NET 6 bersama dengan banyak pembaruan tambahan yang terkait dengan "gelombang" teknologi yang sama (yaitu, Azure dan teknologi pihak ketiga tambahan) yang bertepatan waktu dengan rilis .NET 6. Itu sebabnya versi bukunya juga telah diperbarui ke versi 6.0.

Apa yang tidak dicakup panduan ini

Panduan ini tidak berfokus pada siklus hidup aplikasi, DevOps, alur CI/CD, atau kerja tim. Panduan komplementer Containerized Docker Application Lifecycle dengan Microsoft Platform and Tools berfokus pada subjek tersebut. Panduan saat ini juga tidak memberikan rincian implementasi pada infrastruktur Azure, seperti informasi tentang orkestrator tertentu.

Sumber Daya Tambahan:

Siapa yang harus menggunakan panduan ini

Kami menulis panduan ini untuk pengembang dan arsitek solusi yang asing dalam pengembangan aplikasi berbasis Docker dan arsitektur berbasis layanan mikro. Panduan ini cocok untuk Anda jika Anda ingin mempelajari cara merancang, mendesain, dan mengimplementasikan aplikasi bukti konsep dengan teknologi pengembangan Microsoft (dengan fokus khusus pada .NET) dan dengan kontainer Docker.

Panduan ini juga akanberguna jika Anda adalah pembuat keputusan teknis, seperti arsitek perusahaan, yang menginginkan gambaran umum arsitektur dan teknologi sebelum Anda memutuskan pendekatan apa yang akan dipilih untuk aplikasi terdistribusi baru dan modern.

Cara menggunakan panduan ini

Bagian pertama dari panduan ini memperkenalkan kontainer Docker, membahas cara memilih antara .NET 6 dan .NET Framework sebagai kerangka kerja pengembangan, serta memberikan gambaran umum tentang layanan mikro. Konten ini untuk arsitek dan pembuat keputusan teknis yang menginginkan gambaran umum tetapi tidak perlu fokus pada rincian implementasi kode.

Bagian kedua dari panduan ini dimulai dengan bagian Proses pengembangan untuk aplikasi berbasis Docker. Bagian kedua ini berfokus pada pola pengembangan dan layanan mikro untuk menerapkan aplikasi menggunakan .NET dan Docker. Bagian ini akan jadi yang paling menarik bagi pengembang dan arsitek yang ingin fokus pada kode dan pada pola dan detail implementasi.

Aplikasi eShopOnContainers adalah aplikasi referensi sumber terbuka untuk .NET dan layanan mikro yang dirancang untuk disebarkan dengan kontainer Docker. Aplikasi ini terdiri dari beberapa subsistem, termasuk beberapa front-end antarmuka pengguna e-store (aplikasi Web MVC, SPA Web, serta aplikasi seluler asli). Aplikasi ini juga termasuk layanan mikro back-end dan kontainer untuk semua operasi sisi server yang diperlukan.

Tujuan dari aplikasi ini adalah untuk menampilkan pola arsitektur. APLIKASI INI BUKAN TEMPLAT SIAP PRODUKSI untuk memulai aplikasi dunia nyata. Faktanya, aplikasi ini dalam keadaan beta permanen, karena juga digunakan untuk menguji teknologi baru yang berpotensi menarik saat muncul.

Kirimkan tanggapan Anda!

Kami menulis panduan ini untuk membantu Anda memahami arsitektur aplikasi kontainer serta layanan mikro di .NET. Panduan dan aplikasi referensi terkait akan berkembang, jadi kami menyambut tanggapan Anda! Jika Anda memiliki komentar tentang bagaimana panduan ini dapat ditingkatkan, kirimkan tanggapan di https://aka.ms/ebookfeedback.

Kredit

Rekan Penulis:

Cesar de la Torre, Manajer Proyek Senior, tim produk .NET, Microsoft Corp.

Bill Wagner, Pengembang Konten Senior, C+E, Microsoft Corp.

Mike Rousos, Insinyur Perangkat Lunak Utama, tim DevDiv CAT, Microsoft

Editor:

Mike Pope

Steve Hoag

Peserta dan peninjau:

Jeffrey Richter, Insinyur Perangkat Lunak Mitra, tim Azure, Microsoft

Jimmy Bogard, Kepala Arsitek di Headspring

Udi Dahan, Pendiri & CEO, Perangkat Lunak Tertentu

Jimmy Nilsson, Pendiri Bersama dan CEO Factor10

Glenn Condron, Manajer Program Senior, tim ASP.NET

Mark Fussell, Pimpinan PM Utama, tim Azure Service Fabric, Microsoft

Diego Vega, Pimpinan PM, tim Entity Framework, Microsoft

Barry Dorrans, Manajer Program Keamanan Senior

Rowan Miller, Manajer Program Senior, Microsoft

Ankit Asthana, Manajer PM Utama, tim .NET, Microsoft

Scott Hunter, Direktur Mitra PM, tim .NET, Microsoft

Nish Anil, Manajer Program Senior, tim .NET, Microsoft

Dylan Reisenberger, Arsitek dan Pimpinan Dev di Polly

Steve "ardalis" Smith - Arsitek Perangkat Lunak dan Pelatih - Ardalis.com

Ian Cooper, Arsitek Pengkodean di Brighter

Unai Zorrilla, Arsitek dan Pimpinan Dev di Plain Concepts

Eduard Tomas, Pimpinan Dev di Plain Concepts

Ramon Tomas, Pengembang di Plain Concepts

David Sanz, Pengembang di Plain Concepts

Javier Valero, Chief Operating Officer di Grupo Solutio

Pierre Millet, Konsultan Senior, Microsoft

Michael Friis, Manajer Produk, Docker Inc

Charles Lowell, Insinyur Perangkat Lunak, tim VS CAT, Microsoft

Miguel Veloso, Insinyur Pengembangan Perangkat Lunak di Plain Concepts

Sumit Ghosh, Konsultan Utama di Neudesic

DITERBITKAN OLEH

Tim produk Divisi Pengembang Microsoft, .NET, dan Visual Studio

Divisi Microsoft Corporation

One Microsoft Way

Redmond, Washington 98052-6399

Hak Cipta © 2022 oleh Microsoft Corporation

Hak cipta dilindungi undang-undang. Tidak ada bagian dari isi buku ini yang bisa direproduksi atau ditransmisikan dalam bentuk apa pun atau dengan cara apa pun tanpa izin tertulis dari penerbit.

Buku ini disediakan "apa adanya" dan mengungkapkan pandangan serta pendapat penulis. Pandangan, opini, dan informasi yang dinyatakan dalam buku ini, termasuk URL dan referensi situs web Internet lainnya, dapat berubah tanpa pemberitahuan sebelumnya.

Beberapa contoh yang digambarkan di sini hanya untuk ilustrasi saja dan sifatnya fiktif. Tidak ada asosiasi atau hubungan nyata yang dimaksudkan atau harus disimpulkan.

Microsoft dan merek dagang yang tercantum di https://www.microsoft.com halaman web "Merek Dagang" adalah merek dagang dari grup perusahaan Microsoft.

Mac dan macOS adalah merek dagang Apple Inc.

Logo paus Docker adalah merek dagang terdaftar dari Docker, Inc. Digunakan dengan izin.

Seluruh tanda dan logo lainnya adalah milik dari masing-masing pemiliknya.