-
Epic
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
RO - [UI] ROS Frontend Migration
-
False
-
-
False
-
-
To Do
-
FLPATH-2555 - Resource Optimization (RO) On-Premise Migration - MVP
-
44% To Do, 56% In Progress, 0% Done
-
-
Overview
The Insights-prem platform is a comprehensive cost management and optimization platform consisting of multiple microservices, micro-frontends, and data processing pipelines. The optimization features are implemented through a sophisticated multi-layered architecture.
Core Components
- Frontend Layer: React-based micro-frontend architecture
- API Gateway: NGINX-based routing and proxying
- Backend Services: Multiple specialized services (Cost Management, ROS-OCP, ROS-RHEL)
- Data Processing: Kafka-based event streaming and Kruize optimization engine
- Storage: PostgreSQL databases for different domains
Component Structure
// CostManagement/koku-ui/src/routes/optimizations/optimizationsDetails/optimizationsDetails.tsx const OptimizationsDetails: React.FC<OptimizationsDetailsProps> = () => { return ( <AsyncComponent scope="costManagementMfe" appName="cost-management-mfe" module="./MfeOptimizationsDetails" // ... props /> ); };
Key Architecture Patterns
- Micro-Frontend Architecture: Uses Module Federation to load remote components
- Async Component Loading: Dynamic import of optimization modules
- State Management: React hooks with location-based state
- Internationalization: React-intl for multi-language support
🔄 End-to-End Data Flow
The optimization system processes data through several stages:
1. Data Ingestion
- OpenShift Metrics: Prometheus metrics → CSV export → Kafka
- RHEL Metrics: Performance Co-Pilot → Insights Engine → Kafka
2. Processing Pipeline
- ROS-OCP Backend: Processes OpenShift workload data
- Kruize Engine: Generates optimization recommendations
- ROS-RHEL Backend: Processes RHEL system recommendations
3. API Layer
- NGINX Proxy: Routes optimization requests to appropriate backends
- Koku API: Handles cost management integration
- ROS APIs: Serve optimization recommendations
🌐 External Dependencies
Core Platform Services
- Red Hat Single Sign-On (RH-SSO): Authentication and user management
- RBAC Service: Role-based access control
- Chrome Service: Platform navigation and common UI components
- Host Inventory: System metadata and registration
Data Processing Dependencies
- Apache Kafka: Message streaming and event processing
- PostgreSQL: Primary data storage
- Prometheus: Metrics collection (OpenShift)
- Performance Co-Pilot (PCP): System metrics (RHEL)
Optimization Engine Dependencies
- Kruize: Java-based optimization recommendation engine
- Insights Engine: Rule-based analysis for RHEL systems
- Kessel Inventory: Asset and configuration management
Infrastructure Dependencies
- Clowder: Red Hat's Kubernetes application platform
- OpenShift: Container orchestration
- Red Hat Insights: Platform services and integrations
Micro-Frontend Integration
The OptimizationDetails component uses Module Federation to dynamically load remote modules:
// Module Federation Configuration moduleFederation: { exposes: { './MfeOptimizationsDetails': './src/components/OptimizationsDetails', './MfeOptimizationsTable': './src/components/OptimizationsTable', './MfeOptimizationsLink': './src/components/OptimizationsLink' } }
API Integration
Primary API Endpoints
- Cost Management: /api/cost-management/v1/
- ROS OpenShift: /api/cost-management/v1/recommendations/openshift/
- ROS RHEL: /api/ros/v1/systems/
Request Flow
Frontend → NGINX → [Koku API | ROS-OCP API | ROS-RHEL API] → Database
🚀 Deployment Architecture
Container Orchestration
- OpenShift/Kubernetes: Container platform
- Clowder: Application lifecycle management
- Red Hat Quay: Container registry
Service Mesh
- Istio: Service communication and security
- Envoy: Proxy and load balancing
Monitoring & Observability
- Prometheus: Metrics collection
- Grafana: Visualization
- Jaeger: Distributed tracing
🔒 Security & Compliance
Authentication Flow
- User authenticates via Red Hat SSO
- JWT tokens passed to services
- RBAC evaluation for resource access
- Service-to-service authentication via mTLS
Data Security
- Encryption: TLS 1.3 for transport, AES-256 for storage
- Access Control: Fine-grained RBAC policies
- Audit Logging: Comprehensive audit trail
- links to