Langsung ke konten utama

Apa itu Microservices?

Sebelum kita membahas lebih dalam, kita harus merujuk ke teori prinsip-prinsip dasar untuk memudahkan kita dalam mendalami dan tidak melenceng terlalu jauh. Untuk sejarahnya sendiri kita bisa baca di salah satu referensi ini. Berikut arti dari MS menurut para ahli dan platform yang sudah menerapkan. Apa kata mereka tentang MS?

Amazon (AWS)

  • Service kecil yang terlepas, berkomunikasi melalui API yang terdefinisi dengan baik.
  • Lebih mudah untuk diskalakan dan lebih cepat untuk dikembangkan.
  • Mengaktifkan inovasi.
  • Mempersingkat waktu memasarkan fitur baru.

Sumber

Azure

  • Kecil, mandiri, dan terlepas satu sama lain.
  • Setiap service memiliki basis kode yang terpisah.
  • Service dapat digunakan secara mandiri.
  • Service bertanggung jawab untuk mempertahankan data mereka sendiri atau yg menjadi eksternal state.
  • Service berkomunikasi satu sama lain dengan penerapan API yang terdefinisi dengan baik. 
  • Mendukung bahasa pemrograman yang beragam.

Sumber

Chris Richardson

  • Sangat mungkin dipelihara dan diuji.
  • Terlepas satu sama lain.
  • Dapat diterapkan secara mandiri.
  • Diatur sesuai kemampuan bisnis.
  • Dimiliki oleh tim kecil.

Sumber

Pemaparan diatas bisa menjadi bagian dari prinsip-prinsip dasar akan kita gunakan untuk materi selanjutnya. Bila kita coba rangkum dari defenisi diatas maka ada satu kalimat yang kompak disebutkan service kecil yang mandiri. Dan tentunya semua poin itu bisa gunakan sebagai referensi untuk lebih fokus dalam mempelajari MS.

Gambaran secara umum sederhananya seperti gambar dibawah hanya ada 3 layer, yaitu API gateway yang merupakan ciri khas microservices dan beberapa service yang terpisah sesuai dengan divisi atau fungsi kerja, dan setiap service memiliki database yang terpisah.



Pantau terus blog ini, dan silahkan berkomentar atau berdiskusi.

Salam.

Image by piscine26 on Freepik

Komentar

Postingan populer dari blog ini

CI/CD dengan Gitlab

Sebelum memulai CI/CD, kita harus mempersiapkan shell untuk mengeksekusi proses di Gitlab dengan catatan saya menggunakan Ubuntu 20.04LTS. Melakukan dengan cara shell  atau command dengan script, tujuannya adalah untuk mempermudah untuk mengeksekusi dan dokumentasi. Namun kembali lagi untuk setuap operator. Berikut yang perlu dilakukan: Gitlab Runner Download $ curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner-helper-images.deb" curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner_amd64.deb" Preparation in Gitlab Go to Project Repository > CI/CD Settings > Register runner Dari konfigurasi ini yang akan digunakan untuk registrasi Install $ sudo dpkg -i gitlab-runner-helper-images.deb gitlab-runner_ amd64 .deb Cek Versi $ sudo gitlab-runner -version Cek Status $ sudo gitlab-runner status Ubah Configurasi $ sudo visudo Tambahkan: gitlab-runner ALL=( ALL: AL...

Kubernetes & Docker

Langkah-langkah Setup Minikube + Kubernetes 1. Install Tools Dasar Pastikan sudah install: Docker Kubectl Minikube Kubeadm (opsional, untuk manual cluster setup) 👉 Cek versinya: docker --version kubectl version --client kubeadm version minikube version 2. Konfigurasi Docker Supaya tidak perlu sudo tiap kali pakai docker: # Buat group docker (jika belum ada) sudo groupadd docker # Tambahkan user ke group docker sudo usermod -aG docker $USER ➡️ Logout & login ulang agar efektif. Coba tes: docker run hello-world 3. Aktifkan Service Docker & Containerd Supaya otomatis jalan saat boot: sudo systemctl enable docker.service sudo systemctl enable containerd.service Lalu start: sudo systemctl start docker.service sudo systemctl start containerd.service 4. Bersihkan Minikube Lama (opsional) Jika sebelumnya pernah setup Minikube: minikube delete --all 5. Jalankan Minikube Ada dua opsi: Driver Docker (disarankan): minikube start --driver=docker Default Driver : m...

Kubernetes

Kubernetes Untuk membuka web dari public antar host dengan mengatur konfigurasi berikut terlebih dahulu: Go to your virtual machine > settings > network > NAT > advanced > port-forwarding Add a new rule: host IP = 27.0.0.1 host port = any free one, e.g. I used 8000 guest IP = can be left empty guest port = 8001 (where proxy is listening to) Menggunakan Oracle VirtualBox. Berikut perintah-perintah yang digunakan untuk menjalankan dan menampilan Dashboard Kubernetes: $ minikube start $ minikube dashboard $ sudo netstat -tlpn $ kubectl proxy --address='0.0.0.0' &