SOA versus layanan mikro: Apa perbedaannya?

Pemandangan udara lampu di malam hari di atas Eropa

Dalam artikel ini, kami menjelaskan dasar-dasar arsitektur berorientasi layanan (SOA) dan layanan mikro, menyinggung perbedaan utama keduanya, dan melihat pendekatan mana yang terbaik untuk situasi Anda.

Jika Anda bekerja di bidang TI atau komputasi cloud, Anda mungkin tahu tentang perdebatan arsitektur berorientasi layanan (SOA) versus layanan mikro. Lagi pula, semua orang berbicara tentang layanan mikro dan aplikasi tangkas akhir-akhir ini.

Sekilas, kedua pendekatan itu terdengar mirip, dan dalam beberapa hal, memang demikian. Keduanya melibatkan lingkungan cloud atau hybrid cloud untuk pengembangan dan penerapan aplikasi tangkas, dan keduanya dapat ditingkatkan untuk memenuhi kecepatan dan tuntutan operasional big data. Keduanya memecah aplikasi besar dan kompleks menjadi komponen kecil dan fleksibel yang lebih mudah dikerjakan. Dan keduanya berbeda dari arsitektur monolitik tradisional karena setiap layanan memiliki tanggung jawabnya sendiri.

Namun, bahkan dengan kesamaan utama ini, pemeriksaan lebih dekat dari kedua pendekatan tersebut mengungkapkan perbedaan penting.

Berita teknologi terbaru, didukung oleh insight dari pakar

Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.

Apa yang dimaksud dengan arsitektur berorientasi layanan (SOA)?

Arsitektur berorientasi layanan (SOA) adalah pendekatan di seluruh perusahaan untuk pengembangan perangkat lunak komponen aplikasi yang manfaatkan komponen perangkat lunak yang dapat digunakan kembali, atau layanan. Dalam arsitektur perangkat lunak SOA, setiap layanan terdiri dari kode dan integrasi data yang diperlukan untuk menjalankan fungsi bisnis tertentu - misalnya, memeriksa kredit pelanggan, masuk ke situs web, atau memproses aplikasi hipotek.

Antarmuka layanan menyediakan ketergantungan minimal, yang berarti bahwa mereka dapat dipanggil dengan sedikit atau tanpa pengetahuan tentang bagaimana integrasi diimplementasikan di bawahnya. Karena ketergantungan minimal ini dan cara layanan dipublikasikan, tim pengembangan dapat menghemat waktu dengan menggunakan kembali komponen dalam aplikasi lain di seluruh perusahaan. Ini adalah manfaat dan risiko. Sebagai hasil dari akses bersama ke bus layanan perusahaan (ESB), jika muncul masalah, hal ini juga dapat memengaruhi layanan lain yang terhubung.

Data XML adalah bahan utama untuk solusi yang didasarkan pada arsitektur SOA. Aplikasi SOA berbasis XML dapat digunakan untuk membangun layanan web, misalnya.

SOA muncul pada akhir 1990-an dan merupakan tahap penting dalam perkembangan pengembangan aplikasi dan integrasi. Sebelum SOA menjadi pilihan, menghubungkan aplikasi monolitik ke data atau fungsi dalam sistem lain memerlukan integrasi antara titik yang kompleks yang harus dibuat ulang oleh pengembang untuk setiap proyek pengembangan baru. Mengekspos fungsi-fungsi tersebut melalui SOA menghilangkan kebutuhan untuk menciptakan kembali integrasi mendalam setiap saat.

SOA menyediakan empat jenis layanan yang berbeda:

  1. Layanan fungsional (yaitu, layanan bisnis), yang sangat penting untuk aplikasi bisnis.
  2. Layanan perusahaan, yang berfungsi untuk mengimplementasikan berbagai fungsi.
  3. Layanan aplikasi yang digunakan untuk mengembangkan dan menerapkan aplikasi.
  4. Layanan infrastruktur yang sangat penting untuk proses backend seperti keamanan dan autentikasi.

