Interview Presentation for Xapiens
Christian Windi Utomo
Build
Compile binary, build docker image, then save it to container registry.
Security Scan
Scan docker images for CVE(s) / vulnerabilites.
Deploy
Execute the deployment procedures
# WORKFLOW
# ARCH DIAGRAM
Git Repo
Container Registry
K8s - Deploy grpc & rest server
K8s - Cronjob for triggering grpc client
Victoria Metrics
Elasticsearch
Grafana
Dashboard + Alert
Kibana + ElastAlert
PagerDuty
Incident Management
Sentry
Error Tracking
# INFRA
Kubernetes, Dockers, Gitlab services are self-hosted (on a spare laptop :)
# DEPLOY METHOD
# DEPLOY METHOD
# MONITORING
Records time-series data, eg. CPU, Memory usage, inodes, request per seconds, etc.
And also, alerting when specific conditions met.
Victoria Metrics
Grafana
Dashboard + Alert
# MONITORING
Records log based information, eg: stdio / stderr for each apps that run inside container.
And also, alerting when specific conditions met.
Elasticsearch
Kibana + ElastAlert
# MONITORING
Ensure the application's health issues. Store and track exception thrown from running applications.
Sentry
Error Tracking
# MONITORING
Tracing and telemetry could be noisier than logging, we follow a program’s flow and data progression, eg. tracing data flow in each functions, and record duration to complete.
Jaeger
Distributed Tracing
# SCALING
Horizontal Pod Autoscaler, kubernetes will create (or kill) pods replica, according to specific condition to match demand.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: my-app
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 50