Aller plus loin

Bravo, vous avez terminé ce workshop qui vous a présenté les concepts essentiels du Cloud et des technologies DevOps modernes.
Afin de ne pas épuiser votre crédit sur Exoscale, vous pouvez à présent supprimer les ressources que vous avez créée:
- Le load balancer
- Le NodePoll associé au clsuter
- Le cluster
Pour approfondir vos connaissances et améliorer le déploiement et la gestion de vos applications, voici plusieurs pistes d’amélioration, organisées par domaine, que vous pourrez considérer.
Amélioration des déploiements
Optimisation des ressources Kubernetes
Pour une gestion plus fine des ressources et une meilleure stabilité :
-
Resource Management : Définir des limites et requêtes appropriées
resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m" -
Health Checks : Sonder la santé de vos applications
readinessProbe: httpGet: path: /health port: 8080 livenessProbe: httpGet: path: /health port: 8080 -
Haute Disponibilité : Assurer la résilience avec des répliques
spec: replicas: 3 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1
Renforcement de la sécurité
Sécuriser vos déploiements avec des contextes de sécurité appropriés :
-
Security Context : Contrôler les privilèges des conteneurs
securityContext: runAsNonRoot: true runAsUser: 1000 fsGroup: 2000 capabilities: drop: - ALL -
Pod Security Standards : Appliquer des politiques de sécurité
- Privileged : Accès sans restriction
- Baseline : Prévient les escalations connues
- Restricted : Sécurité renforcée
-
Network Policies : Contrôler le trafic réseau
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all spec: podSelector: {} policyTypes: - Ingress - Egress
Isolation
Organiser vos applications avec des espaces de noms et des quotas :
-
Namespaces : Isoler logiquement vos applications
- Environnements : dev, staging, prod
- Équipes : frontend, backend, data
- Applications : par projet ou service
-
Resource Quotas : Limiter l’utilisation des ressources
apiVersion: v1 kind: ResourceQuota metadata: name: compute-quota spec: hard: requests.cpu: "4" requests.memory: 8Gi limits.cpu: "8" limits.memory: 16Gi -
Limit Ranges : Définir des limites par défaut
apiVersion: v1 kind: LimitRange metadata: name: default-limits spec: limits: - default: cpu: "500m" memory: "512Mi" type: Container
Observabilité avancée
Instrumenter votre cluster pour une visibilité complète :
-
Monitoring : Stack Prometheus + Grafana
- Métriques système et applicatives
- Alerting automatisé
- Dashboards personnalisés
-
Log Management : Centralisation avec Loki
- Logs structurés en JSON
- Corrélation avec les métriques
- Recherche et filtrage avancés
-
Tracing Distribué : OpenTelemetry + Jaeger
- Suivi des requêtes end-to-end
- Détection des goulots d’étranglement
- Analyse des performances
Sécurité
Policy engines
Runtime
Les étapes recommandées
-
Explorez les concepts avancés de Kubernetes : Custom Resources, Operators, et l’écosystème CNCF
-
Préparez les certifications CKA (Certified Kubernetes Administrator) ou CKAD (Certified Kubernetes Application Developer)
-
Déployez vos propres applications en appliquant les bonnes pratiques apprises dans ce workshop
-
Rejoignez les communautés Kubernetes et Cloud Native pour continuer à apprendre et partager
VotingApp en production
Pour mettre vous-même la VotingApp en production, considérez ces améliorations :
- Monitoring : Métriques business (votes/minute, utilisateurs actifs)
- Scaling : HorizontalPodAutoscaler basé sur CPU/mémoire
- Persistance : Volumes persistants pour Redis et PostgreSQL
- Sécurité : Secrets Kubernetes, chiffrement TLS
- CD : Pipeline GitOps avec ArgoCD ou Flux