Gaya arsitektur dan pola komunikasi
Mengembangkan Aplikasi di AWS
Ricardo Sueiras
Principal Technologist
Pengajar Anda
Apa itu pola arsitektur?
Solusi yang dapat diulang untuk masalah umum.
Pola membantu menggabungkan layanan AWS.
Arsitektur menentukan kinerja app saat beban tinggi.
Beberapa pola arsitektur yang perlu Anda tahu.
Monolit
Satu unit yang terikat erat.
Satu basis kode, satu deployment.
Awalnya mudah dikembangkan.
Sulit diskalakan: semua skala bersama.
Microservices
Layanan kecil, independen: masing-masing menangani satu kapabilitas bisnis.
Deploy, skala, dan perbarui tiap layanan secara mandiri.
Konsekuensi: kompleksitas operasional dan komunikasi antarlayanan meningkat.
Serverless
Tidak ada infrastruktur untuk dikelola, hanya kode dan konfigurasi.
Bangun dengan menyusun layanan AWS terkelola.
AWS menangani provisioning, penskalaan, dan pemeliharaan.
Konsekuensi: batas waktu eksekusi, cold start, vendor lock-in.
Hampir tanpa beban operasional dan skala otomatis.
Event-driven architecture (EDA)
Komponen berkomunikasi dengan memproduksi dan mengonsumsi event, bukan panggilan langsung.
Event mencatat sesuatu yang terjadi (pesanan dibuat, pembayaran diterima, barang dikirim).
Produser memancarkan event.
Konsumen berlangganan event yang relevan.
Sistem terikat erat vs longgar
App cloud modern terdiri dari banyak layanan.
Layanan harus berkomunikasi dan berkoordinasi untuk menyelesaikan kerja.
Komunikasi sinkron terikat erat.
Komunikasi asinkron terikat longgar.
Komunikasi sinkron
Satu layanan mengirim permintaan dan menunggu respons.
Pemanggil terblokir hingga respons atau batas waktu.
Mudah diimplementasikan dan dipahami.
Keterikatan erat: kelambatan/gagal hilir bisa merambat.
Kurangi risiko dengan timeout, retry, dan circuit breaker.
Pola: request/response
Tulang punggung sebagian besar antarmuka aplikasi.
Perilaku prediktif.
Umpan balik langsung ke pengguna.
Komunikasi asinkron
Pengirim tidak menunggu respons.
Mengirim pesan/event lalu lanjut memroses.
Penerima memroses pesan secara independen.
Keterikatan longgar: skalabilitas dan toleransi kesalahan lebih baik.
Menangani lonjakan trafik dan gangguan parsial dengan mulus.
Tantangan: duplikasi pesan, pengurutan, konsistensi akhirnya.
Pola: pemisahan berbasis antrian
Produser mengirim pesan ke antrian.
Konsumen menarik dan memroses pesan secara independen.
Mencegah kegagalan merambat.
Produser dan konsumen diskalakan terpisah.
Pola: worker queue
Banyak pekerja menarik pesan dari satu antrian.
Pesan diproses paralel.
Memungkinkan penskalaan horizontal dan throughput lebih tinggi.
Urutan pesan tidak dijamin.
Pola: publish/subscribe
Publisher mengirim pesan ke topik SNS.
Banyak subscriber menerima pesan yang sama.
Penyiaran real time ke banyak konsumen.
Pola: fan-out
Satu pesan dikirim ke banyak konsumen secara bersamaan.
Banyak dipakai pada arsitektur event-driven.
Berguna saat banyak layanan harus bereaksi pada event yang sama.
Pengurutan pesan
Beberapa beban kerja harus memproses pesan berurutan.
Amazon SQS FIFO dan Kinesis mendukung pemrosesan berurutan.
Pengurutan ketat menurunkan throughput.
Seimbangkan kebenaran dan skalabilitas.
Ayo berlatih!
Mengembangkan Aplikasi di AWS
Preparing Video For Download...