Platform Engineering 2026: Membangun Internal Developer Portal dengan Backstage di Indonesia
Platform engineering jadi tren dominan Indonesia 2026. Backstage (Spotify, CNCF) jadi standar de-facto Internal Developer Portal. Artikel ini bahas software catalog, scaffolder templates, Kubernetes plugin, ephemeral environments, dan roadmap adopsi praktis untuk enterprise Indonesia.
Platform engineering telah menjadi tren dominan di industri teknologi Indonesia sepanjang 2026. Seiring dengan adopsi Kubernetes dan arsitektur microservices yang masif, organisasi mulai menyadari bahwa model DevOps tradisional — di mana setiap tim harus mengelola infrastruktur sendiri — tidak lagi skalabel. Solusinya adalah Internal Developer Platform (IDP), dan Backstage dari Spotify telah muncul sebagai standar de-facto untuk membangun portal pengembang internal.
Dari DevOps ke Platform Engineering: Mengapa Perlu Berubah?
DevOps memecahkan masalah silo antara development dan operations, namun menciptakan beban kognitif baru. Para engineer diharapkan memahami Kubernetes manifests, CI/CD pipelines, observability stack, secret management, dan on-call runbooks — semua sekaligus. Di Indonesia, startup hingga enterprise seperti Gojek, Tokopedia, dan Traveloka telah mengalami fase ini. Platform engineering hadir sebagai lapisan abstraksi: tim platform membangun dan mengoperasikan IDP, sedangkan product team mengonsumsinya melalui self-service interface.
Insight Kunci: Platform engineering bukan menggantikan DevOps, melainkan mengindustriakannya. Golden paths yang di-build tim platform memungkinkan product engineer fokus pada business logic, bukan plumbing infrastruktur.
Backstage: Backbone Internal Developer Portal
Backstage diciptakan Spotify untuk mengelola 14.000+ microservices di 42 Kubernetes clusters global. Sekarang sebagai proyek CNCF Incubating, Backstage menyediakan tiga pilar utama:
- Software Catalog — Inventaris live setiap service, library, API, website, dan komponen infrastruktur. Metadata diambil dari
catalog-info.yamldi setiap repo, membangun dependency graph organisasi secara otomatis. - Software Templates (Scaffolder) — Workflow form-driven yang membuat komponen baru dengan boilerplate organisasi: project structure, Dockerfile, CI/CD pipeline, K8s manifests, monitoring dashboards, alert rules, dan auto-registration ke catalog.
- TechDocs — Sistem "docs as code" yang render Markdown dari setiap repo langsung di portal. Dokumentasi selalu sinkron dengan kode.
Semua kemampuan lain — Kubernetes dashboard, cost tracking, incident management, GitHub Actions views — hadir sebagai plugin. Arsitektur plugin berarti tim bisa menambah first-party atau community plugins, atau menulis custom plugin tanpa fork core.
Implementasi Nyata: Template Production-Ready Go Microservice
Berikut contoh template Backstage v1beta3 untuk Go microservice yang siap production di Kubernetes 1.37:
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: golang-microservice
title: Go Microservice
description: Production-ready Go service dengan Kubernetes, monitoring, dan CI/CD
tags:
- golang
- recommended
spec:
owner: platform-team
type: service
parameters:
- title: Service Information
required:
- serviceName
- teamOwner
properties:
serviceName:
type: string
title: Service Name
ui:autofocus: true
pattern: '^[a-z][a-z0-9-]*$'
teamOwner:
type: string
title: Team Owner
ui:field: OwnerPicker
description:
type: string
title: Description
- title: Kubernetes Configuration
properties:
namespace:
type: string
title: Target Namespace
default: production
replicas:
type: integer
title: Replicas
default: 3
resources:
type: object
title: Resource Limits
properties:
cpu:
type: string
default: "500m"
memory:
type: string
default: "512Mi"
steps:
- id: fetch-template
name: Fetch Template
action: fetch:template
input:
url: ./template-golang
values:
serviceName: ${{ parameters.serviceName }}
teamOwner: ${{ parameters.teamOwner }}
description: ${{ parameters.description }}
namespace: ${{ parameters.namespace }}
replicas: ${{ parameters.replicas }}
resources: ${{ parameters.resources }}
- id: publish-github
name: Publish to GitHub
action: publish:github
input:
repoUrl: github.com/myorg/${{ parameters.serviceName }}
description: ${{ parameters.description }}
- id: register-catalog
name: Register in Catalog
action: catalog:register
input:
repoContentsUrl: https://github.com/myorg/${{ parameters.serviceName }}
catalogInfoPath: /catalog-info.yaml
output:
repoUrl: ${{ steps.publish-github.output.repoUrl }}
catalogEntityRef: ${{ steps.register-catalog.output.entityRef }}
Template ini menghasilkan repository baru dengan semua standar organisasi baked-in. Developer hanya mengisi form, klik submit, dan dalam 2 menit mendapat repo siap deploy.
Kubernetes Plugin: Visibility Tanpa Kubectl Access
Plugin Kubernetes menampilkan pod health, resource consumption, dan rollout status langsung di halaman entity catalog. Konfigurasi di app-config.yaml:
kubernetes:
serviceLocatorMethod:
type: 'multiTenant'
clusterLocatorMethods:
- type: 'config'
clusters:
- url: https://k8s.production.example.com
name: production
authProvider: 'serviceAccount'
serviceAccountToken: ${K8S_PROD_SA_TOKEN}
- url: https://k8s.staging.example.com
name: staging
authProvider: 'serviceAccount'
serviceAccountToken: ${K8S_STAGING_SA_TOKEN}
Annotasi di catalog-info.yaml menghubungkan component ke workloads K8s:
metadata:
annotations:
backstage.io/kubernetes-id: payment-service
backstage.io/kubernetes-namespace: production
Engineer tidak perlu meninggalkan portal untuk cek deployment health — live pod counts, CPU/memory graphs, dan rollout status tersedia langsung.
Self-Service Ephemeral Environments: ROI Tertinggi
Satu kemampuan IDP bernilai tertinggi: ephemeral environments on-demand. Setiap PR otomatis mendapat preview environment dengan TTL 48 jam:
// Backstage action untuk create preview environments
createTemplateAction({
id: 'mycompany:environment:create',
schema: {
input: z.object({
serviceName: z.string(),
prNumber: z.number(),
ttlHours: z.number().default(48),
}),
},
async handler(ctx) {
const { serviceName, prNumber, ttlHours } = ctx.input;
const envName = `pr-${prNumber}-${serviceName}`;
// Create namespace di Kubernetes
await k8sApi.createNamespace({
metadata: {
name: envName,
labels: {
'environment-type': 'ephemeral',
'pr-number': String(prNumber),
'service': serviceName,
'ttl-hours': String(ttlHours),
},
},
});
// Deploy service dengan Helm
await helmClient.upgrade(envName, `./charts/${serviceName}`, {
namespace: envName,
values: {
image: { tag: `pr-${prNumber}` },
ingress: { host: `${envName}.preview.example.com` },
replicas: 1, // reduced untuk preview
},
});
ctx.output('previewUrl', `https://${envName}.preview.example.com`);
ctx.output('namespaceName', envName);
},
});
Ini menghilangkan bottleneck ops tickets untuk staging environments. QA dan product manager bisa test fitur langsung di URL preview tanpa menunggu.
Roadmap Adopsi di Indonesia 2026
Berdasarkan pengalaman enterprise Indonesia, roadmap praktis:
- Minggu 1-2: Deploy Backstage minimal (catalog + 1 template) dengan tim platform 2 orang. Gunakan Helm chart resmi
backstage/backstagedi Artifact Hub. - Minggu 3-4: Migrasi ke PostgreSQL production, integrasi GitHub/GitLab, build 2-3 software templates untuk service type paling umum.
- Bulan 2: Integrasi CI/CD pipeline visibility, tambah Kubernetes status ke entity pages, enable TechDocs.
- Bulan 3: Custom plugins untuk kebutuhan spesifik: cost tracking (Kubecost), security scanning (Trivy/Snyk), incident management (PagerDuty).
Total rollout minimal portal: 2-4 minggu. Full plugin integration: tambahan 2-3 minggu. Investasi ini mengembalikan produktivitas developer signifikan — Spotify mengurangi onboarding microservice baru dari 14 hari menjadi 47 menit.
Tantangan Khusus Indonesia
Di Indonesia, tantangan utama adalah talent gap dan regulasi data sovereignty. Banyak organisasi memilih deployment on-premise atau hybrid cloud (AWS/GCP + data center lokal) untuk compliance. Backstage cloud-agnostic mendukung ini dengan baik — plugin Kubernetes bekerja identik di EKS, GKE, atau cluster bare-metal. CNCF maturity juga memastikan longevity dan vendor neutrality.
Organisasi yang investasi IDP — dan Backstage adalah opsi open-source terbaik di 2026 — secara konsisten out-ship dan out-recruit kompetitor. Key insight: developer tidak perlu memahami Kubernetes untuk deploy ke Kubernetes. Pekerjaan tim platform adalah membuat "hal yang benar" menjadi "hal yang mudah".