Dependencies: explicitly declaring and isolating dependencies Factor 3: Config – environment specific variables in config Factor 4: Backing Services: DB, File share etc. Factor 5: Build, Run, Release: Separate the Build and Run stages Factor 6: Stateless Processes: Mutability Factor 7: Port Binding - exporting services via port binding Factor 8: Concurrency – Horizontal scalability Factor 9: Disposability - start up and take down fast Factor 10: Dev-Prod Parity Factor 11: Logs – Centralized logging Factor 12: Admin Processes – Monitoring, or any other portal to manage resources
• Blue-Green Incremental Low Risk Releases • Dark Launches • Feature Toggles Decouple Deployment and Release • Frequent, small Releases vs Infrequent Large Releases Reducing Batch Size • BMW vs Jeep • mean time between failures (MTBF) vs mean time to restore service (MTRS) • Chaos Monkey Optimize for Resilience
Build Artifact Repo Test Servers Production Servers UAT Servers Mobile Devices Build & Release Agents - Shared Dev Machines MAC Build Agents Cloud/OnPrem Servers On Prem\Cloud\Hosted VSTS