📂 LexiOps - Autonomous AIOps & RAG Platform

1. 🎯 Mục tiêu Project

Xây dựng và triển khai một nền tảng AI toàn diện, tự vận hành trên AWS, có khả năng phục vụ cả người dùng cuối (qua RAG Chatbot) và đội ngũ vận hành (qua AIOps).


2. 📊 Kanban Board

List task


3. 🗺 AWS Architecture Diagram

flowchart LR
    %% ==== External Entities ====
    User([User]):::user -- "HTTP Request" --> ALB[AWS ALB]:::aws
    Developer([Developer/Operator]):::user -- "ChatOps/CLI" --> AgentCtrl
    LegalSources[(External Legal Sources)]:::db -- "Data" --> Crawler
    GitRepo[(Git Repository)]:::db -- "Code & Config" --> CICD[GitHub Actions]
    CICD -- "Push Image" --> ECR[AWS ECR]:::aws
    GitRepo -- "Sync Manifests" --> ArgoCD[ArgoCD]:::infra
    
    %% ==== Namespace APP ====
    subgraph APP_Namespace[Namespace: app]
        direction TB
        FE[React Frontend]:::frontend --> API[FastAPI Backend + Celery]:::backend
        API --> Mongo[(MongoDB)]:::db
        API --> Qdrant[(Qdrant Vector DB)]:::db
        API --> Redis[(Redis Cache/Queue)]:::db
    end

    %% ==== Namespace ML ====
    subgraph ML_Namespace[Namespace: ml]
        direction TB
        Crawler[Crawler/Ingestion]:::ml --> S3[(AWS S3 Data Lake)]:::db
        Airflow[Airflow Orchestrator]:::ml --> Crawler
        Airflow --> SageMaker[SageMaker Jobs]:::ml
        SageMaker --> S3
        Airflow --> MLflow[MLflow Tracking]:::ml
    end

    %% ==== Namespace MONITORING ====
    subgraph Monitoring_Namespace[Namespace: monitoring]
        direction TB
        Prometheus[Prometheus Metrics]:::monitor --> Grafana[Grafana Dashboard]:::monitor
        Loki[Loki + Promtail]:::monitor --> Grafana
        Prometheus --> Alertmanager[Alertmanager]:::monitor
    end

    %% ==== Namespace AGENT (MCP Host) ====
    subgraph Agent_Namespace[Namespace: agent]
        direction TB
        AgentCtrl["AI Agent Controller <br> (MCP Host)"]:::agent
    end
    
    %% ==== Namespace MCP SERVERS ====
    subgraph MCP_Servers_Namespace[Namespace: mcp]
        direction TB
        K8s_MCP[Kubernetes MCP Server]:::mcp
        Airflow_MCP[Airflow MCP Server]:::mcp
        Monitoring_MCP[Monitoring MCP Server]:::mcp
        ArgoCD_MCP[ArgoCD MCP Server]:::mcp
    end
    
    %% ==== Namespace INFRA / SECURITY ====
    subgraph INFRA_Namespace[Namespace: infra]
        direction TB
        ArgoCD
        SecretsManager[(AWS Secrets Manager)]:::aws
    end

    %% ==== Kubernetes Cluster API ====
    K8sAPI[(Kubernetes API)]:::aws

    %% ==== Core Flows ====
    ALB -- "HTTP" --> FE
    ArgoCD -- "Deploy" --> K8sAPI
    
    %% ==== Monitoring -> Agent Flow ====
    Alertmanager -- "Alerts" --> AgentCtrl
    
    %% ==== Agent -> MCP Flow (THE CORE CHANGE) ====
    AgentCtrl -- "MCP Protocol" --> K8s_MCP
    AgentCtrl -- "MCP Protocol" --> Airflow_MCP
    AgentCtrl -- "MCP Protocol" --> Monitoring_MCP
    AgentCtrl -- "MCP Protocol" --> ArgoCD_MCP
    
    %% ==== MCP -> System Flow ====
    K8s_MCP -- "kubectl/helm" --> K8sAPI
    Airflow_MCP -- "Trigger DAG" --> Airflow
    Monitoring_MCP -- "Query Metrics/Logs" --> Prometheus
    Monitoring_MCP -- "Query Metrics/Logs" --> Loki
    ArgoCD_MCP -- "Sync/Rollback" --> ArgoCD

    %% ==== Secrets Flow ====
    SecretsManager -- "Inject Secrets" --> APP_Namespace
    SecretsManager -- "Inject Secrets" --> ML_Namespace
    SecretsManager -- "Inject Secrets" --> Agent_Namespace

    %% ==== Class Colors ====
    classDef user fill:#4da3ff,stroke:#ffffff,stroke-width:1px,color:#ffffff;
    classDef aws fill:#ffd84d,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef backend fill:#4dff88,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef frontend fill:#ff80aa,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef db fill:#cccccc,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef ml fill:#ffb84d,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef monitor fill:#66ffff,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef agent fill:#d966ff,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef infra fill:#c2c2f0,stroke:#ffffff,stroke-width:1px,color:#000000;
    classDef mcp fill:#ff9999,stroke:#ffffff,stroke-width:1px,color:#000000;

💡 Ghi chú Flow:


4. ✅ Checklist lỗi hay gặp & fix nhanh

Helmfile deploy lỗi chart không tìm thấy

EKS pods CrashLoopBackOff

Ingress không vào được