Arsitektur & implementasi Microservices Langkah-demi-Langkah Bagian 1

Hai semua,

Saya sedang dalam proses mengimplementasikan proyek sederhana berbasis layanan-mikro sebagai contoh panduan langkah-demi-langkah bagi mereka yang mengalami kesulitan dengan arsitektur layanan-mikro dan masih mencari referensi baik lainnya. Juga, saya akan sangat menghargai pemikiran melalui umpan balik dan proposal untuk menjadikan proyek ini sebagai pekerjaan yang berkualitas tinggi.

Ada banyak artikel dan contoh kode sumber. Tetapi, sayangnya, saya tidak dapat menemukan referensi dengan instruksi langkah-demi-langkah yang sederhana, tanpa melakukan penyelaman mendalam ke Docker, Event Store, banyak konfigurasi, hal-hal penyebaran cloud, dll. Saya mengkloning beberapa proyek dan mencoba untuk mulai bermain dengan mereka, tetapi Anda tahu, hanya Tuhan yang tahu bagaimana memulainya, dependensi mana yang hilang dan mengapa semua skrip gagal dengan ribuan KESALAHAN.

Sebagai contoh, proyek eShop dari Microsoft ini berisi semua yang kita butuhkan, tetapi tidak begitu mudah untuk mengetahui apa yang terjadi di sana, string koneksi database SQL, skrip Docker gagal, tidak ada How-Tos dan saya tidak yakin itu super Arsitektur sederhana yang harus Anda mulai.

gambar

Orang-orang dari Polandia ini mencoba membuat sesuatu yang berharga dan cukup sederhana, silakan periksa .
Jadi, di sini saya akan mencoba menerapkan tutorial seperti itu sesederhana mungkin untuk memulai dengan dasar-dasar dan menulis beberapa kode dasar untuk digunakan sesudahnya dalam proyek Anda.

Kami tidak akan berbicara tentang "mengapa / kapan kita harus menggunakan layanan microser?", Ada begitu banyak artikel tentang itu. Misalnya, orang ini melakukan riset yang bagus dan merangkum tentang layanan-layanan mikro .

Akan mencakup topik-topik berikut dan mencoba membuatnya tetap sederhana:

  1. Pra persyaratan dan pengaturan lingkungan
  2. Memilih nama untuk proyek + sasaran yang ingin kita capai
  3. Arsitektur keseluruhan
  4. Mulai dari implementasi (.NET Core)
  5. Pengaturan dan pengujian basis data dan cache
  6. Konfigurasi alat dan utilitas
  7. Tentukan skenario penggunaan kasus super dasar + implementasinya
  8. Penempatan ke suatu tempat

Akan menggunakan .NET Core 2.1, VS2017 di Windows 10. Pihak ketiga berikut harus diinstal dan dijalankan pada mesin Anda: Redis untuk Windows , MongoDB , Seq , RabbitMQ . Akan menjalankan semua hal dengan parameter standarnya. Saya menemukan alat-alat ini cepat dan mudah untuk menginstal dan bekerja di luar kotak.

Klien desktop untuk Redis ( https://redisdesktop.com/ ):

gambar

Klien desktop untuk MongoDB ( https://nosqlbooster.com/ ):

gambar

2. Tujuan proyek ini adalah menciptakan backend untuk akuisisi data dari ribuan perangkat mobile / wearable. Jenis data adalah data sensor: gerakan 9-sumbu, geoposisi, suhu, kelembaban, dll. Juga ingin memproses dan menganalisis semua data untuk ditampilkan di beberapa UI berbasis web yang indah sebagai statistik, grafik, pelacakan, dll. Nama untuk sebuah proyek dipilih ketika saya sedang menulis paragraf ini - "Sensor Fusion Backend". Dua microservices pertama yang dapat saya pikirkan adalah DataProcessorService dan DataAnalyticsService.

3. Mari kita mulai berpikir tentang arsitektur dan infrastruktur minimal setidaknya untuk pemula. Konektivitas: proyek kami berurusan dengan tipe data IoT / sensor jadi, dengan hal itu dalam pikiran saya akan menggunakan broker pesan RabbitMQ untuk komunikasi client-server. Berikut adalah dua penjelasan singkat dan sederhana . Database: akan menggunakan kombinasi MongoDB + Redis . MongoDB sebagai sistem penyimpanan utama dan Redis sebagai cache. Logging: Serilog logger library + Seq sebagai alat visualizer.

Seq adalah aplikasi web yang dihosting di infrastruktur Anda:

gambar

Untuk menyederhanakan API saya akan menggunakan Swagger:

gambar

Jadi, bagian pertama adalah lebih lanjut tentang alat apa yang akan kita gunakan untuk memulai implementasi. Akan melihat kode di Bagian 2 dan mulai bermain dengan infrastruktur.

Source: https://habr.com/ru/post/id458400/


All Articles