EffiScale is a sophisticated, self-adaptive framework for optimizing container scaling in cloud environments. Built on a microservices architecture, it provides intelligent resource management through comprehensive monitoring, analysis, and execution capabilities.
- EffiScale/
- src/
- core/ (Core Framework Components)
- config.py (Configuration Management)
- exceptions.py (Custom Exceptions)
- utils.py (Utility Functions)
- monitoring/ (Monitoring System)
- collector.py (Metric Collection)
- metrics.py (Metric Definitions)
- prometheus.py (Prometheus Integration)
- analysis/ (Analysis Engine)
- pattern_analyzer.py
- threshold_manager.py
- workload_predictor.py
- resource_optimizer.py
- controllers/ (Control System)
- elastic_controller.py
- decision_maker.py
- consensus_manager.py
- state_manager.py
- knowledge/ (Knowledge Base)
- knowledge_base.py
- knowledge_validator.py
- pattern_library.py
- execution/ (Execution Engine)
- scaling_executor.py
- container_manager.py
- rollback_manager.py
- api/ (API Layer)
- routes.py
- models.py
- validators.py
- storage/ (Storage Layer)
- metric_storage.py
- database.py
- core/ (Core Framework Components)
- src/
- Configuration management and system bootstrapping
- Exception handling and error management
- Utility functions and common operations
- Real-time metric collection with Prometheus integration
- Custom metric definitions and performance monitoring
- Resource utilization tracking and analysis
- Pattern analysis and detection algorithms
- Dynamic threshold management and adjustment
- Workload prediction and resource optimization
- Elastic scaling control mechanisms
- Intelligent decision making logic
- Consensus and state management
- Pattern storage and retrieval systems
- Knowledge validation and verification
- Pattern library management and updates
- Scaling action execution and coordination
- Container lifecycle management
- Rollback mechanism implementation
- RESTful API endpoints
- Data models and schemas
- Request/response validation
- Metric data persistence
- Database operations and management
git clone https://github.com/ahmadpanah/EffiScale.git
pip install -r requirements.txt
docker-compose -f docker/docker-compose.yml build
from effiscale.core import EffiScale
# Initialize and start EffiScale
effiscale = EffiScale(config_path="config.yaml")
effiscale.start()
monitoring:
collector:
interval: 10
metrics: [cpu_usage, memory_usage, network_io]
analysis:
thresholds:
cpu: 80
memory: 75
prediction:
window: 300
algorithm: "lstm"
execution:
scaling:
min_instances: 1
max_instances: 10
cooldown: 300
docker-compose -f docker/docker-compose.yml up -d
docker-compose -f docker/docker-compose.yml ps
docker-compose -f docker/docker-compose.yml logs -f
- Monitoring
GET /api/v1/metrics
- Get system metricsGET /api/v1/status
- Get system status
- Control
POST /api/v1/scale
- Trigger scalingGET /api/v1/decisions
- Get scaling decisions
- Analysis
GET /api/v1/patterns
- Get scaling patternsPOST /api/v1/patterns
- Create new pattern
- Intelligent Scaling
- Predictive scaling capabilities
- Pattern-based decision making
- Resource optimization
- Workload analysis
- High Availability
- Fault tolerance mechanisms
- Automatic recovery procedures
- State persistence
- Rollback capabilities
- Monitoring & Analytics
- Real-time metric tracking
- Historical data analysis
- Pattern recognition
- Performance monitoring
- Implementation guides:
/examples
- Fork repository
- Create feature branch
- Commit changes
- Push to branch
- Create Pull Request
MIT License - see LICENSE
- Custom Metric Support
- Multi-cluster Management
- Advanced Analytics Dashboard
- Auto-tuning Capabilities
- Seyed Hossein Ahmadpanah - h.ahmadpanah@iau.ac.ir