Perbedaan antara Gateway Gateway dan ESB? [Tutup]

20

Perusahaan tempat saya bekerja sedang mengevaluasi beberapa solusi middleware untuk pengaturan, pengukuran dan keamanan layanan web. Saat ini, kami menggunakan Enterprise Service Bus (ESB) untuk tujuan ini, tetapi beberapa orang keren dalam manajemen memutuskan mereka akan menggunakan beberapa Middleware Manajemen API.

Saya meneliti sedikit tentang Solusi Manajemen API (alias API Gateway) ini tetapi tidak dapat menemukan perbedaan antara mereka dan ESB yang sebenarnya. Saya mengevaluasi beberapa kertas putih dari Mule, WSO2, Oracle dll, tetapi fitur yang ditawarkan oleh kedua produk tampaknya hampir sama. Pertanyaannya adalah, apa yang bisa dilakukan oleh Manajemen API yang tidak bisa dilakukan oleh ESB dan sebaliknya? Nilai apa yang dapat ditambahkan ke Infrastruktur TI dengan mengganti ESB untuk Gateway API?

dliber
sumber
4
Bagaimana pertanyaan "Apa perbedaan antara API Gateway dan ESB" di luar topik untuk diskusi Rekayasa Perangkat Lunak?
Francisco d'Anconia

Jawaban:

21

Alasan Anda mendapatkan konsep yang campur aduk adalah bahwa vendor menjualnya dalam satu paket. Tetapi mereka jelas merupakan konsep yang terpisah.

API Gateway menyediakan titik akses pusat untuk mengelola, memantau, dan mengamankan akses ke layanan web Anda yang terbuka untuk umum. Ini juga akan memungkinkan Anda untuk mengkonsolidasikan layanan di berbagai titik akhir yang berbeda seolah-olah mereka semua berasal dari satu host. Misalnya, Anda memiliki sepuluh titik akhir layanan berbeda yang semuanya merupakan bagian dari satu "rangkaian" layanan. Daripada memberi tahu konsumen tentang layanan Anda untuk menggunakan service1.yourcompany.com untuk satu layanan dan service2.yourcompany.com untuk layanan lain dan sebagainya, Anda dapat meminta mereka semua menunjuk ke api.yourcompany.com/service1 atau api.yourcompany.com / service2 dan gateway akan bertanggung jawab untuk mengarahkan kembali permintaan ke titik akhir yang sesuai.

ESB adalah "Bus" internal yang memungkinkan aplikasi dan layanan untuk berkomunikasi satu sama lain secara tidak terpisahkan. Semua aplikasi dapat terhubung ke bus dan mereka dapat menerima pesan apa pun yang menarik bagi mereka ketika dipublikasikan oleh aplikasi lain. Mereka juga dapat mempublikasikan pesan mereka sendiri yang dapat didengarkan dan ditanggapi oleh aplikasi lain. Aplikasi tidak bertanggung jawab untuk terhubung satu sama lain secara langsung, mereka mempublikasikan pesan mereka ke bus dan semua pihak yang berkepentingan mendengarkan dan bereaksi.

Logikanya API Gateway bukan pengganti ESB melainkan peningkatan untuk arsitektur berorientasi layanan.

Michael Brown
sumber
1
Saya percaya argumen untuk menggunakan ESB adalah sama. ESB adalah titik akses sentral dan dapat melakukan penyeimbangan muatan, pemantauan, pengukuran, dan keamanan layanan dari titik akhir yang berbeda. Anda juga dapat meneruskan URL ESB kepada konsumen alih-alih URL layanan individual. Sejauh ini, tidak ada yang baru.
dliber
ESB adalah API Gateway internal yang ditujukan untuk konsumsi eksternal. Jika Anda ingin menggunakan API Gateway secara internal alih-alih ESB, saya kira tidak ada yang menghentikan Anda.
Michael Brown
Itulah intinya. Ada tumpang tindih fitur platform ESB dan API. Anda dapat menggunakan ESB untuk akses eksternal atau platform API untuk akses internal. Jika fitur-fiturnya sama, apa manfaat menggunakan salah satu daripada yang lain? Apa yang membuat mereka sangat berbeda sehingga Anda dapat menggunakan yang satu daripada yang lain (atau keduanya bersamaan) dan memberikan nilai nyata bagi bisnis Anda?
dliber
Satu hal ESB dirancang untuk lalu lintas volume tinggi. Biasanya memiliki protokol ramah kepemilikan atau non-internet. API Gateway dirancang untuk menerjemahkan antar protokol Internet (SOAP, JSON, XML, HL7) dan menempatkan permintaan pada ESB. Pada dasarnya, Anda BISA menggunakan gateway untuk komunikasi antara layanan internal Anda, yang tidak selalu membuatnya paling cocok.
Michael Brown