Assalamu‘alaikum wr. wb.
Hello guys! Jika kita membangun Jaringan Komputer dan juga membutuhkan Perangkat Lunak, tentunya kita juga membutuhkan yang namanya Sistem Terdistribusi atau Distributed System. Berikut ini adalah Penjelasannya pada Artikel ini.
Sumber Artikel Materi : Geeksforgeeks.org, Atlassian.com, Contohapps.com, dan Banuacode.com
Sistem Terdistribusi adalah kumpulan program komputer yang memanfaatkan sumber daya komputasi di beberapa node komputasi terpisah untuk mencapai tujuan bersama yang sama. Sistem terdistribusi bertujuan untuk menghilangkan kemacetan atau titik pusat kegagalan dari suatu sistem.
Apa yang terjadi jika Anda membuat aplikasi sebagai satu unit yang dapat diterapkan yang bekerja dengan cukup baik, tetapi seiring waktu aplikasi bertambah besar dan kompleks? Seringkali menjadi lebih menantang untuk dipertahankan, kecepatan pengembangan melambat, dan risiko kegagalan meningkat. Dalam hal ini, jalur evolusioner adalah agar monolit berevolusi menjadi sistem terdistribusi, biasanya Arsitektur Microservices.
A. Pengertian Sistem Terdistribusi
Sistem Terdistribusi adalah sekelompok Komputer Otonom yang dihubungkan melalui jaringan dengan perangkat lunak yang didesain untuk memberikan fasilitas komputer terpadu yang dipersepsikan oleh pengguna sebagai satu entitas komputer tunggal.
Sifat paling krusial dalam sistem yang didistribusikan adalah adanya variasi komputer serta metode komunikasi yang beragam, yang secara tak terlihat oleh pengguna. Ciri lainnya termasuk fakta bahwa dalam sistem yang didistribusikan, pengguna dan aplikasi mampu berinteraksi secara konsisten dengan tampilan yang seragam, tanpa memandang kapan atau di mana mereka mengaksesnya. Aplikasi mampu berjalan bersamaan pada berbagai prosesor yang berbeda. Ada juga atribut lainnya, yakni akses ke perangkat keras atau perangkat lunak bisa terjadi bersamaan. Meskipun hal ini mampu menyulitkan dalam hal mengkoordinasikan semua elemen yang terlibat.
B. Ciri-ciri Sistem Terdistribusi
Sistem Terdistribusi mengacu pada jaringan komputer atau perangkat yang saling terhubung dan bekerja bersama untuk mencapai tujuan bersama. Dalam sistem terdistribusi, komputer individu ini, juga dikenal sebagai node atau prosesor, berkomunikasi dan berkolaborasi untuk menjalankan tugas yang umumnya terlalu kompleks atau memerlukan sumber daya yang terlalu besar bagi satu mesin untuk menanganinya.
Karakteristik utama dari sistem terdistribusi meliputi :
1. Konkurensi (Concurrency)
Beberapa node dapat bekerja secara bersamaan pada bagian yang berbeda dari sebuah tugas, memungkinkan penggunaan sumber daya yang lebih baik dan eksekusi yang lebih cepat.
2. Tidak Ada Jam Pusat atau Memori Bersama
Tidak seperti sistem tunggal yang lebih tradisional, sistem terdistribusi seringkali tidak memiliki jam pusat atau memori bersama. Ini dapat membuat sinkronisasi dan komunikasi antar node menjadi lebih menantang.
3. Heterogenitas
Node dalam sistem terdistribusi dapat memiliki perangkat keras, sistem operasi, dan platform perangkat lunak yang berbeda. Ini dapat menyebabkan tantangan kompatibilitas dan interoperabilitas.
4. Skalabilitas (Scalability)
Sistem terdistribusi dapat dirancang untuk ditingkatkan secara horizontal, artinya node tambahan dapat ditambahkan untuk menangani beban atau permintaan yang meningkat.
5. Ketahanan Kesalahan
Sistem terdistribusi sering dirancang untuk tahan terhadap kegagalan node atau masalah jaringan. Redundansi dan replikasi adalah teknik umum yang digunakan untuk mencapai ketahanan kesalahan.
6. Desentralisasi
Berbeda dengan sistem terpusat di mana semua keputusan dibuat oleh satu entitas, sistem terdistribusi dapat beroperasi dengan tingkat otonomi tertentu di setiap node.
7. Komunikasi
Komunikasi antara node merupakan aspek penting dalam sistem terdistribusi. Pesan dan data pertukaran antar node menggunakan berbagai protokol komunikasi.
C. Tujuan dan Manfaat Sistem Terdistribusi
Tujuan utama dari sistem terdistribusi adalah mengatasi berbagai tantangan dan memanfaatkan kelebihan dalam lingkungan yang terdiri dari beberapa komputer atau perangkat terhubung. Berikut adalah beberapa tujuan dan manfaat utama dari sistem terdistribusi:
1. Kinerja yang Lebih Baik
Dengan memanfaatkan sumber daya dari beberapa mesin, sistem terdistribusi dapat mencapai kinerja yang lebih baik dalam menangani tugas-tugas yang membutuhkan komputasi atau pemrosesan yang intensif.
2. Skalabilitas (Scallability)
Sistem terdistribusi dirancang agar dapat ditingkatkan secara horizontal dengan menambahkan lebih banyak node jika diperlukan. Ini memungkinkan sistem untuk menangani lonjakan lalu lintas atau permintaan tanpa mengalami penurunan kinerja.
3. Ketersediaan dan Ketahanan Kesalahan
Dengan mendistribusikan data dan tugas di antara berbagai node, sistem terdistribusi dapat menjadi lebih tahan terhadap kegagalan hardware atau jaringan. Redundansi dan replikasi data dapat memastikan ketersediaan data yang tinggi.
4. Pemanfaatan Sumber Daya yang Lebih Baik
Sistem terdistribusi memungkinkan untuk optimalisasi penggunaan sumber daya. Sebagai contoh, jika satu node memiliki sumber daya yang sedang tidak digunakan, tugas dapat dialihkan ke node tersebut untuk pemanfaatan yang lebih baik.
5. Efisiensi Biaya
Dalam banyak kasus, menggunakan beberapa mesin dengan spesifikasi yang lebih rendah dan biaya lebih rendah dapat lebih efisien daripada menggunakan satu mesin dengan spesifikasi tinggi.
6. Pemrosesan Data Skala Besar
Sistem terdistribusi memungkinkan pemrosesan data skala besar seperti analisis big data dan pemodelan kompleks dengan memanfaatkan paralelisme dan distribusi.
7. Akses Terdistribusi
Sistem terdistribusi memungkinkan akses dan berbagi informasi dari berbagai lokasi geografis, memungkinkan kolaborasi global dan layanan jarak jauh.
8. Pengembangan Berbasis Layanan (Service-Oriented Architecture)
Sistem terdistribusi memungkinkan pengembangan berbasis layanan, di mana fungsi-fungsi yang berbeda dapat dikembangkan secara independen dan disusun menjadi aplikasi yang lebih besar.
Namun, walaupun memiliki banyak manfaat, mengimplementasikan dan mengelola sistem terdistribusi juga memiliki tantangan, seperti masalah sinkronisasi data, masalah konsistensi, kompleksitas manajemen, dan debugging yang lebih rumit.
D. Kelebihan dan Kekurangan Sistem Terdistribusi
Kelebihan Sistem Terdistribusi :
- Aplikasi dalam Sistem Terdistribusi adalah Aplikasi yang Secara Alami Terdistribusi.
- Informasi dalam Sistem Terdistribusi dibagi di antara pengguna yang terdistribusi secara geografis.
- Berbagi Sumber Daya (Sistem otonom dapat berbagi sumber daya dari lokasi jauh).
- Memiliki rasio harga kinerja yang lebih baik dan fleksibilitas.
- Memiliki waktu respons yang lebih singkat dan throughput yang lebih tinggi.
- Memiliki kehandalan dan ketersediaan yang lebih tinggi terhadap kegagalan komponen.
- Memiliki kemampuan perluasan sehingga sistem dapat diperluas ke lokasi yang lebih jauh dan juga pertumbuhan bertahap.
Kekurangan Sistem Terdistribusi :
- Perangkat Lunak yang Relevan untuk sistem Terdistribusi saat ini tidak ada.
- Keamanan menimbulkan masalah karena akses mudah ke data karena sumber daya dibagi ke beberapa sistem.
- Kegelapan Jaringan dapat menyebabkan hambatan dalam transfer data, yaitu jika ada keterlambatan dalam jaringan maka pengguna akan menghadapi masalah dalam mengakses data.
- Dalam perbandingan dengan sistem pengguna tunggal, basis data yang terkait dengan sistem terdistribusi jauh lebih kompleks dan menantang untuk dikelola.
- Jika setiap node dalam sistem terdistribusi mencoba mengirim data sekaligus, jaringan dapat menjadi terlalu terbebani.
E. Arsitektur pada Sistem Terdistribusi
Ada banyak jenis sistem terdistribusi. Yang paling umum adalah sebagai berikut:
1. Client-Server
Arsitektur klien-server dibagi menjadi dua tanggung jawab utama. Klien bertanggung jawab atas presentasi antarmuka pengguna, yang kemudian terhubung melalui jaringan ke server. Server bertanggung jawab atas penanganan logika bisnis dan pengelolaan status. Arsitektur klien-server dapat dengan mudah berdegradasi menjadi arsitektur terpusat jika server tidak dibuat redundan. Pengaturan klien-server yang benar-benar terdistribusi akan memiliki beberapa node server untuk mendistribusikan koneksi klien. Sebagian besar arsitektur klien-server modern adalah klien yang terhubung ke sistem terdistribusi yang terenkapsulasi di server.
2. Multi-Tier
Arsitektur multi-tier memperluas arsitektur klien-server. Server dalam arsitektur multi-tier didekomposisi menjadi node lebih rinci, yang memisahkan tanggung jawab server backend tambahan seperti pemrosesan data dan pengelolaan data. Node-node tambahan ini digunakan untuk memproses pekerjaan yang berjalan lama secara asinkron dan membebaskan node backend yang tersisa untuk fokus merespons permintaan klien dan berinteraksi dengan penyimpanan data.
3. Peer-to-Peer
Dalam sistem terdistribusi peer-to-peer, setiap node berisi instansi lengkap dari aplikasi. Tidak ada pemisahan node dari presentasi dan pemrosesan data. Sebuah node berisi lapisan presentasi dan lapisan penanganan data. Node-peer dapat mengandung seluruh data status dari seluruh sistem.
Sistem peer-to-peer memiliki keuntungan redundansi ekstrem. Ketika sebuah node peer-to-peer diinisialisasi dan dibawa online, ia menemukan dan terhubung ke peer lain dan menyinkronkan status lokalnya dengan status dari sistem yang lebih besar. Fitur ini berarti kegagalan satu node dalam sistem peer-to-peer tidak akan mengganggu node lainnya. Ini juga berarti bahwa sistem peer-to-peer akan terus berlanjut.
4. Service-oriented Architecture (SOA)
Arsitektur berbasis layanan (SOA) adalah pendahulu dari mikro layanan. Perbedaan utama antara SOA dan mikro layanan adalah cakupan node – cakupan node mikro layanan ada pada tingkat fitur. Dalam mikro layanan, sebuah node mengenkapsulasi logika bisnis untuk menangani set fitur tertentu, seperti pemrosesan pembayaran. Mikro layanan mengandung banyak node logika bisnis yang berbeda yang berinteraksi dengan node database independen. Secara perbandingan, node SOA mengenkapsulasi seluruh aplikasi atau divisi perusahaan. Batas layanan untuk node SOA biasanya mencakup seluruh sistem database dalam node.
Mikro layanan telah muncul sebagai alternatif yang lebih populer daripada SOA karena manfaatnya. Mikro layanan lebih dapat disusun ulang, memungkinkan tim untuk menggunakan kembali fungsionalitas yang disediakan oleh node layanan kecil. Mikro layanan lebih tangguh dan memungkinkan penyesuaian skala vertikal dan horizontal yang lebih dinamis.
Kasus penggunaan Sistem Terdistribusi
Banyak aplikasi modern menggunakan sistem terdistribusi. Aplikasi web dan seluler dengan lalu lintas tinggi adalah contoh sistem terdistribusi. Pengguna terhubung dengan cara klien-server, di mana klien adalah peramban web atau aplikasi seluler. Server kemudian menjadi sistem terdistribusi sendiri. Server web modern mengikuti pola sistem multi-tier. Pengimbang beban digunakan untuk mendistribusikan permintaan ke banyak node logika server yang berkomunikasi melalui Sistem Antrean Pesan.
Kubernetes adalah alat populer untuk sistem terdistribusi, karena dapat membuat sistem terdistribusi dari kumpulan kontainer. Kontainer menciptakan node sistem terdistribusi, dan kemudian Kubernetes mengatur komunikasi jaringan antara node-node tersebut dan juga menangani penyesuaian skala vertikal dan horizontal yang dinamis pada node-node dalam sistem.
Contoh lain dari sistem terdistribusi adalah Mata Uang Kripto (Cryptocurrency) seperti Bitcoin dan Ethereum, yang merupakan sistem terdistribusi peer-to-peer. Setiap node dalam jaringan Cryptocurrency adalah replikasi lengkap dari riwayat lengkap buku besar mata uang. Ketika sebuah node mata uang dinyalakan, ia memulai dengan terhubung ke node lain dan mengunduh salinannya dari buku besar. Selain itu, Mata Uang Kripto memiliki klien atau "dompet" yang terhubung ke node buku besar melalui protokol JSON RPC.
F. Penerapan Sistem Terdistribusi
Sistem terdistribusi memiliki berbagai penerapan dalam berbagai bidang. Berikut beberapa contoh penerapan utama dari sistem terdistribusi:
1. Cloud Computing
Layanan komputasi awan seperti Amazon Web Services (AWS), Microsoft Azure, dan Google Cloud Platform (GCP) merupakan contoh kuat dari sistem terdistribusi. Mereka mengelola dan menyediakan sumber daya komputasi, penyimpanan, dan layanan lainnya melalui jaringan global.
2. Jaringan Sosial dan Media Sosial
Platform media sosial seperti Facebook, Twitter, dan Instagram menggunakan sistem terdistribusi untuk menyediakan layanan yang cepat dan skalabel kepada jutaan pengguna di seluruh dunia.
3. Jaringan Pengiriman Konten (CDN)
Sistem terdistribusi digunakan dalam Content Delivery Networks (CDN) seperti Cloudflare atau Akamai untuk mendistribusikan konten web (gambar, video, halaman web) secara efisien ke server di seluruh dunia, meningkatkan kecepatan akses dan pengalaman pengguna.
4. Basis Data Terdistribusi (Distributed Database)
Basis data terdistribusi seperti Apache Cassandra atau MongoDB memungkinkan penyimpanan dan pengambilan data yang skalabel dan tahan terhadap kegagalan.
5. Sistem Manajemen Antrean
Sistem antrean seperti Apache Kafka digunakan untuk mengumpulkan, menyimpan, dan mendistribusikan aliran data dalam skala besar.
6. Permainan Online Multi-Pemain (Online Multiplayer Games)
Permainan online yang memungkinkan pemain berinteraksi dalam waktu nyata memanfaatkan sistem terdistribusi untuk mengelola pergerakan, interaksi, dan sinkronisasi data di antara semua pemain.
7. Pemrosesan Big Data
Framework seperti Apache Hadoop dan Apache Spark memungkinkan pemrosesan data besar yang terdistribusi di beberapa node komputer untuk analisis dan pemodelan.
8. IoT (Internet of Things)
Sistem terdistribusi digunakan dalam ekosistem IoT untuk mengelola dan menganalisis data yang dikumpulkan dari banyak perangkat sensor dan perangkat terhubung.
9. Pemrosesan Transaksi Perbankan dan Keuangan
Sistem perbankan dan keuangan menggunakan sistem terdistribusi untuk memproses transaksi dengan cepat dan aman.
10. Jaringan Peer-to-Peer
Teknologi P2P seperti BitTorrent memungkinkan berbagi dan mendownload berkas secara terdistribusi langsung antara pengguna.
11. Kontrol Industri dan Otomasi
Sistem terdistribusi digunakan dalam industri untuk mengendalikan dan mengelola proses otomatisasi di pabrik dan fasilitas industri.
12. Sistem Kesehatan Digital
Aplikasi kesehatan digital dan rekam medis elektronik menggunakan sistem terdistribusi untuk mengelola informasi kesehatan dan memastikan akses yang aman dan terkontrol.
Itulah Penjelasan tentang Sistem Terdistribusi. Mohon maaf apabila ada kesalahan sedikitpun.
Terima Kasih 😄😘👌👍 :)
Wassalamu‘alaikum wr. wb.