...
Conflicting nature in service requirements
To enhance the analysis result and make it directly usable as an input to the development process, let's partition the hypothetical DC stack (hardware, firmware, software) into functional domains that have common properties to according Warren components. Two of DC functional stack domains they that have been there before Warren adoption are more influential than others, both future development- and adoption process-wise to us. These are Network and Storage. They are also tightly coupled, as decisions in one domain heavily depend on the properties of the other. If analyzed, the connection between these two domains is expressed best in the decision-making process, as two fundamental trade-offs:
Availability vs Locality
The biggest trade-off there is in multi-site computing, (thus distributed cash and storage are simultaneously good and evil at the same time ).
- Availability in this context denotes:
- Spacial - data or service is concurrently available to recipients/consumers in different locations rather than just one (many Virtual Machines using the same database that resides in distributed storage)
- Temporal continuity - data or service is kept available even in case of soft- or hardware failures ("High Availability")
Both of these aspects may seem very desirable, especially in cloud computing, but the downside is delivery speed in various forms. For example, distributed storage without high-end hardware may not have sufficient latency for storage-sensitive applications. Also, to keep the applications application availability rate high, there are software and several levels of hardware redundancy involved that which means buying additional devices and keep them constantly running. - Locality denotes the physical distance of some functional domain from compute resource (local storage vs distributed storage)
While High Availability metrics are received by involving distributed and redundant resources, locality is also not free from redundancy cost, however it is usually the one of sub-server level, so definitely less expensive. Local storage has also much lower latency, but total capacity is very limited and, as data on this storage is not available to outer devices without additional control and services, it introduces additional data duplication need in addition to one that is meant for "High Availability".
Software- vs Hardware defined control of domains
This can mostly be described as:
- SD* - slow, but flexible, automatically reconfigurable and easily portable
- HD* - high speed, low portability, automatic configuration is limited or impossible
Requirements in the network domain
There are several factors in DC's network setup that dictates what we need to think through in the Warren application development process. Such factors include:
...