Setiap layanan terdiri dari tiga komponen:

  1. Antarmuka yang mendefinisikan bagaimana penyedia layanan mengeksekusi permintaan dari konsumen layanan.
  2. Kontrak yang mendefinisikan bagaimana penyedia layanan dan konsumen layanan harus berinteraksi.
  3. Implementasi yang merupakan kode layanan.

Layanan SOA dapat digabungkan untuk membuat layanan dan aplikasi tingkat yang lebih tinggi.

Pengembangan Aplikasi

Bergabunglah: Pengembangan aplikasi Enterprise di cloud

Dalam video ini, Dr. Peter Haumer membahas seperti apa pengembangan aplikasi perusahaan modern saat ini di hybrid cloud dengan menunjukkan berbagai komponen dan praktiknya, termasuk IBM Z Open Editor, IBM Wazi, dan Zowe. 

Apa yang dimaksud dengan layanan mikro?

Seperti SOA, arsitektur layanan mikro terdiri dari komponen dengan ketergantungan minimal, dapat digunakan kembali, dan khusus yang sering kali bekerja secara independen satu sama lain. Layanan mikro juga menggunakan tingkat kohesi yang tinggi atau dikenal sebagai konteks terbatas. Konteks terbatas mengacu pada hubungan antara komponen dan datanya sebagai entitas atau unit yang berdiri sendiri dengan sedikit dependensi. Alih-alih diadopsi di seluruh perusahaan, layanan mikro biasanya berkomunikasi melalui antarmuka pemrograman aplikasi (API) untuk membangun aplikasi yang melakukan fungsionalitas bisnis tertentu. Pendekatan ini membuat mereka lebih tangkas, dapat diskalakan, dan tangguh, terutama untuk bidang bisnis tertentu. Biasanya, Java adalah bahasa pemrograman pilihan untuk mengembangkan Layanan Mikro. Bahasa pemrograman lain juga dapat digunakan, seperti Golang dan Python.

Layanan mikro adalah pendekatan arsitektur cloud native sejati, sering beroperasi dalam kontainer, yang membuatnya lebih dapat diskalakan dan portabel untuk pembuatan layanan independen. Tim dapat menggunakan layanan mikro untuk memperbarui kode dengan lebih mudah, menggunakan tumpukan yang berbeda untuk komponen yang berbeda, dan menskalakan komponen secara independen satu sama lain. Pendekatan ini mengurangi pemborosan dan biaya yang terkait dengan keharusan untuk menskalakan aplikasi karena satu fitur mungkin menghadapi terlalu banyak beban. Karena independensi mereka, layanan mikro menghasilkan layanan yang lebih toleran terhadap kesalahan daripada alternatifnya.

Lihat video berikut untuk informasi lebih lanjut tentang arsitektur layanan mikro:

Perbedaan utama antara SOA dan layanan mikro: Ruang Lingkup

Perbedaan utama antara kedua pendekatan ini bermuara pada ruang lingkup. Sederhananya, arsitektur berorientasi layanan (SOA) memiliki ruang lingkup perusahaan, sedangkan arsitektur layanan mikro memiliki ruang lingkup aplikasi.

Dasar-dasar arsitektur berorientasi layanan (SOA) dan layanan mikro

Banyak prinsip inti dari setiap pendekatan menjadi tidak sesuai ketika Anda mengabaikan perbedaan ini. Jika Anda menerima perbedaan dalam ruang lingkup, Anda mungkin dengan cepat menyadari bahwa keduanya berpotensi saling melengkapi, tidak bersaing.

Berikut adalah beberapa contoh penggunaan di mana perbedaan ini berperan:

Penggunaan kembali

Dalam SOA, penggunaan kembali integrasi adalah tujuan utama dan pada tingkat perusahaan mengupayakan penggunaan kembali hingga tingkatan tertentu sangatlah penting. Penggunaan kembali dan berbagi komponen dalam arsitektur SOA meningkatkan skalabilitas dan efisiensi.

