Sean Treadway’s concerns of a single service
Today I attended Peter Bourgon’s talk at KubeCON 2017 on Go microservices with GoKit where he referenced a list by Sean Treadway (Chief architect at Soundcloud) about all the questions the need to be answered when building and deploying microservices. This struck me as a really good checklist to follow and use when implementing a microservice architecture.
Here are the 48 concerns for microservices Treadway identified:
- Service name
- Programming language(s)
- Programming paradigm(s)
- Architectural choices
- Integration pattern(s)
- Transport protocols
- Authentication
- Authorization
- Reporting
- ETLs
- Databases
- Caching
- Platform libraries
- Service dependencies
- CI Pipeline dependencies
- 3rd party library dependencies
- 3rd party service dependencies
- Security threat model
- License audit
- Compliance audit
- Capacity plan
- Provisioning plan
- Cost reporting plan
- Monitoring plan
- Maintenance process
- Backup and Restore process
- Secret management
- Secret rotation
- On-Call schedule
- Configuration management
- Workflow management
- Alerts
- Log aggregation
- Unhandled failure aggregation
- Operations and incident response runbooks
- API documentation
- Source Code Repository
- Humane Service Registry
- Service Discovery Registry
- Distributed Tracing Registry
- Monitoring Dashboard Registry
- Build Artifact Repository
- CI pipeline(s): Build, Test, Publish
- Integration tests
- Contract tests
- Canary
- Deploy
- Post deploy tests
It would be fantastic to add a paragraph of explanation and examples to each concern to enhance this list to act as a guide for building microservice architectures. Since this will be a bigger project (which I might not finish), I will for now just publish this list as is and hope you can get some value out of it as well.