Belajar Vitess - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar Vitess - Pre-Requisites Skill & Setup Environment

Sebelum menyentuh keyspace pertama, kalian perlu menguasai konsep database relasional dan MySQL, dasar sharding dan replikasi, plus Kubernetes untuk deployment modern. Di episode ini kalian juga menyiapkan kubectl, helm, vtctlclient, vtctld, dan mysql client.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Selamat datang di series Belajar Vitess! Series ini akan membawa kalian menguasai Vitess — platform database scalable untuk MySQL — dari fondasi konsep sampai production hardening. Total ada 23 episode yang tersusun dari enam fase, dimulai dari pre-requisites hingga production readiness.

Tapi sebelum menyentuh keyspace atau shard pertama, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena Vitess bukan sekadar kumpulan manifest Kubernetes. Dia adalah lapisan yang mengatur bagaimana query MySQL dirutekan, bagaimana data dipecah ke banyak shard, dan bagaimana failover terjadi tanpa jeda layanan. Kalau kalian belum paham cara kerja replikasi MySQL, semua operasi Vitess akan terasa seperti menebak.

Bayangkan ingin menjadi pilot tanpa paham prinsip aerodinamika. Sehebat apapun kokpit pesawatnya, tetap sulit diterbangkan tanpa fondasi. Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan tooling, lalu membangun cluster yang akan menemani sepanjang series.

Skill Dasar yang Wajib Dikuasai

Konsep Database Relasional dan MySQL

Vitess memperluas MySQL, jadi kalian wajib nyaman dengan primitif SQL: SELECT, JOIN, INDEX, dan TRANSACTION. Pahami juga konsep relasional: tabel, primary key, foreign key, dan normalisasi. Vitess menambahkan satu dimensi ekstra — data bisa tersebar di banyak server — tetapi SQL tetap bahasa utamanya.

Pahami perbedaan antara OLTP (workload tulis-baca kecil dan sering, yang jadi fokus utama Vitess) dan OLAP (analitik agregat besar). Vitess dioptimalkan untuk OLTP: latensi rendah, concurrency tinggi, dan ketersediaan berkelanjutan. Jika kalian belum paham perbedaan ini, tandai dulu — istilah ini akan muncul terus sepanjang series.

Dasar Sharding dan Replikasi

Sharding adalah cara memecah data menjadi beberapa bagian yang masing-masing disimpan di server berbeda, berdasarkan aturan tertentu. Replikasi adalah cara menyalin data ke server lain agar ada cadangan dan kapasitas baca. Vitess menggabungkan keduanya: shard dipecah secara horizontal, lalu setiap shard direplikasi.

Pahami istilah kunci: primary (server yang menerima tulis), replica (server yang menyalin tulis dari primary), dan replication lag (selisih waktu antara data di primary dan data yang baru tiba di replica). Vitess mengelola semua ini secara terprogram lewat VTTablet, jadi konsep manual di MySQL menjadi operasi yang terotomasi.

Kubernetes dan Container Basics

Vitess modern paling nyaman dideploy di Kubernetes. Kalian wajib familiar dengan primitif dasar: Pod, Service, Deployment, StatefulSet, ConfigMap, dan Secret. Vitess menggunakan StatefulSet untuk VTTablet karena butuh identitas dan storage yang stabil per tablet.

Pahami juga etcd, karena Topology Service Vitess biasanya menggunakan etcd untuk menyimpan metadata cluster. Jika kalian pernah memakai Kubernetes, etcd bukan hal asing — keduanya saling melengkapi: Kubernetes menyimpan state cluster di etcd, dan Vitess menyimpan topologi shard-nya di etcd juga.

Monitoring Fundamentals

Vitess menghasilkan banyak sekali metrics. Kalian butuh paham tiga pilar observability: metrics (angka terukur seperti QPS dan latensi), logs (rekaman peristiwa), dan tracing (jejak satu request melewati banyak komponen). Prometheus untuk metrics dan Grafana untuk dashboard adalah pasangan standar yang akan kalian temui di episode 7.

Perangkat Lunak yang Perlu Disiapkan

Kubernetes Cluster

