Lesson 2: Deployment Architecture#
Logical vs. Physical Architecture#
- Logical Architecture: The software components and how they interact (Containers, Components).
- Physical Architecture: Where those components actually run (Servers, VMs, Kubernetes Pods).
Deployment Strategies#
On-Premises#
Running on your own hardware in a data center.
- Pros: Total control, security.
- Cons: High maintenance, capital expense.
Cloud (AWS, GCP, Azure)#
Renting infrastructure from a provider.
- Pros: Pay-as-you-go, infinite scale.
- Cons: Vendor lock-in, variable costs.
Containers & Orchestration#
Packaging code with dependencies (Docker) and managing them at scale (Kubernetes).
🛠️ Sruja Perspective: Deployment Nodes#
Sruja allows you to map your logical containers to physical deployment nodes.
architecture "Web App" {
system WebApp "Web Application" {
container WebServer "Nginx"
container AppServer "Python App"
container Database "Postgres"
WebServer -> AppServer "Reverse Proxy"
AppServer -> Database "SQL"
}
// Define the deployment environment
// Define the deployment environment
deployment Production "Production" {
node AWS "AWS" {
node USEast1 "US-East-1" {
node EC2 "EC2 Instance" {
// Map the logical container to this node
containerInstance WebServer
containerInstance AppServer
}
node RDS "RDS" {
containerInstance Database
}
}
}
}
}This mapping allows you to visualize exactly where your code is running in production.