Langsung ke konten utama

Micro Service : Pengertian,fungsi,Contoh Aplikasi

 Introduction to Microservices - Comunytek

Pengertian Microservices

Microservices berarti membagi aplikasi menjadi layanan yang lebih kecil dan saling terhubung tidak seperti aplikasi monolitik.

Setiap microservice merupakan aplikasi kecil yang memiliki arsitektur heksagonal sendiri yang terdiri dari logika beserta berbagai adapternya. Baca Juga: Apa itu Analisis SWOT?

Pola arsitektur Microservice secara signifikan memengaruhi hubungan antara aplikasi dan database. Di dalam microservice, masing-masing services memiliki skema database tersendiri. Selain itu, services dapat menggunakan jenis database dan bahasa pemrograman yang paling sesuai dengan kebutuhannya.

Di satu sisi, pendekatan ini bertentangan dengan gagasan model data enterprise-wide. Selain itu, sering kali menghasilkan duplikasi beberapa data. Namun, memiliki skema database per service sangat penting jika ingin mendapatkan keuntungan dari layanan microservice.


Intinya microservice adalah metode dengan membagi service ke bagian yang lebih kecil dimana service-service tersebut saling berhungan satu sama lain. Selain itu, dalam setiap services yang dibuat bisa menggunakan teknologi yang berbebeda.


Karakteristik Microservices

Aplikasi scalable, secure dan reliable

Setiap layanan memiliki infrastruktur sendiri.

Karena setiap layanan memiliki infrastruktur sendiri, bisa dengan mudah membuat aplikasi tanpa memikirkan hubungan atau ketergantungan module dengan layanan yang lain.

Ada kemungkinan komunikasi antarmodule mengalami kegagalan. Untuk itu pengguna harus selalu mempersiapkan cara handlenya.

Proses update aplikasi hanya melingkupi layanan yang terkait.

Codenya berbasis layanan.

Proses Scalingnya bisa menggunakan beberapa metode, scaling up dan scaling side.

Kelebihan Microservice

Berdasarkan pengertian tentang microservice yang sudah kita baca di atas, dapat kita simpulkan bahwa microservice memiliki kelebihan sebagai berikut:

  • Aplikasi scalabale, secure dan reliable.
  • Setiap service berdiri sendiri.
  • Maintence-nya lebih mudah.
  • Tidak ada hambatan dalam menggunakan teknologi baru.
  • Setiap tim developer dapat mengembangkan setiap services=-nya tanpa ada mengganggu services yang lain.

Kekurangan Microservice

  • Selain memiliki banyak kelebihan, tentu microservice juga memiliki beberapa kekurangan, di antaranya adalah:
  • Ketika satu entity pada database berubah maka setiap entity yang sama di setiap database service harus diubah
  • Untuk beberapa kasus , sulit untuk menerapkan perubahan services, maka dari itu diperlukan perancangan yang matang.
  • Deployment yang kompleks, perlu konfigurasi untuk menjalankan setiap services karena memiliki runtime yang berbeda, tidak seperti aplikasi monolitik yang memiliki sistem tinggal upload , deploy dan beres.
  • Perlu automation yang tinggi dalam melakukan deployment.
Dengan pemisahan aplikasi berdasarkan fungsi-nya ini, pada akhirnya kita akan menemui keragaman teknologi dalam sebuah satu layanan digital. Misalkan dari layanan blog yang telah dicontohkan diatas, kita bisa coba pecahkan aplikasi blog tersebut menjadi fungsi konten, user management, komentar, rangking, search dan lainnya.

Pada bagian fungsi konten mungkin kita menggunakan PHP dan mysql, tetapi pada komentar kita menggunakan Python dan Mongodb, sedangkan di search menggunakan nodejs dan elasticsearch untuk penyimpanan datanya. Disini terlihat bahwa setiap fungsi / permasalahan teknis dapat diselesaikan dengan cara dan teknologi yang berbeda-beda.

Dalam konsep microservices, kita tidak hanya melalukan pemisahan di level aplikasi saja, tetapi dari sisi infrastruktur pula. Kita akan menemukan keragaman arsitektur infra, konfigurasi dan optimalisasi sistem yang berbeda, dan sering pula ditemukan jumlah dan spesifikasi server yang tidak sama antara service yang satu dengan yang lain.


