Production Grade Checklist
This pattern lists the key items you need to consider when building a production grade system
Categories:
less than a minute
Stage | Description | Example tool |
---|---|---|
Provision | Create the infrastructure | Terraform, Cloudformation, ARM |
Install | Install the software and required binaries | Bash, Ansible, Docker, Packer |
Configure | Configure the software runtime such as certificates and ports | Chef, Ansible |
Deploy | Deploy the service, updates | ASG, Kubernetes, ECS |
High-availability | Capability to withstand service disruption | Multi-datacetner, multi-region |
Scalable | Scale up/down on demand | Auto scaling, replication |
Performance | Optimize compute, storage, networking based on benchmarks, load testing and profiling | Dynatrace, Valgrind, VisualVM |
Networking | IP allocation, firewalls, DNS | VPC, Virtual Network, NSG, security groups |
Security | Encryption, authorization, authentication, secrets management, server hardening | ACM, KMS, Vaults |
Metrics | Availability, performance, app, server, events, alerting | CloudWatch, Azure Monitor, DataDog, BigPanda |
Logs | Rotation, aggregation to centralized store, long-term availability | Elastic Stack, Sumo Logic |
Data backup | Database, cached data, replication, RTO/RPO | AWS Backup, Azure Backup, Snapshots |
Cost optimization | Appropriate SKU choice, spot/reserves instances, auto-scaling, cleaning up unused resources | Auto scaling, InfraCost |
Documentation | Code, IaC, peripheral services such as IdM, incident response playbooks | README, SharePoint, Slack, Wiki |
Tests | Automated tests for IaC | Terratest, tflint, Open Policy Agent, InSpec |
Last modified July 21, 2024: update (e2ae86c)