Test 2Proiect Plan DevOps – Contapics

Dată proiect:
11 iunie 2026

Proiectul prezintă implementarea unei infrastructuri DevOps complete pentru o aplicație bazată pe microservicii, utilizând AWS, Kubernetes și instrumente moderne de automatizare. Sunt abordate aspecte precum Infrastructure as Code, CI/CD, monitorizare, scalare și optimizarea costurilor, într-un scenariu apropiat de cerințele întâlnite în mediile reale de producție.

Proiect realizat de
Picture of Cristi Cojocaru
Cristi Cojocaru
În cadrul programului de studiu:
1

Înțelegem arhitectura aplicației

Primul pas este identificarea componentelor principale ale sistemului și a dependențelor externe. Contapics este format dintr-un frontend Vue.js, un backend Spring Boot și o bază de date PostgreSQL, cu un serviciu separat pentru procesarea pozelor prin OCR. Rezultatul este o diagramă de context care oferă o imagine de ansamblu asupra aplicației și a interacțiunilor sale.
2

Identificăm infrastructura de calcul

Alegem sa facem deploy într-un cluster AWS EKS, unde frontend-ul, backend-ul și PostgreSQL sunt deployate ca workload-uri separate. PostgreSQL este rulat în cluster pentru simplificarea mediului de demonstrație și pentru reducerea costurilor inițiale. Accesul extern este realizat prin AWS Application Load Balancer, iar monitorizarea va fi asigurată prin Prometheus și Grafana. Diagrama evidențiază serviciile, porturile și fluxurile de comunicație dintre componente.
3

Configurarea accesului

Accesul la resurse AWS este gestionat prin IRSA (IAM Roles for Service Accounts), eliminând necesitatea utilizării credențialelor statice în pod-uri. EBS CSI Driver primește permisiuni pentru gestionarea volumelor persistente, iar AWS Load Balancer Controller poate crea automat resursele de tip ALB. Expunerea serviciilor se realizează prin reguli Kubernetes Ingress.
4

Considerente de scalabilitate

Scalarea aplicației este realizată prin Horizontal Pod Autoscaler, care ajustează automat numărul de replici pentru frontend și backend în funcție de încărcare. HPA este mecanismul principal de scalare pentru frontend și backend, în timp ce VPA poate fi utilizat pentru ajustarea automată a request-urilor și limitelor de resurse ale pod-urilor. Pentru viitoare cerințe de disponibilitate și performanță, PostgreSQL poate fi migrat către AWS RDS.
5

Înțelegem și optimizăm costurile

Estimarea costurilor evidențiază principalele componente care contribuie la bugetul infrastructurii: EKS, EC2, NAT Gateway, ALB și stocarea persistentă. Observam costurile într-o perioada de test de doua zile, insa acestea reprezintă consumul parțial al unor servicii si nu pot fi extrapolate liniar. In plus, identificam alternative care pot reduce semnificativ cheltuielile, precum Spot Instances, Fargate sau Single-AZ deployment.
6

Introducem "Infrastructure as Code"

În acest pas, intreaga infrastructură este definită sub forma de cod și versionată în Git pentru a asigura reproductibilitatea mediului. Terraform este utilizat pentru provizionarea resurselor AWS, Helm pentru deployment-ul aplicației în Kubernetes, iar Ansible este utilizat pentru orchestrarea mediului educațional și automatizarea etapelor auxiliare de deployment. Această abordare reduce intervențiile manuale și crește consistența procesului de deployment.
7

Monitorizare și observabilitate

Monitorizarea este implementată prin kube-prometheus-stack, care include Prometheus, Grafana și Alertmanager. Aplicația expune metrici prin Micrometer, iar dashboard-urile Grafana oferă vizibilitate asupra performanței infrastructurii și aplicației. Alertele automate permit identificarea rapidă a problemelor operaționale.
8

CI/CD Pipeline

Procesul de livrare este automatizat prin GitHub Actions și este declanșat la fiecare actualizare a branch-ului principal. Pipeline-ul construiește imaginile Docker, le publică în Amazon ECR și actualizează aplicația în clusterul EKS prin Helm. Astfel, fiecare versiune poate fi asociată direct cu un commit din repository.

Descoperă proiecte similare