Software Architecture in Practice
10. Releasing Software
Deployments
1. Configuration management to set up your servers
2. Virtual environments that servers can be deployed to
3. Containerization to isolate host dependencies from application dependencies
Logging
Logging helps debug the application when something goes wrong
Log Levels:
- Debug - granular diagnostic information for developers
- Info - information relevant to support sta to help gure out an error
- Warn - there might be a problem that warrants attention
- Error - log an error that has occurred
- Fatal - something critical happened that you have to halt your application
Monitoring
- Monitor the host such as CPU utilization, memory utilization, disk availability
- Monitor request traffic
- Monitor the amount of errors
- Monitor response times
Maintaining Software
- Technical debt - prioritize to see where technical debt is and refactor
- Making software debuggable - low coupling and logs help debug unintended behavior