Menguji performa di infrastruktur cloud-native: serverless cold start, autoscaling behavior, container performance, dan strategi testing untuk aplikasi yang berjalan di AWS Lambda, Cloud Run, atau Kubernetes.

Setelah di episode 15 kita memahami caching & CDN testing, kini saatnya membahas area yang semakin relevan di 2026: cloud & serverless performance. Semakin banyak aplikasi yang berpindah ke cloud-native architectures — containers, serverless functions, dan managed services — yang membawa tantangan performance testing yang unik.
Serverless cold start, autoscaling lag, dan container startup time adalah jenis bottleneck baru yang tidak ada di tradisional on-premise testing. Episode ini membawa kalian memahami tantangan ini dan cara mengujinya.
Cold start adalah delay yang terjadi saat serverless platform (AWS Lambda, Google Cloud Run) harus menginisialisasi instance baru untuk menangani request. Cold start bisa menambahkan ratusan milidetik sampai beberapa detik ke response time.
| Faktor | Dampak |
|---|---|
| Runtime (Java > Python > Go) | JVM initialization lebih lambat |
| Package size | Lebih besar = lebih lambat |
| VPC configuration | VPC cold start lebih lambat |
| Memory allocation | Lebih banyak memory = lebih cepat (di Lambda) |
// k6: test cold start scenario
export const options = {
scenarios: {
cold_start: {
executor: 'constant-arrival-rate',
rate: 1,
timeUnit: '1s',
duration: '1m',
preAllocatedVUs: 1,
},
},
};
export default function () {
const res = http.get('https://api.example.com/endpoint');
// Cold start terjadi di request pertama setelah idle
// Response time pertama akan jauh lebih tinggi dari berikutnya
check(res, {
'status 200': (r) => r.status === 200,
});
}Autoscaling lag adalah waktu antara load naik sampai instance baru benar-benar available. Selama lag ini, instance yang ada menangani semua beban — menyebabkan latency tinggi atau error.
// k6: test autoscaling behavior
export const options = {
stages: [
{ duration: '1m', target: 10 }, // Normal load
{ duration: '30s', target: 100 }, // Spike: autoscaling triggered
{ duration: '3m', target: 100 }, // Steady-state: instances should be scaled up
{ duration: '1m', target: 10 }, // Scale down
{ duration: '2m', target: 10 }, // Observe scale-down behavior
],
};Container startup time mempengaruhi autoscaling — semakin cepat startup, semakin cepat new instances available.
# Ukur container startup time
time docker run --rm grafana/k6 version
# Ukur di Kubernetes
kubectl get events --field-selector reason=Started -wResource limits di Kubernetes mempengaruhi performance secara langsung:
# Resource limits yang mempengaruhi performance
resources:
limits:
cpu: "500m" # 0.5 CPU core
memory: "256Mi" # 256 MB RAM
requests:
cpu: "250m"
memory: "128Mi"Jika CPU limit terlalu rendah, container akan di-throttle — menambah latency. Testing harus dilakukan dengan resource limits yang sama dengan production.
Managed databases (RDS, Cloud SQL, Cloud Firestore) punya karakteristik performance yang berbeda dari self-hosted:
API Gateway (AWS API Gateway, Kong, Traefik) menambah layer tambahan ke request path. Testing harus mengukur dampak gateway terhadap latency.
// k6: test dengan dan tanpa API Gateway
export default function () {
// Direct API
const direct = http.get('https://backend.example.com/products');
// Via API Gateway
const viaGateway = http.get('https://api.example.com/products');
check(direct, {
'direct < 100ms': (r) => r.timings.duration < 100,
});
check(viaGateway, {
'gateway < 150ms': (r) => r.timings.duration < 150,
});
}Cloud performance testing harus mempertimbangkan biaya:
| Optimization | Performance Impact | Cost Impact |
|---|---|---|
| Smaller instances | Latency mungkin naik | Biaya turun |
| Spot instances | Interruptible, startup lebih lama | Biaya turun 60-70% |
| Reserved instances | Tidak ada perubahan | Biaya turun 30-40% |
| Right-sizing | Optimal performance | Biaya optimal |
Di episode 16 ini kalian telah memahami cloud & serverless performance:
Di episode 17 selanjutnya, kita akan membahas Tuning & Optimization — bagaimana mengoptimasi aplikasi, database, dan infrastruktur berdasarkan hasil performance test. Siapkan profiler kalian!