Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qovery/qovery-migration-ai-agent
Qovery Migration AI Agent to Automate and Ease the Migration From Cloud Providers with Qovery
https://github.com/qovery/qovery-migration-ai-agent
ai ai-agent aws azure cloud gcp heroku qovery scaleway
Last synced: 17 days ago
JSON representation
Qovery Migration AI Agent to Automate and Ease the Migration From Cloud Providers with Qovery
- Host: GitHub
- URL: https://github.com/qovery/qovery-migration-ai-agent
- Owner: Qovery
- License: mit
- Created: 2024-09-12T13:33:33.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-05T13:01:58.000Z (about 1 month ago)
- Last Synced: 2024-10-15T20:40:53.951Z (24 days ago)
- Topics: ai, ai-agent, aws, azure, cloud, gcp, heroku, qovery, scaleway
- Language: TypeScript
- Homepage: https://migrate.qovery.com
- Size: 1.14 MB
- Stars: 11
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Qovery Migration AI Agent
Qovery Migration AI Agent is an app designed to facilitate the migration of applications from various platforms to Qovery. Currently, it supports migrating Heroku applications to AWS, GCP, or Scaleway using Qovery.
[![demo video](assets/video.png)](https://www.loom.com/share/0045d92738f0445aac1cd01766dbbdee)
## Why this tool?
Migrating applications from one platform to another can be a time-consuming, error-prone process and super costly $$$. Qovery Migration AI Agent aims to simplify this process by automating the generation of Terraform configurations, Dockerfiles, and other necessary files for deploying applications on Qovery.
## Features
> Note: This project is still in development and may not support all features yet.
- Migrate Heroku/Render applications to AWS, GCP, Azure or Scaleway via Qovery
- Generate Terraform configurations for Qovery deployments
- Create Dockerfiles for migrated applications## Structure
The project is structured as follows:
- [CLI](cli): Contains the command-line interface for the migration agent (can be used on your local machine)
- [Web](web): Contains the web interface for the migration agent (can be deployed on a server)### Environment Variables
The following environment variables are required to run the application:
| Environment Variable | Description | Required |
|----------------------|------------------------------------------|--------------------|
| `CLAUDE_API_KEY` | Claude AI API key | Yes |
| `HEROKU_API_KEY` | Heroku API key | Yes if you used it |
| `GITHUB_TOKEN` | GitHub token to avoid being rate limited | No |## How it works
The migration agent uses the Heroku (or other provider) API to fetch information about the application to be migrated. It then generates Terraform configurations for deploying the application on Qovery. The generated Terraform configurations include the necessary resources such as the application, environment, database, and other services.
```mermaid
graph TD
A[Start] --> B[AI Migration Agent fetches app data from Heroku API]
B --> C[AI Migration Agent filters out sensitive data]
C --> D[AI Migration Agent sends non-sensitive app data to Claude AI API]
D --> E[Claude AI generates Dockerfiles]
E --> F[AI Migration Agent receives Dockerfiles]
F --> G[AI Migration Agent sends non-sensitive app data to Claude AI API]
G --> H[Claude AI generates Qovery Terraform files]
H --> I[AI Migration Agent receives Terraform files]
I --> J[AI Migration Agent reintegrates sensitive data as Terraform secrets]
J --> K[Validate Terraform manifest]
K --> L{Is manifest valid?}
L -->|Yes| M[AI Migration Agent generates output for user review]
L -->|No| N[Auto-remediation process]
N --> O[Claude AI fixes Terraform errors]
O --> K
M --> P[User reviews and uses output]
P --> Q[End]subgraph "Data Sources"
R[Heroku API]
S[GitHub Examples]
endsubgraph "Security Measure"
T[Sensitive data kept locally]
endB -.-> R
H -.-> S
C -.-> T
J -.-> T```
## Security
- This application does not store any user credentials.
- All code is open-source and can be audited.
- For more information, see the Security page in the application.## Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for more details.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Support
If you encounter any issues or have questions, please file an issue on the GitHub repository or contact [email protected].