Dalam arsitektur mikro, membuat komponen mikro yang digunakan kembali saat waktu proses di seluruh aplikasi menghasilkan dependensi yang mengurangi ketangkasan dan ketahanan. Komponen layanan mikro umumnya lebih suka menggunakan kembali kode dengan menyalin dan menerima duplikasi data untuk membantu meningkatkan ketidakterikatan.

Panggilan sinkron

Layanan yang dapat digunakan kembali dalam SOA tersedia di seluruh perusahaan dengan menggunakan protokol yang sebagian besar bersifat sinkron seperti RESTful API.

Namun, dalam aplikasi layanan mikro, panggilan sinkron memperkenalkan dependensi real-time, yang mengakibatkan hilangnya ketahanan. Ketergantungan ini juga dapat menyebabkan latensi yang berdampak pada kinerja. Dalam aplikasi layanan mikro, pola interaksi berdasarkan komunikasi asinkron lebih disukai, seperti sumber peristiwa, di mana model publikasi/berlangganan digunakan agar komponen layanan mikro tetap mengetahui perubahan yang terjadi pada data di komponen lain.

Duplikasi data

Tujuan yang jelas dari penyediaan layanan dalam SOA adalah agar semua aplikasi dapat memperoleh dan mengubah data secara sinkron langsung pada sumber utamanya, sehingga mengurangi kebutuhan untuk mempertahankan pola sinkronisasi data yang kompleks.

Dalam aplikasi layanan mikro, idealnya, setiap layanan mikro memiliki akses lokal ke semua data yang dibutuhkan untuk memastikan ketidaktergantungannya dari layanan mikro lainnya — dan memang dari aplikasi lain — bahkan jika ini berarti ada beberapa duplikasi data di sistem lain. Tentu saja, duplikasi ini menambah kompleksitas, sehingga harus diimbangi dengan keuntungan dalam ketangkasan dan kinerja, tetapi ini diterima sebagai realitas desain layanan mikro.

Perbedaan utama lainnya antara SOA dan layanan mikro

  • Komunikasi: Dalam arsitektur layanan mikro, setiap layanan dikembangkan secara independen, dengan protokol komunikasinya sendiri. Dengan SOA, setiap layanan harus berbagi mekanisme komunikasi umum yang disebut bus layanan perusahaan (ESB). SOA mengelola dan mengoordinasikan layanan yang disampaikannya melalui ESB. Namun, ESB dapat menjadi titik kegagalan tunggal untuk seluruh perusahaan, dan jika satu layanan melambat, seluruh sistem dapat terpengaruh.
  • Interoperabilitas: Untuk menjaga agar semuanya tetap sederhana, layanan mikro menggunakan protokol pengiriman pesan yang ringan seperti HTTP/REST (Representational State Transfers) dan JMS (Java Messaging Service). SOA lebih terbuka untuk protokol pesan heterogen seperti SOAP (Simple Object Access Protocol), AMQP (Advanced Messaging Queuing Protocol), dan MSMQ (Microsoft Messaging Queuing).
  • Perincian layanan: Arsitektur layanan mikro terdiri dari layanan yang sangat khusus, yang masing-masing dirancang untuk melakukan satu hal dengan sangat baik. Layanan yang membentuk SOA, di sisi lain, dapat berkisar dari layanan kecil dan khusus hingga layanan di seluruh perusahaan.
  • Kecepatan: Dengan menggunakan keuntungan dari berbagi arsitektur yang sama, SOA menyederhanakan pengembangan dan pemecahan masalah. Namun, ini juga cenderung membuat SOA beroperasi lebih lambat daripada arsitektur layanan mikro, yang meminimalkan berbagi demi duplikasi.
  • Tata kelola: Sifat SOA yang melibatkan sumber daya bersama memungkinkan penerapan standar tata kelola data umum di semua layanan. Sifat independen dari layanan mikro tidak memungkinkan tata kelola data yang konsisten. Ini memberikan fleksibilitas yang lebih besar untuk setiap layanan, yang dapat mendorong kolaborasi yang lebih besar di seluruh organisasi.
  • Penyimpanan: SOA dan layanan mikro juga berbeda dalam hal bagaimana sumber daya penyimpanan dialokasikan. Arsitektur SOA biasanya mencakup lapisan penyimpanan data tunggal yang dibagikan oleh semua layanan dalam aplikasi tertentu, sedangkan layanan mikro akan mendedikasikan server atau basis data untuk penyimpanan data untuk layanan apa pun yang membutuhkannya.

