Skip to content

Architectuur

Deze pagina beschrijft de technische architectuur van het HappyHorizon DevOps platform. Je vindt hier een overzicht van de infrastructuur, clusteropzet, componenten en operationele strategieën.

Overzicht Infrastructuur

Eigenschap Waarde
Primaire cloudprovider Google Cloud Platform (GCP)
Regio europe-west4 (Nederland)
Kubernetes-implementatie Google Kubernetes Engine (GKE)

Kubernetes Cluster Architectuur

Cluster Doel Kenmerken
Development Ontwikkeling, testen, staging Geïsoleerd, productie-equivalent, CI-validatie
Productie Productie voor eindgebruikers Maximale beschikbaarheid, beveiliging, monitoring

Voorbeeld cluster manifest

apiVersion: v1
kind: Namespace
metadata:
  name: development

Componenten

Containerization

Eigenschap Waarde
Technologie Docker
Containerregistry GitHub Container Registry (ghcr.io)
Implementatie Containers op GKE-nodes

Docker build & push

docker build -t ghcr.io/org/app:latest .
docker push ghcr.io/org/app:latest

Databases

Eigenschap Development Productie
Database MySQL MySQL
Connectiviteit Service discovery Service discovery, beveiligd
Routing Kubernetes Services Kubernetes Services

Connection string voorbeeld

DATABASE_URL: "mysql://user:pass@db-host:3306/appdb"

Netwerk en Verkeer

Eigenschap Waarde
Ingress-controller NGINX Ingress Controller
SSL-terminatie Ja
Routing Via Ingress

Ingress manifest

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: app-ingress
spec:
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: app-service
                port:
                  number: 80

Certificaatbeheer

Eigenschap Waarde
Technologie cert-manager
Functionaliteit Geautomatiseerd SSL beheer
Integratie Let's Encrypt

Cert-manager manifest

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: app-cert
spec:
  secretName: app-tls
  issuerRef:
    name: letsencrypt-prod
    kind: ClusterIssuer
  dnsNames:
    - app.example.com

Beveiligde Toegang

Eigenschap Waarde
VPN-technologie WireGuard
Cluster toegang Versleuteld
Communicatie On-premise ↔ cloud

Deployment Strategie

CI/CD Pipeline

Stap Omschrijving
1 Code commit in repository
2 Geautomatiseerde build en test
3 Omgevingsspecifieke deployment

GitHub Actions workflow

name: CI/CD Pipeline
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build
        run: docker build -t ghcr.io/org/app:latest .
      - name: Push
        run: docker push ghcr.io/org/app:latest

GitOps

Eigenschap Waarde
Technologie ArgoCD
Configuratie Declaratief, manifest sync
Integratie Helm, Kustomize

ArgoCD app manifest

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: app
spec:
  project: default
  source:
    repoURL: https://github.com/org/app-config
    path: manifests
    targetRevision: HEAD
  destination:
    server: https://kubernetes.default.svc
    namespace: default
  syncPolicy:
    automated: {}

Operationeel Beheer

Backup en Disaster Recovery

Eigenschap Waarde
Platform Backup for GKE
Strategie Periodieke snapshots

Backup CLI voorbeeld

gcloud container backups create --cluster=prod-cluster --location=europe-west4

Monitoring en Observability

Eigenschap Tools
Monitoringstack Prometheus, Google Cloud Monitoring, Grafana
Logging Google Cloud Logging, Prometheus, Sentry

Prometheus scrape config

scrape_configs:
  - job_name: 'kubernetes-apiservers'
    kubernetes_sd_configs:
      - role: endpoints

Gerelateerde Documentatie