Note: This project is under active development and may have issues and limitations. We welcome contributions and feedback!
- Overview
- Architecture
- Core Components
- Quick Start
- Local Development
- Services
- Documentation
- Contributing
- Community
- License
Persys Cloud is an open-source platform that provides DevOps/SRE as a Service with automated workload orchestration across both Kubernetes clusters and Docker-based Linux nodes. It simplifies the deployment and management of containerized applications through intelligent scheduling and multi-cloud infrastructure management.
Persys Cloud is a comprehensive platform that offers:
- Hybrid Workload Orchestration: Manage workloads across Kubernetes clusters and Docker-based Linux nodes
- Intelligent Scheduling: Automated workload placement and resource optimization
- Multi-cloud Infrastructure Management: Unified management across AWS, Azure, GCP, and on-premises
- DevOps/SRE Automation: Streamlined CI/CD pipelines and operational tasks
- Secure Agent Communication: mTLS-based secure communication between components
- Real-time Monitoring: Container status monitoring and health checks
Persys Cloud uses a distributed architecture with secure agent-based communication:
- API Gateway: Main entry point for all API requests with authentication and routing
- Prow Scheduler: Intelligent workload scheduler that manages container deployment
- Persys Agent: Lightweight agent deployed on Docker-based Linux nodes for workload execution
- Cloud Management: Multi-cloud infrastructure provisioning and management
- Persys CFSSL: Certificate authority for secure mTLS communication
- ETCD: Distributed key-value store for configuration and state management
- CoreDNS: Service discovery and DNS management
Here's how requests flow through the system:
Have suggestions or found issues? Please open an issue with your feedback!
The intelligent workload orchestrator that:
- Manages workload scheduling across nodes
- Handles container lifecycle management
- Provides real-time monitoring and status updates
- Implements secure mTLS communication with agents
- Stores configuration and state in ETCD
Lightweight agents deployed on Docker-based Linux nodes that:
- Execute container workloads (Docker containers, Docker Compose, Git-based deployments)
- Report node status and resource utilization
- Handle secure communication with the scheduler
- Manage local container lifecycle
- Support multiple workload types:
docker-container: Single container deploymentsdocker-compose: Multi-container applicationsgit-compose: Git repository-based deployments
Multi-cloud infrastructure management service that:
- Provisions and manages Kubernetes clusters
- Handles cloud provider integrations (AWS, Azure, GCP)
- Manages infrastructure as code with Terraform
- Provides unified cloud resource management
Centralized API management that:
- Provides RESTful APIs for all platform operations
- Handles authentication and authorization
- Routes requests to appropriate services
- Manages API versioning and documentation
- Docker and Docker Compose
- Kubernetes CLI (kubectl) - for Kubernetes operations
- Git
git clone https://github.com/persys-dev/persys-cloud.git
cd persys-cloudmake upThis initializes the complete platform in a local Docker environment using docker-compose.
make kindThis builds all Docker images locally, generates Kubernetes deployment files, and deploys to a Kind cluster.
chmod +x init.sh
./init.shOnce deployed, you can interact with Persys Cloud using:
- REST API: Direct HTTP requests to the API Gateway
- CLI Client: Command-line interface (when available)
- Postman: API testing and automation
- Register Nodes: Add Docker-based Linux nodes to the cluster
- Create Workload: Define your container workload specification
- Schedule Workload: Submit workload to the Prow Scheduler
- Monitor: Track deployment status and container health
- Scale: Automatically scale workloads based on demand
-
Clone and Setup:
git clone https://github.com/persys-dev/persys-cloud.git cd persys-cloud -
Start Services:
# Using Docker Compose make up # Or using Kind make kind
-
Access Services:
- API Gateway:
http://localhost:8551 - Prow Scheduler:
http://localhost:8084 - Cloud Management:
http://localhost:9090 - ETCD:
http://localhost:2379 - CoreDNS:
http://localhost:53
- API Gateway:
- Make changes to the codebase
- Run tests:
make test - Build images:
make build - Deploy changes:
make deploy - Verify functionality
To develop or test the Persys Agent:
# Build the agent
cd prow
make build
# Run the agent locally
make run
# Test agent communication
curl -X POST http://localhost:8084/api/v1/nodes/register \
-H "Content-Type: application/json" \
-d '{"nodeId":"test-node","ipAddress":"localhost","agentPort":8080}'Persys Cloud consists of several microservices, each with its own README and documentation:
- API Gateway: Main entry point for all API requests with authentication
- Prow Scheduler: Intelligent workload orchestration and scheduling
- Cloud Management: Multi-cloud infrastructure management
- Persys CFSSL: Certificate management and PKI for mTLS
- Persys Operator: Place Holder
- Persys Agent: Place Holder
- Persys CLI: Place Holder
- Infrastructure: Terraform configurations, Kubernetes manifests, and deployment scripts
- Documentation: Comprehensive documentation and guides
Each service directory contains detailed README files explaining the component's purpose, architecture, and ownership.
Comprehensive documentation is available in the docs/ directory:
- Getting Started: Step-by-step guide for new users
- How It Works: Detailed explanation of system components
- Installation: Installation and deployment instructions
- Architecture: System architecture and design decisions
- Contributing: Guidelines for contributors
We welcome contributions from the community! Here's how you can help:
- π Report Bugs: Open an issue with detailed bug reports
- π‘ Feature Requests: Suggest new features and improvements
- π§ Code Contributions: Submit pull requests with code changes
- π Documentation: Help improve our documentation
- π§ͺ Testing: Test features and report issues
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Add tests for new functionality
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Go coding standards and best practices
- Add tests for new functionality
- Update documentation for any changes
- Ensure all tests pass before submitting PRs
- Use conventional commit messages
Join our growing community of developers and contributors:
- Slack: Join our Slack workspace
- GitHub Issues: Report bugs and request features
- GitHub Discussions: Join discussions
- Be respectful and inclusive
- Help others learn and grow
- Share knowledge and best practices
- Provide constructive feedback
- Follow the Code of Conduct
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with love by the Persys Cloud community
- Powered by open-source technologies including Docker, Kubernetes, ETCD, and CoreDNS
- Inspired by the Cloud Native Computing Foundation (CNCF) ecosystem
Persys Cloud - Simplifying DevOps/SRE with intelligent workload orchestration.
For more information, visit https://github.com/persys-dev/persys-cloud