Migrasi dari SOA ke layanan mikro

Untuk beberapa organisasi, arsitektur SOA adalah batu loncatan untuk menggantikan monolit, menyediakan lingkungan yang lebih fleksibel dan tangkas. Layanan SOA dapat dikembangkan dan digunakan dalam lingkungan yang luas, tetapi mereka tidak memenuhi kebutuhan spesifik bisnis individu yang ingin menangani proses bisnis dalam lingkup mereka. DevOps dapat digunakan untuk membantu transisi organisasi dari arsitektur SOA ke layanan mikro untuk memenuhi kebutuhan spesifik.

SOA versus layanan mikro: Mana yang terbaik untuk Anda?

Gaya arsitektur memiliki kelebihan, jadi bagaimana Anda bisa menentukan mana yang paling cocok untuk tujuan Anda? Secara umum, itu tergantung pada seberapa besar dan beragam lingkungan aplikasi Anda.

Baik SOA maupun layanan mikro dapat menggunakan otomatisasi untuk mempercepat proses bisnis. Lingkungan yang lebih besar dan lebih beragam cenderung condong ke arah arsitektur berorientasi layanan (SOA) yang mendukung integrasi antara aplikasi heterogen dan protokol pesan melalui bus layanan perusahaan (ESB). Lingkungan yang lebih kecil, termasuk aplikasi web dan aplikasi mobile, tidak memerlukan lapisan komunikasi yang kuat dan lebih mudah dikembangkan dengan menggunakan arsitektur mikro layanan.

Pelajari lebih lanjut tentang SOA dan layanan mikro

Beberapa akan menunjukkan bahwa perdebatan SOA vs layanan mikro jauh lebih rumit, dan itu benar. Ada banyak hal lagi tentang perdebatan ini. Untuk penjelasan teknis yang lebih terperinci tentang perbedaan tipis ini, kami mendorong Anda untuk menyelami artikel Learn Hub tentang SOA dan layanan mikro yang memberikan banyak informasi mendalam. Namun, dari perspektif bisnis, ruang lingkup adalah perbedaan yang sangat penting.

Untuk mempelajari lebih lanjut tentang cara membangun aplikasi yang tangkas, unduh salinan gratis buku elektronik Arsitektur Aplikasi yang Tangkas.

Solusi terkait
IBM Enterprise Application Service for Java

Layanan penyewa tunggal yang dikelola sepenuhnya untuk mengembangkan dan menyediakan aplikasi Java.

Jelajahi Aplikasi Java
Solusi DevOps

Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.

Jelajahi solusi DevOps
Layanan Pengembangan Aplikasi Perusahaan

Pengembangan aplikasi cloud berarti membangun sekali, mengulangi dengan cepat, dan menerapkan di mana saja.

Layanan pengembangan aplikasi
Ambil langkah selanjutnya

Layanan Konsultasi Pengembangan Aplikasi IBM Cloud menawarkan panduan pakar dan solusi inovatif untuk menyederhanakan strategi cloud Anda. Bermitralah dengan para pakar cloud dan pengembangan IBM untuk memodernisasi, menskalakan, dan mempercepat aplikasi Anda, sehingga memberikan hasil yang transformatif bagi bisnis Anda.

Jelajahi layanan pengembangan aplikasi Mulai membangun dengan IBM cloud secara gratis