Cloud
- terraform
- make
Cloud sdks are used to interact with infrastructure such as databases, pub/sub, etc.
- (optional) Docker for building of the app container image and local running of components such as databases
- (optional) Relevant cloud sdk from AWS, Azure or GCP
Azure
Microsoft Azure have some very useful features that can be used to create a microservices platform with zero ops. Dapr architecture is a good example of this. We can simplify this further by using only ACI and Dapr where needed.
C4Context
title Simple microservices platform
System_Ext(Users, "Internet", "Users")
Boundary(az, "Azure", "Cloud") {
System(gateway, "Load balancer", "Azure Load Balancer")
Boundary(srvvpc, "Services", "VPC") {
System(microserviceA, "DAPR Microservice", "10100 App")
System(microserviceB, "DAPR Microservice", "10100 App")
System(microserviceC, "DAPR Microservice", "10100 App")
System(microserviceD, "DAPR Microservice", "10100 App")
Boundary(dapr, "Events", "PubSub") {
SystemQueue(pubsub, "PubSub", "DAPR managed")
}
}
Boundary(db, "Data", "VPC") {
SystemDb(SystemE, "Database", "App data")
}
}