Scalable Internet Architectures, part 2
Chapter 3 covers Mission-Critical (aka Business Critical) environments.
The five “key aspects” of a Business Critical environment are:
- High Availability
- Monitoring
- Handling release cycles
- Controlling Complexity
- Performance optimization
Monitoring
In the section on monitoring, the author mentions that SNMP (simple network management protocol) is the industry standard for monitoring of commercially available products.
If a product isn’t SNMP-capable, an organization may choose to export its monitoring info via another means, or author a new Management Information Base (MIB) to expose the info over SNMP.
While SNMP provides statistics for bottom-up monitoring, the other monitors to consider are Business metrics. For example, how many widgets are sold per second. This is ultimately what will matter to the customer, so it is important to track these as well.
Handling Release Cycles
A key point here:
The best solutions technically is not always the right solution for the business.
While it makes technical sense to have full Dev, QA, UAT, and Production environments, it may not be feasible for the business. For example, it may be worth the risk of downtime to skimp on a staging environment that doesn’t match production specs.
Controlling Complexity
For me, the key takeaway from this discussion were these points:
Independent architectural component added to a system complicate it linearly.
Dependent architecture components added complicate it exponentially.
Is a particular component adding dependencies? This is a key question to ask oneself when an architecture component is being considered, because, ultimately, the organization will need to support the resulting architecture.