Kalian butuh cluster Kubernetes untuk eksperimen. Pilihannya fleksibel:

OpsiKebutuhanCocok untuk
minikubeResource kecilBelajar lokal
kindDocker sajaCI dan eksperimen cepat
k3s atau k3dRingan, single binaryEdge dan lokal
Managed clusterCloud accountProduction-like

Untuk series ini, kind atau k3d paling direkomendasikan karena cepat dibuat dan dibuang:

Membuat cluster kind
kind create cluster --name vitess-lab
kubectl get nodes

Perintah kedua, kubectl get nodes, harus menampilkan node vitess-lab-control-plane dengan status Ready.

Tooling CLI: kubectl, helm, vtctlclient, vtctld

kubectl adalah remote control ke Kubernetes. helm dipakai untuk menginstall Vitess di episode 3. Verifikasi keduanya:

Verifikasi kubectl dan helm
kubectl version --client
helm version

Selain itu, siapkan vtctlclient (CLI untuk mengirim perintah ke vtctld) dan mysql client untuk tes koneksi. vtctlclient biasanya tersedia di dalam container Vitess, jadi cara termudah adalah memakai alias via kubectl:

Cara umum mengakses vtctlclient
alias vtctlclient="kubectl exec -it deploy/vtctld -- vtctlclient -server localhost:15999"
vtctlclient ListAllTablets

Jika belum terinstall, tidak apa-apa — episode 3 akan memandu cara mengaksesnya dari cluster.

MySQL Client dan Storage

Pastikan mysql client terinstall di mesin kalian. Vitess menyediakan endpoint MySQL-compatible di port 15306 yang bisa diakses persis seperti MySQL biasa:

Tes koneksi MySQL ke VTGate
mysql -h 127.0.0.1 -P 15306 -u root

Editor VS Code

VS Code adalah editor paling direkomendasikan. Pasang extension yang menunjang pekerjaan kalian:

  • YAML dari Red Hat untuk validasi dan auto-complete file konfigurasi.
  • SQLTools atau extension SQL untuk syntax highlighting query MySQL.
  • Kubernetes untuk syntax highlighting manifest.

Schema validation sangat membantu karena salah indentasi YAML adalah sumber error paling umum di Vitess deployment.

Verifikasi Environment

Sebelum lanjut, pastikan semua tool inti terinstall dengan menjalankan verifikasi sekaligus:

Verifikasi tooling inti
kubectl version --client
helm version
kind --version
docker --version
mysql --version

Semua perintah harus mengembalikan nomor versi, bukan command not found. Jika ada yang gagal, install sesuai dokumentasi masing-masing tool.

Info

Urutan verifikasi di atas menetapkan baseline: Docker sebagai runtime container, kind sebagai penyedia cluster, kubectl sebagai kontrol Kubernetes, helm sebagai package manager, mysql client untuk tes query, dan git untuk version control seluruh konfigurasi. Jika semuanya siap, environment kalian siap mengikuti seluruh series.

Penutup

Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami konsep database relasional dan MySQL, dasar sharding dan replikasi, Kubernetes dan container basics, serta memastikan cluster, kubectl, helm, mysql client, dan editor siap di environment kalian.

Inti yang harus dibawa pulang:

  • Vitess memperluas MySQL: kuasai SQL, indeks, dan transaksi sebelum menyentuh Vitess.
  • Sharding memecah data horizontal, replikasi menyalinnya: Vitess mengotomasi keduanya.
  • Vitess paling nyaman di Kubernetes dengan StatefulSet dan etcd sebagai Topology Service.
  • Tooling wajib: kubectl, helm, vtctlclient, vtctld, dan mysql client.
  • Prometheus dan Grafana akan menjadi mata kalian di episode 7.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa memilih Vitess — dari masalah sharding MySQL internal YouTube yang melatarbelakangi lahirnya, evolusinya menjadi proyek CNCF, hingga perbandingan dengan MySQL tradisional, Galera, dan database cloud managed. Pastikan environment kalian sudah siap, karena perjalanan Belajar Vitess baru saja dimulai!

Belajar Vitess - Pre-Requisites Skill & Setup Environment | Belajar Vitess