Skip to content

Commit 084317d

Browse files
sethsteenkensethsteenken
andauthored
Init/initial setup from dev (#1)
* Init - infra * Infra - azure yml. remove scripts * Init - readme, docs, scripts * Init - frontend source * Init - backend api source * Init - processor source * Init - file and dir cleanup --------- Co-authored-by: sethsteenken <sethsteenken@microsoft.com>
1 parent 93e1594 commit 084317d

File tree

460 files changed

+82819
-19
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

460 files changed

+82819
-19
lines changed

README.md

Lines changed: 228 additions & 19 deletions
Large diffs are not rendered by default.

TRANSPARENCY_FAQ.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# Container Migration Solution Accelerator: Responsible AI FAQ
2+
3+
## What is the Container Migration Solution Accelerator?
4+
5+
This solution accelerator is an open-source GitHub Repository designed to streamline the migration of Kubernetes workloads from various container platforms (EKS, GKE, etc.) to Azure Kubernetes Service (AKS). It automates the analysis, design, configuration transformation, and documentation generation processes to enhance the speed and accuracy of container platform migrations. The solution is built using Azure OpenAI Service, Semantic Kernel Process Framework, Model Context Protocol (MCP) servers, and Azure services integration.
6+
7+
## What can the Container Migration Solution Accelerator do?
8+
9+
The solution is designed for DevOps Engineers, Platform Engineers, and Cloud Architects who need to migrate containerized applications between different Kubernetes platforms. The solution processes source Kubernetes configurations through a multi-step pipeline:
10+
11+
1. **Analysis Phase**: Automatically discovers YAML configuration files, detects source platform types (EKS, GKE, etc.), and analyzes workload complexity and dependencies.
12+
13+
2. **Design Phase**: Generates Azure-specific architecture recommendations, suggests appropriate Azure services (AKS, Azure Container Registry, Azure Key Vault, etc.), and creates migration strategies tailored to the detected workloads.
14+
15+
3. **YAML Transformation Phase**: Converts source platform configurations to Azure-compatible YAML files, integrates Azure-specific services, and validates the transformed configurations.
16+
17+
4. **Documentation Phase**: Produces comprehensive migration documentation including architecture diagrams, implementation guides, troubleshooting documentation, and post-migration validation steps.
18+
19+
The solution utilizes multi-agent AI orchestration to ensure comprehensive analysis and recommendations, with each phase handled by specialized expert agents (EKS Expert, GKE Expert, Azure Expert, YAML Expert, Technical Writer, etc.).
20+
21+
## What is/are the Container Migration Solution Accelerator's intended use(s)?
22+
23+
This repository is to be used only as a solution accelerator following the open-source license terms listed in the GitHub repository. The intended purpose is to demonstrate how organizations can:
24+
25+
- Accelerate container platform migrations to Azure
26+
- Reduce manual effort in analyzing complex Kubernetes configurations
27+
- Generate standardized migration documentation and architecture recommendations
28+
- Ensure best practices are followed during Azure migrations
29+
- Provide a repeatable, consistent migration process
30+
31+
**Important**: The output is for informational and planning purposes only and should always be reviewed by qualified engineers before implementation. All generated configurations and recommendations must be validated in non-production environments before deployment.
32+
33+
## How was the Container Migration Solution Accelerator evaluated? What metrics are used to measure performance?
34+
35+
The solution was evaluated using multiple approaches:
36+
37+
1. **AI Safety Evaluation**: Testing for harmful content generation, groundedness of recommendations, and potential security risks in generated configurations.
38+
39+
2. **Technical Accuracy**: Validation of generated YAML configurations against Azure AKS standards and Kubernetes specifications.
40+
41+
3. **Migration Coverage**: Testing across different source platforms (EKS, GKE) and various workload types (stateless applications, databases, monitoring systems, etc.).
42+
43+
4. **Process Framework Reliability**: Evaluation of the Semantic Kernel Process Framework's error handling, retry mechanisms, and failure recovery capabilities.
44+
45+
5. **Documentation Quality**: Assessment of generated documentation for completeness, accuracy, and actionability.
46+
47+
Performance metrics include:
48+
49+
- Configuration transformation accuracy rates
50+
- Platform detection precision
51+
- Documentation completeness scores
52+
- Process execution success rates
53+
- Error classification and recovery effectiveness
54+
55+
## What are the limitations of the Container Migration Solution Accelerator? How can users minimize the Container Migration Solution Accelerator's limitations when using the system?
56+
57+
### Key Limitations
58+
59+
1. **AI-Generated Content Accuracy**: AI-generated configurations and recommendations may contain inaccuracies and must be thoroughly reviewed by qualified engineers before implementation.
60+
61+
2. **Platform Coverage**: While the solution supports major platforms (EKS, GKE to AKS), it may not handle highly customized or proprietary Kubernetes distributions.
62+
63+
3. **Complex Workload Dependencies**: The solution may not fully capture complex inter-service dependencies, custom operators, or platform-specific integrations.
64+
65+
4. **Security Context**: Generated configurations may not fully account for organization-specific security policies, compliance requirements, or network restrictions.
66+
67+
5. **Language Support**: Currently available in English only and optimized for standard Kubernetes YAML configurations.
68+
69+
### Minimizing Limitations
70+
71+
1. **Human Validation**: Always have qualified Kubernetes and Azure engineers review all generated configurations and recommendations.
72+
73+
2. **Staged Migration**: Implement a phased migration approach, starting with non-critical workloads to validate the process.
74+
75+
3. **Testing Environment**: Deploy all generated configurations in a testing environment that mirrors production before actual migration.
76+
77+
4. **Custom Validation**: Supplement the solution with organization-specific validation rules and security scanning.
78+
79+
5. **Expert Review**: Engage with Azure specialists and Kubernetes experts to review migration plans and architecture recommendations.
80+
81+
6. **Backup and Rollback**: Ensure robust backup and rollback procedures are in place before executing migrations.
82+
83+
You can find more information on AI-generated content accuracy at [https://aka.ms/overreliance-framework](https://aka.ms/overreliance-framework).
84+
85+
## What operational factors and settings allow for effective and responsible use of the Container Migration Solution Accelerator?
86+
87+
### Configuration Parameters
88+
89+
Users can customize various parameters to improve accuracy and relevance:
90+
91+
1. **AI Model Settings**: Temperature, max tokens, and system prompts for different expert agents can be adjusted through environment variables.
92+
93+
2. **Agent Behavior**: Each expert agent (Azure Expert, EKS Expert, YAML Expert, etc.) has configurable prompts that can be tailored to organizational standards.
94+
95+
3. **Validation Rules**: Custom validation logic can be implemented to check against organization-specific compliance requirements.
96+
97+
4. **Output Formats**: Documentation templates and YAML transformation rules can be customized to match organizational standards.
98+
99+
5. **MCP Plugin Configuration**: Model Context Protocol servers can be configured for specific Azure integrations and data sources.
100+
101+
### Best Practices
102+
103+
1. **Environment Isolation**: Run the solution in isolated environments with appropriate access controls.
104+
105+
2. **Audit Logging**: Enable comprehensive logging and telemetry to track all AI-generated recommendations and decisions.
106+
107+
3. **Regular Updates**: Keep the solution updated with the latest Azure service definitions and Kubernetes best practices.
108+
109+
4. **Feedback Loop**: Implement mechanisms to capture feedback from migration outcomes to improve future recommendations.
110+
111+
5. **Security Scanning**: Integrate security scanning tools to validate generated configurations against security policies.
112+
113+
6. **Documentation Review**: Establish processes for technical review of all generated documentation before use.
114+
115+
### Important Security Considerations
116+
117+
- Never include sensitive data (secrets, keys, passwords) in source configurations processed by the solution
118+
- Review all generated configurations for potential security misconfigurations
119+
- Validate network policies and access controls in generated Azure configurations
120+
- Ensure compliance with organizational data handling and AI usage policies
121+
122+
Please refer to the latest Azure and Kubernetes documentation for detailed configuration guidance, and consult with your Microsoft account team or Azure specialists for implementation assistance.
123+
124+
## Additional Resources
125+
126+
- [Technical Architecture Documentation](docs/TechnicalArchitecture.md)
127+
- [Process Framework Implementation Guide](docs/ProcessFrameworkGuide.md)
128+
- [Multi-Agent Orchestration Approach](docs/MultiAgentOrchestration.md)
129+
- [Azure OpenAI Responsible AI Guidelines](https://docs.microsoft.com/en-us/azure/cognitive-services/openai/overview)
130+
- [Kubernetes Security Best Practices](https://kubernetes.io/docs/concepts/security/)
131+
- [Azure Kubernetes Service Documentation](https://docs.microsoft.com/en-us/azure/aks/)

azure.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
name: container-migration-solution-accelerator
2+
metadata:
3+
template: container-migration-solution-accelerator@1.0
4+
5+
requiredVersions:
6+
azd: '>=1.18.2'

docs/AgenticArchitecture.md

Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
# Agentic Architecture - Container Migration Solution Accelerator
2+
3+
Based on your actual implementation, here's the comprehensive agentic architecture that mirrors the style of your reference image:
4+
5+
## Architecture Overview
6+
7+
```mermaid
8+
graph TB
9+
subgraph "Entry Layer"
10+
WEB[Web App/Queue]
11+
SERVICE[Migration Service]
12+
end
13+
14+
subgraph "Process Engine"
15+
PROC[Process Orchestrator<br/>Semantic Kernel]
16+
end
17+
18+
subgraph "Migration Steps"
19+
ANALYSIS[Analysis Step<br/>Platform Discovery]
20+
DESIGN[Design Step<br/>Azure Architecture]
21+
YAML[YAML Step<br/>Configuration Transform]
22+
DOCS[Documentation Step<br/>Report Generation]
23+
end
24+
25+
subgraph "AI Agents (7 Specialists)"
26+
AGENTS[Multi-Agent System<br/>• Technical Architect<br/>• Azure Expert<br/>• EKS/GKE Experts<br/>• QA Engineer<br/>• Technical Writer<br/>• YAML Expert]
27+
end
28+
29+
subgraph "Tool Layer"
30+
MCP[MCP Servers<br/>• Blob Storage<br/>• Microsoft Docs<br/>• DateTime Utils]
31+
end
32+
33+
subgraph "Storage Layer"
34+
STORAGE[Azure Services<br/>• Blob Storage<br/>• Cosmos DB<br/>• OpenAI GPT o3]
35+
end
36+
37+
%% Main Flow
38+
WEB --> SERVICE
39+
SERVICE --> PROC
40+
PROC --> ANALYSIS
41+
ANALYSIS --> DESIGN
42+
DESIGN --> YAML
43+
YAML --> DOCS
44+
45+
%% AI Integration
46+
ANALYSIS -.-> AGENTS
47+
DESIGN -.-> AGENTS
48+
YAML -.-> AGENTS
49+
DOCS -.-> AGENTS
50+
51+
%% Tool Access
52+
AGENTS -.-> MCP
53+
MCP -.-> STORAGE
54+
55+
%% Styling for better readability
56+
classDef entryLayer fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#000
57+
classDef processLayer fill:#fff3e0,stroke:#f57c00,stroke-width:3px,color:#000
58+
classDef stepLayer fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#000
59+
classDef agentLayer fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#000
60+
classDef toolLayer fill:#fce4ec,stroke:#c2185b,stroke-width:3px,color:#000
61+
classDef storageLayer fill:#e1f5fe,stroke:#0288d1,stroke-width:3px,color:#000
62+
63+
class WEB,SERVICE entryLayer
64+
class PROC processLayer
65+
class ANALYSIS,DESIGN,YAML,DOCS stepLayer
66+
class AGENTS agentLayer
67+
class MCP toolLayer
68+
class STORAGE storageLayer
69+
```
70+
71+
## Agent Specialization by Phase
72+
73+
### Analysis Phase Agents
74+
75+
- **Technical Architect**: Leads overall analysis strategy and coordination
76+
- **EKS Expert**: Identifies AWS EKS-specific patterns and configurations
77+
- **GKE Expert**: Identifies Google GKE-specific patterns and configurations
78+
79+
### Design Phase Agents
80+
81+
- **Technical Architect**: Defines migration architecture patterns
82+
- **Azure Expert**: Designs Azure service mappings and optimizations
83+
- **EKS Expert**: Provides source platform context for AWS workloads
84+
- **GKE Expert**: Provides source platform context for GCP workloads
85+
86+
### YAML Conversion Phase Agents
87+
88+
- **YAML Expert**: Performs configuration transformations and syntax optimization
89+
- **Azure Expert**: Ensures Azure service integration and compliance
90+
- **QA Engineer**: Validates converted configurations and tests
91+
- **Technical Writer**: Documents conversion decisions and generates reports
92+
93+
### Documentation Phase Agents
94+
95+
- **Technical Architect**: Provides architectural documentation and migration summary
96+
- **Azure Expert**: Documents Azure-specific configurations and optimizations
97+
- **EKS/GKE Experts**: Document source platform analysis and transformation logic
98+
- **QA Engineer**: Provides validation reports and testing documentation
99+
- **Technical Writer**: Creates comprehensive migration documentation
100+
101+
## Data Flow Architecture
102+
103+
### Input Processing
104+
105+
1. **Queue Service** receives migration requests from web app or direct API
106+
2. **Migration Service** processes queue messages and initiates migration process
107+
3. **Process Orchestrator** manages step-by-step execution with event routing
108+
109+
### Step Execution Pattern
110+
111+
Each step follows this pattern:
112+
113+
![execution pattern](./images/readme/execution_pattern.png)
114+
115+
### Storage Integration
116+
117+
- **Source Files**: Read from Azure Blob Storage via MCP Blob Operations
118+
- **Working Files**: All processing files managed through Azure Blob Storage
119+
- **Output Files**: Generated configurations and reports saved to Azure Blob Storage
120+
- **Telemetry**: Agent interactions and process metrics stored in Azure Cosmos DB
121+
122+
### MCP Server Integration
123+
124+
All agents have access to Model Context Protocol (MCP) servers via Semantic Kernel plugin:
125+
126+
- **Blob Operations**: File reading/writing to Azure Blob Storage
127+
- **Microsoft Docs**: Azure documentation lookup and best practices
128+
- **DateTime Utilities**: Timestamp generation and time-based operations
129+
130+
## Key Architectural Principles
131+
132+
### Single Responsibility
133+
134+
Each step has a focused objective:
135+
136+
- Analysis: Platform detection and file discovery
137+
- Design: Azure architecture and service mapping
138+
- YAML: Configuration transformation and validation
139+
- Documentation: Comprehensive report generation
140+
141+
### Event-Driven Orchestration
142+
143+
Steps communicate through Semantic Kernel events:
144+
145+
- `StartMigration` → Analysis Step
146+
- `AnalysisCompleted` → Design Step
147+
- `DesignCompleted` → YAML Step
148+
- `YamlCompleted` → Documentation Step
149+
150+
### Multi-Agent Collaboration
151+
152+
Within each step, specialized agents collaborate through GroupChat orchestration:
153+
154+
- Structured conversation patterns
155+
- Domain expertise contribution
156+
- Consensus building on decisions
157+
- Quality validation and review
158+
159+
### Tool-Enabled Intelligence
160+
161+
Agents access external capabilities through MCP servers:
162+
163+
- Cloud storage integration
164+
- Documentation lookup
165+
- Time-based operations
166+
167+
### Observability & Monitoring
168+
169+
Comprehensive tracking throughout the process:
170+
171+
- Agent interaction telemetry
172+
- Process execution metrics
173+
- Error handling and recovery
174+
- Performance optimization data
175+
176+
## File Location Mapping
177+
178+
```text
179+
src/
180+
├── main_service.py # Queue Service Entry Point
181+
├── services/migration_service.py # Migration Orchestration
182+
├── libs/processes/
183+
│ └── aks_migration_process.py # Process Framework Definition
184+
├── libs/steps/
185+
│ ├── analysis_step.py # Analysis Step Implementation
186+
│ ├── design_step.py # Design Step Implementation
187+
│ ├── yaml_step.py # YAML Step Implementation
188+
│ └── documentation_step.py # Documentation Step Implementation
189+
├── libs/steps/orchestration/
190+
│ ├── analysis_orchestration.py # Analysis Agent Orchestration
191+
│ ├── design_orchestration.py # Design Agent Orchestration
192+
│ ├── yaml_orchestration.py # YAML Agent Orchestration
193+
│ └── documentation_orchestration.py # Documentation Agent Orchestration
194+
├── agents/
195+
│ ├── technical_architect/agent_info.py
196+
│ ├── azure_expert/agent_info.py
197+
│ ├── eks_expert/agent_info.py
198+
│ ├── gke_expert/agent_info.py
199+
│ ├── qa_engineer/agent_info.py
200+
│ ├── technical_writer/agent_info.py
201+
│ └── yaml_expert/agent_info.py
202+
└── plugins/mcp_server/
203+
├── MCPBlobIOPlugin.py # Azure Blob Storage MCP Server
204+
├── MCPMicrosoftDocs.py # Microsoft Docs MCP Server
205+
└── MCPDatetimePlugin.py # DateTime Utilities MCP Server
206+
```
207+
208+
## Summary
209+
210+
This architecture implements a sophisticated agentic system that combines:
211+
212+
- **Semantic Kernel Process Framework** for structured workflow execution
213+
- **Multi-Agent GroupChat Orchestration** for domain expertise collaboration
214+
- **Model Context Protocol (MCP)** for tool integration and external system access
215+
- **Azure Cloud Services** for scalable storage and data management
216+
- **Event-Driven Architecture** for loose coupling and reliability
217+
218+
The result is a robust, scalable, and extensible migration solution that leverages the collective intelligence of specialized AI agents working in concert to solve complex container migration challenges.

docs/AzureAIModelQuotaSettings.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# How to Check & Update AI Model Quota
2+
3+
Please follow [quota check instructions guide](./QuotaCheck.md) to check quota availability by region.
4+
5+
1. **Navigate** to the [Azure AI Foundry portal](https://ai.azure.com/).
6+
2. **Select** the AI Project associated with this accelerator.
7+
3. **Go to** the `Management Center` from the bottom-left navigation menu.
8+
4. Select `Request Quota`
9+
5. Request More Quota with fill up the form for 'Request for Quota Increase' or delete any unused model deployments as needed.

docs/AzureAccountSetup.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
## Azure account setup
2+
3+
1. Sign up for a [free Azure account](https://azure.microsoft.com/free/) and create an Azure Subscription.
4+
2. Check that you have the necessary permissions:
5+
* Your Azure account must have `Microsoft.Authorization/roleAssignments/write` permissions, such as [Role Based Access Control Administrator](https://learn.microsoft.com/azure/role-based-access-control/built-in-roles#role-based-access-control-administrator-preview), [User Access Administrator](https://learn.microsoft.com/azure/role-based-access-control/built-in-roles#user-access-administrator), or [Owner](https://learn.microsoft.com/azure/role-based-access-control/built-in-roles#owner).
6+
* Your Azure account also needs `Microsoft.Resources/deployments/write` permissions on the subscription level.
7+
8+
You can view the permissions for your account and subscription by following the steps below:
9+
- Navigate to the [Azure Portal](https://portal.azure.com/) and click on `Subscriptions` under 'Navigation'
10+
- Select the subscription you are using for this accelerator from the list.
11+
- If you try to search for your subscription and it does not come up, make sure no filters are selected.
12+
- Select `Access control (IAM)` and you can see the roles that are assigned to your account for this subscription.
13+
- If you want to see more information about the roles, you can go to the `Role assignments`
14+
tab and search by your account name and then click the role you want to view more information about.

0 commit comments

Comments
 (0)