Load Balancer Layer 7
Kita dapat menggunakan Load balancer yang mendukung balancing di layer 7 untuk melakukan tugas ini. Di layer 7 ini load balancer tidak hanya akan membagi traffic saja tetapi dia mampu membaca isi paket (terutama HTTP/S) agar dapat membagi load berdasarkan pola URL.

Untuk implementasi microservices yang baik paling tidak kita harus menggunakan dua layer dari load balancer. Yang pertama berfungsi membagi traffic berdasarkan URL, dan yang kedua berguna untuk membagi traffic berdasarkan load server. Apabila digambarkan maka implementasi microservices akan memiliki desain infrastrukturnya akan seperti gambar dibawah ini

Dengan arsitektur yang seperti ini akan memudahkan tim infrastruktur untuk melakukan scaling. Selain mudah, proses scaling akan lebih efektif karena scaling hanya dilakukan pada cluster yang membutuhkannya saja. Salah satu kelebihan lainnya yakni dari sisi security lebih baik karena semua teknologi dan arsitektur dibelakangnya tidak akan terekspos dari dunia luar.

Komentar

Postingan populer dari blog ini

Etika Penggunaan Teknologi Informasi & Komunikasi

  Pengertian Etika dalam Penggunaan Teknologi Informasi dan Komunikasi A. Pengertian Etika Dalam penggunaan TIK           Etika (ethiq) bermakna sekumpulan azas atau nilai yang berkenaan dengan akhlak, tata cara (adat, sopan santun) nilai mengenai benar dan salah tentang hak dan kewajiban yang dianut oleh suatu golongan atau masyarakat. Sedangkan TIK dalam konteks yang lebih luas, mencakup semua aspek yang berhubungan dengan mesin (komputer dan telekomunikasi dan teknik yang digunakan untuk menangkap (mengumpul), menyimpan, memanipulasi, menghantar dan menampilkan suatu bentuk informasi. Untuk menerapkan etika TIK, maka diperlukan terlebih dahulu mengenal dan memaknai prinsip yang terkandung di dalam TIK diantaranya adalah:  1. Tujuan teknologi informasi : memberikan bantuan kepada manusia untuk menyelesaikan masalah, menghasilkan kreativitas, untuk membuat manusia lebih bermakna jika tanpa menggunakan teknologi informasi dalam aktivitasnya. ...

Database : Pengertian,fungsi,contoh aplikasi

  Pengertian Database Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Database adalah representasi kumpulan fakta yang saling berhubungan disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. Database merupakan sekumpulan informasi yang saling berkaitan pada suatu subjek tertentu pada tujuan tertentu pula. Database adalah susunan record data operasional lengkap dari suatu organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi dengan menggunakan metode tertentu dalam komputer sehingga mampu memenuhi informasi yang optimal yang dibutuhkan oleh para pengguna. Database ( basis data ) atau dengan sebutan pangkalan data ialah suatu kumpulan sebuah informasi yang disimpan didalam sebuah perangkat komputer secara sistematik sehingga dapat diperiksa...

Pentingnya Big Data dalam Kehidupan Sehari-hari

  Big Data adalah istilah umum untuk segala himpunan data (data set) dalam jumlah yang sangat besar, rumit dan tak terstruktur sehingga menjadikannya sukar ditangani apabila hanya menggunakan perkakas manajemen basis data biasa atau aplikasi pemroses data tradisional belaka. Big Data masih terbilang baru dan sering disebut sebagai tindakan pengumpulan dan penyimpanan informasi yang besar untuk analisis. Dalam kehidupan sehari-hari, kita sudah bisa melihat sebuah big data yang dapat digunakan oleh perusahaan-perusahaan untuk menganalisis data tersebut. Berikut ini adalah contoh pemanfaatan big data yang bisa digunakan dalam berbagai bidang : 1. Perusahaan ritel dapat menggunakan informasi dari social media seperti Facebook, Twitter, Google+ untuk menganalisis bagaimana perilaku, persepsi pelanggan terhadap suatu produk atau brand dari perusahan. 2. Perusahan manufaktur dapat memantau kondisi peralatan setiap saat (real-time), sehingga dapat memperkirakan waktu terbaik untuk menggant...