Under the hood
This is what is used under under the hood of InfraWeave, it is only using 5 core services.
Services
AWS | Azure | GCP | Functionality |
---|---|---|---|
DynamoDB | Azure Cosmos DB | TBD | Various Tables (deployments, modules,…), Terraform state locks |
S3 | Storage Account Blob | TBD | File storage, Terraform state |
ECS (Fargate) | Azure Container Instances | TBD | Run environment |
Cloudwatch | Azure Log Analytics | TBD | Log messages |
Lambda | Azure Functions | TBD | Reconciler, API |
Considerations
- Cost should be low and only scale with usage; no start-fees
- Reduce complexity
- The runner should have VM-level isolation
Partitioning Strategies
AWS DynamoDB:
DynamoDB partitions data based on a partition key designed to evenly distribute workloads. To ensure a balanced data and request distribution across partitioning, InfraWeave uses a high-cardinality partition key which typically consists of deployment-id combined with environment. This optimizes performance and avoids bottlenecks such as “hot partitions”.
Azure Cosmos DB:
Cosmos DB instead partitions data using a logical partition key, grouping related items logically into fewer, larger partitions. Here InfraWeave partitions by subscription id.