{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 :)

Made with Slides.com