{DevOps}
Interview Presentation for Xapiens
Christian Windi Utomo
Workflow (simplified)
Build
Compile binary, build docker image, then save it to container registry.
1.
2.
Security Scan
Scan docker images for CVE(s) / vulnerabilites.
3.
Deploy
Execute the deployment procedures
# WORKFLOW
Architecture Diagram
# 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
Homelab
Kubernetes, Dockers, Gitlab services are self-hosted (on a spare laptop :)

# DEPLOY METHOD
Deployment Tools - Gitlab CI

# DEPLOY METHOD
Package Deployment - Manifest

# MONITORING
Monitoring of Metrics
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
Logging
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
Error Tracking
Ensure the application's health issues. Store and track exception thrown from running applications.

Sentry
Error Tracking
# MONITORING
Telemetry and Tracing (optional)
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
HPA - Autoscale
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
Thank you :)
Code
By Christian W Utomo
Code
- 73