Deployment and High Availability Architecture Design Process
This skill guides the deployment and high availability architecture design process for System platform and similar projects.
When to Invoke
- User needs to design deployment architecture
- User wants to containerize applications
- User needs to plan CI/CD pipelines
- User requires high availability design
- User wants to design backup and recovery solutions
- User needs to plan load balancing and failover mechanisms
Design Process
Phase 1: Environment Planning
Environment Segmentation
- Development (dev): Daily development, auto-deployment
- Testing (test): Functional/integration testing, manual trigger
- Staging: Pre-production validation, manual deployment
- Production (prod): Live environment, approval-based deployment
Deployment Strategy Definition
- Define deployment triggers for each environment
- Data strategy (reset/retain/anonymize)
- Access control policies
Deliverables:
- Environment planning document
- Environment architecture diagram
- Deployment strategy specification
Phase 2: Containerization Design
Image Management
- Harbor registry planning
- Naming convention:
{registry}/{project}/{service}:{version}-{env} - Multi-stage build strategy
Dockerfile Creation
- Base image selection (eclipse-temurin:17-jre-alpine)
- Multi-stage build optimization
- JVM parameter configuration
- Health check setup
Kubernetes Configuration
- Namespace planning (linsir-prod/test/dev)
- Deployment (replicas, resource limits, probes)
- Service (ClusterIP)
- Ingress (SSL, routing)
- HPA (auto-scaling)
Deliverables:
- Dockerfile
- K8s YAML configurations
- Image management guidelines
Phase 3: CI/CD Pipeline Design
Pipeline Architecture
- Flow: Code commit → Build → Test → Image → Deploy
- Branch strategy (develop/test/main)
- Trigger strategy (auto/manual)
Jenkins Pipeline
- Checkout stage
- Build stage (Maven)
- Test stage (unit tests)
- Code Quality stage (SonarQube)
- Build Image stage (Docker build & push)
- Deploy stage (K8s deployment)
Notification Configuration
- Build success notifications
- Build failure alerts
Deliverables:
- Jenkinsfile
- .gitlab-ci.yml (optional)
- Pipeline documentation
Phase 4: High Availability Design
Availability Targets
- System availability: 99.9%
- RTO: < 30 minutes
- RPO: < 5 minutes
Load Balancing
- Layer 4 (LVS + Keepalived)
- Layer 7 (Nginx)
- Load balancing algorithms
Failover Mechanisms
- K8s self-healing (liveness/readiness probes)
- Circuit breaker (Resilience4j)
- Database master-slave switch
- Redis sentinel mode
Health Checks
- Application health endpoints
- Database connectivity checks
- Dependency service checks
Deliverables:
- High availability architecture diagram
- Load balancing configurations
- Failover procedures
Phase 5: Backup and Recovery Design
Backup Strategy
- MySQL full backup (xtrabackup, daily)
- MySQL incremental backup (binlog, real-time)
- Redis backup (RDB + AOF)
- Configuration version control
Backup Implementation
- CronJob configuration
- Backup scripts
- Object storage upload (MinIO/S3)
Recovery Procedures
- MySQL recovery process
- Redis recovery process
- Recovery verification steps
Disaster Recovery
- Disaster level definitions
- Same-city dual-active architecture
- Disaster recovery switching procedures
Deliverables:
- Backup strategy document
- Backup scripts
- Recovery operation manual
Phase 6: Architecture Review
Review Preparation
- Organize review meeting
- Distribute review materials
- Identify reviewers
Review Execution
- Environment planning review
- Containerization review
- CI/CD process review
- High availability review
- Backup/recovery review
Issue Tracking
- Document review issues
- Create remediation plan
- Verify fixes
Review Conclusion
- Review decision (pass/fail)
- Sign-off
Deliverables:
- Deployment and HA architecture review record
- Issue tracking sheet
- Review sign-off sheet
Key Design Checklist
Containerization
- [ ] Multi-stage build implemented
- [ ] Lightweight base image selected
- [ ] JVM parameters configured
- [ ] Health probes configured
Kubernetes
- [ ] Replicas set (min 3 for prod)
- [ ] Resource limits configured
- [ ] Pod anti-affinity configured
- [ ] HPA configured
High Availability
- [ ] Multi-layer load balancing
- [ ] Keepalived VIP configured
- [ ] Circuit breaker configured
- [ ] Data replication configured
Backup/Recovery
- [ ] Full backup scheduled
- [ ] Incremental backup configured
- [ ] Recovery procedures documented
- [ ] Disaster recovery plan created
Common Pitfalls to Avoid
Single Point Deployment
- ❌ Single instance in production
- ✅ Minimum 3 replicas, cross-node deployment
No Resource Limits
- ❌ No resources specified
- ✅ Set requests and limits
No Health Checks
- ❌ No probes configured
- ✅ Configure liveness/readiness/startup
No Backup Strategy
- ❌ No data backup configured
- ✅ Full + incremental backup, regular verification
Document Templates
Deployment Architecture Template
markdown
# Deployment Architecture Design
## 1. Overview
## 2. Environment Planning
## 3. Containerization
## 4. Kubernetes Deployment
## 5. CI/CD Pipeline
## 6. Configuration Management
## 7. Deployment Monitoring
## 8. Rollback StrategyHigh Availability Architecture Template
markdown
# High Availability Architecture Design
## 1. Overview
## 2. HA Architecture Overview
## 3. Load Balancing
## 4. Failover
## 5. Data Backup and Recovery
## 6. Disaster Recovery
## 7. Monitoring and Alerting