Sebelum menyentuh pipeline ML, kalian perlu menguasai Python production, dasar ML, Docker, dan cloud dasar. Di episode ini kalian menyiapkan Python 3.12+, Docker, MLflow, cluster kind untuk Kubernetes, dan memverifikasi seluruh environment siap dipakai sepanjang series.

Selamat datang di series Belajar MLOps! Series ini akan membawa kalian menguasai Machine Learning Operations — disiplin yang membuat model ML tetap reliable, terukur, dan terotomasi dari training sampai produksi. Total ada 28 episode yang tersusun dalam enam fase, dari fondasi konsep sampai production readiness.
Sebelum menjalankan mlflow run . atau kubectl apply -f inference.yaml, ada skill dasar dan perangkat yang wajib kalian siapkan. Mengapa prasyarat ini penting? Karena MLOps bekerja di dua dunia sekaligus: dunia data & model (Python, ML) dan dunia infrastruktur (Docker, Kubernetes, cloud). Melewatkan salah satunya akan membuat kalian kesulitan saat pipeline gagal di menit ketiga atau model tidak kunjung terdeploy.
Episode 0 ini adalah peta jalan kalian: kita memastikan skill dasar terpenuhi, menyiapkan environment Python dan Docker, memasang tool MLOps inti, lalu memverifikasi semuanya untuk pertama kali.
Berbeda dari data scientist yang nyaman di Jupyter, MLOps Engineer harus nyaman dengan Python production: struktur project, venv, type hint, dan testing. Latihan kecil: pastikan kalian bisa membuat fungsi ber-type hint dan menjalankannya dengan pytest tanpa error.
def accuracy(tp: int, fp: int, fn: int) -> float:
return tp / (tp + fp + fn)
assert accuracy(90, 5, 5) == 0.9Jika kalian paham kenapa accuracy(90, 5, 5) bernilai 0.9, fondasi Python kalian sudah cukup. Episode 3 akan memperdalam Python production secara utuh.
Kalian tidak perlu jadi data scientist, tapi wajib paham istilah yang akan kita operasikan setiap hari: training vs inference, train/test split, overfitting, dan metrik evaluasi. Kalian harus bisa membaca kode training sederhana dengan scikit-learn.
Hampir seluruh episode series ini memakai container. Kalian wajib paham konsep image vs container, cara menulis Dockerfile sederhana, dan menjalankan docker run. Latihan kecil: jalankan image hello-world.
MLOps berjalan di cloud: VM, object storage (S3/GCS), dan IAM. Kalian tidak perlu menguasai semua layanan, cukup paham konsepnya dan nyaman dengan satu CLI cloud (aws, gcloud, atau az) — berguna mulai episode 16.
python3 --version
mkdir -p ~/mlops-lab
python3 -m venv ~/mlops-lab/venv
source ~/mlops-lab/venv/bin/activateGunakan venv untuk semua praktik di series ini agar dependency antar proyek tidak saling tabrakan. Sejak episode 4, venv digantikan lockfile dan container untuk reproduktibilitas penuh.
Install Docker Engine (atau Docker Desktop) dan pastikan daemon berjalan:
sudo apt install docker.io # Debian/Ubuntu
sudo systemctl enable --now docker
docker run --rm hello-world
docker version --format '{{.Server.Version}}'Output hello-world tanpa error menandakan Docker siap. Jika di lingkungan container (seperti VM tanpa systemd), cukup pastikan docker version berjalan.
MLflow adalah tool utama yang akan menemani kalian dari episode 5 sampai 11. Install di dalam venv:
pip install mlflow
mlflow --versionNanti kita akan menjalankan server tracking lokal. Jangan install Weights & Biases sekarang — kita bandingkan keduanya di episode 5.
Mulai episode 17 kalian akan mendeploy model di Kubernetes. Untuk latihan lokal, kind (Kubernetes in Docker) jauh lebih ringan daripada minikube:
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x kind && sudo mv kind /usr/local/bin/
kind create cluster --name mlops
kubectl cluster-infoButuh akses internet saat pembuatan cluster karena menarik image kindest/node. Jika kalian sudah punya minikube yang berjalan, itu juga cukup — konsepnya identik.
pip install awscli && aws --version
gcloud version
az versionCLI cloud dipakai intensif di episode 16 (Cloud ML Platforms). Install minimal satu sekarang agar tidak terburu-buru nanti.
Note
Untuk episode 0-4, Python + Docker sudah cukup. Cluster kind baru benar-benar dibutuhkan mulai episode 17 — jangan paksakan semuanya beres hari ini, siapkan bertahap agar tidak kewalahan.
Sebelum lanjut ke episode 1, jalankan verifikasi menyeluruh:
python3 --version
docker version --format '{{.Server.Version}}'
mlflow --version
kind get clusters
kubectl cluster-infoSemua perintah harus tampil tanpa error. Uji kecil berikut memastikan stack ML berjalan normal:
import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[1], [2], [3]])
y = np.array([2, 4, 6])
model = LinearRegression().fit(X, y)
print(f"prediksi: {model.predict([[4]])[0]:.1f}")Output harus mendekati 8.0. Jika semua lancar, environment kalian siap untuk 27 episode ke depan.
Rangkuman yang sudah kalian siapkan di episode 0:
venv di ~/mlops-lab, scikit-learn & NumPy terinstall.hello-world sukses.kind bernama mlops aktif.Jika ada yang belum terpenuhi, berhenti dulu dan lengkapi sebelum melanjutkan. Fondasi yang kuat di episode 0 membuat 27 episode berikutnya jauh lebih lancar.
Inti yang harus dibawa pulang:
kind.docker run hello-world dan uji LinearRegression.Di episode 1 selanjutnya kita akan membahas peran MLOps Engineer dan mengapa ia menjadi peran paling dicari 2026 — dari fakta 85-87% model tidak pernah sampai produksi, lonjakan lowongan 340%, hingga mengapa kalian sebagai DevOps/SRE/data engineer bisa langsung transisi ke peran ini. Pastikan environment kalian sudah siap, karena perjalanan Belajar MLOps baru saja dimulai!