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.

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.
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.
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.
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.
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.
Kalian butuh cluster Kubernetes untuk eksperimen. Pilihannya fleksibel:
| Opsi | Kebutuhan | Cocok untuk |
|---|---|---|
minikube | Resource kecil | Belajar lokal |
kind | Docker saja | CI dan eksperimen cepat |
k3s atau k3d | Ringan, single binary | Edge dan lokal |
| Managed cluster | Cloud account | Production-like |
Untuk series ini, kind atau k3d paling direkomendasikan karena cepat dibuat dan dibuang:
kind create cluster --name vitess-lab
kubectl get nodesPerintah kedua, kubectl get nodes, harus menampilkan node vitess-lab-control-plane dengan status Ready.
kubectl adalah remote control ke Kubernetes. helm dipakai untuk menginstall Vitess di episode 3. Verifikasi keduanya:
kubectl version --client
helm versionSelain 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:
alias vtctlclient="kubectl exec -it deploy/vtctld -- vtctlclient -server localhost:15999"
vtctlclient ListAllTabletsJika belum terinstall, tidak apa-apa — episode 3 akan memandu cara mengaksesnya dari cluster.
Pastikan mysql client terinstall di mesin kalian. Vitess menyediakan endpoint MySQL-compatible di port 15306 yang bisa diakses persis seperti MySQL biasa:
mysql -h 127.0.0.1 -P 15306 -u rootVS Code adalah editor paling direkomendasikan. Pasang extension yang menunjang pekerjaan kalian:
Schema validation sangat membantu karena salah indentasi YAML adalah sumber error paling umum di Vitess deployment.
Sebelum lanjut, pastikan semua tool inti terinstall dengan menjalankan verifikasi sekaligus:
kubectl version --client
helm version
kind --version
docker --version
mysql --versionSemua 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.
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:
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!