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

Web Programming : Pengertian,fungsi,Contoh Aplikasi

  PENGERTIAN PEMROGRAMAN WEB Pemrograman web diambil dari 2 suku kata yaitu pemrograman dan web. Pemrograman yang dalam bahasa English adalah programming dan diartikan proses, cara, perbuatan program. Definisi Web : jaringan komputer yang terdiri dari kumpulan situs internet yang menawarkan teks dan grafik dan suara dan sumber daya animasi melalui protokol transfer hypertext. Orang banyak mengenal web dengan istilah WWW (world wide web), World Wide Web adalah layanan internet yang paling populer saat ini internet mulai dikenal dan digunakan secara luas setelah adanya layanan WWW . WWW adalah halaman-halaman website yang dapat saling terkoneksi satu dengan lainnya (hyperlink) yang membentuk samudra belantara informasi . Contoh - contoh aplikasi pemograman web :  1. Notepad ++  Notepad++ adalah sebuah penyunting teks dan penyunting kode sumber yang berjalan di sistem operasi Windows. Notepad++ menggunakan komponen Scintilla untuk dapat menampilkan dan menyuntingan teks dan berkas kode su

Perkembangan Teknologi Komputer Tahun 2010

Perkembangan teknologi semakin hari semakin berkembang secara pesat, termasuk kemajuan teknologi di bidang komputer. saat ini komputer semakin canggih dan berkualitas mulai dari bentuk yang lebih fleksibel dan mewah. Dalam post kali ini saya akan membahas perkembangan teknologi komputer dari tahun 2010 sampai saat ini. Pekembangan teknologi komputer pada tahun 2010 Beberapa teknologi komputer yang rilis pada tahun 2010, yaitu: Packard Bell iXtre 0i me 414    salah satu PC komputer yang telah menggunakan Pentium-4 sebagai processor dengan kecepatan 1.4 GHz, memory RDRAM 128 MB, Harddisk sebesar 40 GB (1.5 GB digunakan untuk recovery), serta video card GeForce2 MX dengan memory 32 MB. HP Pavilion 9850 juga merupakan PC yang menggunakan Pentium-4 untuk processor nya dengan kecepatan 1.4 GHz. PC Pentium-4 Hewllett-Packard ini dating dengan dominan warna hitam dan abu-abu. Dibanding dengan PC lainnya, Pavilion merupakan PC Pentium-4 dengan fasilitas terlengkap. Memory yang dimiliki sebesar

kegunaan Internet Of Thing (IOT) dalam kehidupan sehari-hari

  Kehadiran internet beberapa dekade yang lalu benar-benar telah merevolusi cara kerja dunia dengan begitu cepat. Era baru sudah di ambang pintu, yaitu era IoT (Internet of Things) . Secara umum, IoT mendukung semua orang agar memiliki kesadaran yang tinggi terhadap dunia kita dan perkembangannya. Seperti yang disampaikan oleh Brendan O’Brien, IoT memberikan kita banyak gagasan untuk turut berperan serta dalam berbagai segi perkembangan mulai dari hal mikro hingga makro di seluruh dunia. Dengan begitu, IoT (Internet of Things) memiliki peran sangat penting penting saat ini. Berikut 5 implementasi IoT Internet of Things dalam kehidupan sehari-hari. 1. Smart Garage Door Seperti namanya, sistem bernama Smart Garage Door merupakan sistem IoT yang dapat memonitor status pintu garasi sekaligus membukanya dengan fitur scanner sidik jari. Apabila menerapkan sistem ini, Anda bisa memonitor garasi dimanapun berada melalui ponsel. Untuk akses pembukanya juga akan lebih aman karena harus melalui s