Mekanisme komunikasi - Menerapkan Layanan Mikro pada AWS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mekanisme komunikasi

Dalam paradigma microservices, berbagai komponen aplikasi harus berkomunikasi melalui jaringan. Pendekatan umum untuk ini termasuk pesan berbasis REST, berbasis GraphQL, berbasis GRPC, dan asinkron.

Komunikasi berbasis istirahat

Protokol HTTP/S, digunakan secara luas untuk komunikasi sinkron antara layanan mikro, sering beroperasi melalui. RESTful APIs API Gateway menawarkan cara yang efisien untuk membangun API yang berfungsi sebagai titik akses terpusat ke layanan backend, menangani tugas-tugas seperti manajemen lalu lintas, otorisasi, pemantauan, dan kontrol versi.

Komunikasi berbasis GraphQL

Demikian pula, GraphQL adalah metode luas untuk komunikasi sinkron, menggunakan protokol yang sama seperti REST tetapi membatasi eksposur ke titik akhir tunggal. Dengan AWS AppSync, Anda dapat membuat dan menerbitkan aplikasi GraphQL yang berinteraksi AWS dengan layanan dan datastores secara langsung, atau menggabungkan fungsi Lambda untuk logika bisnis.

Komunikasi berbasis GRPC

gRPC adalah protokol komunikasi RPC open-source yang sinkron, ringan, berkinerja tinggi. gRPC meningkatkan protokol yang mendasarinya dengan menggunakan HTTP/2 dan memungkinkan lebih banyak fitur seperti kompresi dan prioritas aliran. Ini menggunakan Protobuf Interface Definition Language (IDL) yang dikodekan biner dan dengan demikian memanfaatkan pembingkaian biner HTTP/2.

Pesan asinkron dan event passing

Pesan asinkron memungkinkan layanan untuk berkomunikasi dengan mengirim dan menerima pesan melalui antrian. Hal ini memungkinkan layanan untuk tetap longgar digabungkan dan mempromosikan penemuan layanan.

Pesan dapat didefinisikan dari tiga jenis berikut:

  • Antrian Pesan: Antrian pesan bertindak sebagai penyangga yang memisahkan pengirim (produsen) dan penerima (konsumen) pesan. Produsen mengantrekan pesan ke dalam antrian, dan konsumen menghapus antrean dan memprosesnya. Pola ini berguna untuk komunikasi asinkron, leveling beban, dan penanganan semburan lalu lintas.

  • Publish-Subscribe: Dalam pola berlangganan terbitkan, pesan dipublikasikan ke suatu topik, dan beberapa pelanggan yang tertarik menerima pesan tersebut. Pola ini memungkinkan penyiaran acara atau pesan ke beberapa konsumen secara asinkron.

  • Event-Driven Messaging: Event-driven messaging melibatkan menangkap dan bereaksi terhadap peristiwa yang terjadi dalam sistem. Acara dipublikasikan ke broker pesan, dan layanan yang tertarik berlangganan jenis acara tertentu. Pola ini memungkinkan kopling longgar dan memungkinkan layanan bereaksi terhadap peristiwa tanpa dependensi langsung.

Untuk mengimplementasikan masing-masing jenis pesan ini, AWS menawarkan berbagai layanan terkelola seperti Amazon SQS, Amazon SNS, Amazon, EventBridge Amazon MQ, dan Amazon MSK. Layanan ini memiliki fitur unik yang disesuaikan dengan kebutuhan spesifik:

  • Amazon Simple Queue Service (Amazon SQS) dan Amazon Simple Notification Service (Amazon SNS): Seperti yang Anda lihat pada Gambar 8, kedua layanan ini saling melengkapi, dengan Amazon SQS menyediakan ruang untuk menyimpan pesan dan Amazon SNS memungkinkan pengiriman pesan ke beberapa pelanggan. Mereka efektif ketika pesan yang sama perlu dikirim ke beberapa tujuan.

    Diagram yang menunjukkan pola bus Pesan pada AWS

    Gambar 8: Pola bus pesan aktif AWS

  • Amazon EventBridge: layanan tanpa server yang menggunakan peristiwa untuk menghubungkan komponen aplikasi bersama-sama, sehingga memudahkan Anda untuk membangun aplikasi berbasis peristiwa yang dapat diskalakan. Gunakan untuk merutekan acara dari sumber seperti aplikasi rumahan, AWS layanan, dan perangkat lunak pihak ketiga ke aplikasi konsumen di seluruh organisasi Anda. EventBridge menyediakan cara sederhana dan konsisten untuk menelan, memfilter, mengubah, dan menyampaikan acara sehingga Anda dapat membangun aplikasi baru dengan cepat. EventBridge bus acara sangat cocok untuk many-to-many perutean acara antara layanan yang digerakkan oleh acara.

  • Amazon MQ: pilihan yang baik jika Anda memiliki sistem pesan yang sudah ada sebelumnya yang menggunakan protokol standar seperti JMS, AMQP, atau sejenisnya. Layanan terkelola ini menyediakan pengganti untuk sistem Anda tanpa mengganggu operasi.

  • Amazon MSK (Managed Kafka): sistem pesan untuk menyimpan dan membaca pesan, berguna untuk kasus di mana pesan harus diproses beberapa kali. Ini juga mendukung streaming pesan real-time.

  • Amazon Kinesis: pemrosesan dan analisis data streaming secara real-time. Hal ini memungkinkan pengembangan aplikasi real-time dan menyediakan integrasi yang mulus dengan AWS ekosistem.

Ingat, layanan terbaik untuk Anda tergantung pada kebutuhan spesifik Anda, jadi penting untuk memahami apa yang ditawarkan masing-masing dan bagaimana mereka selaras dengan kebutuhan Anda.

Orkestrasi dan manajemen negara

Orkestrasi layanan mikro mengacu pada pendekatan terpusat, di mana komponen sentral, yang dikenal sebagai orkestrator, bertanggung jawab untuk mengelola dan mengoordinasikan interaksi antara layanan mikro. Mengatur alur kerja di beberapa layanan mikro dapat menjadi tantangan. Menyematkan kode orkestrasi langsung ke layanan tidak disarankan, karena memperkenalkan kopling yang lebih ketat dan menghalangi penggantian layanan individual.

Step Functions menyediakan mesin alur kerja untuk mengelola kompleksitas orkestrasi layanan, seperti penanganan kesalahan dan serialisasi. Ini memungkinkan Anda untuk menskalakan dan mengubah aplikasi dengan cepat tanpa menambahkan kode koordinasi. Step Functions adalah bagian dari platform AWS tanpa server dan mendukung fungsi Lambda, Amazon, Amazon EKS, EC2 Amazon ECS, SageMaker AI, dan banyak lagi. AWS Glue

Diagram alur kerja layanan mikro yang dipanggil oleh AWS Step Functions

Gambar 9: Contoh alur kerja layanan mikro dengan langkah paralel dan sekuensial yang dipanggil oleh AWS Step Functions

Amazon Managed Workflows for Apache Airflow (Amazon MWAA) adalah alternatif untuk Step Functions. Anda harus menggunakan Amazon MWAA jika Anda memprioritaskan open source dan portabilitas. Airflow memiliki komunitas open-source yang besar dan aktif yang menyumbangkan fungsionalitas dan integrasi baru secara teratur.