There are a number of specific concerns that must be accounted for when you're considering architectural design: - **Availability** targets should be set and designed for based on organisations requirements balanced against the other considerations - **Resilience**, which is a component of availability that determines what type and level of potential disruptions the service or system can handle without an availability issue. - **Cost**, including financial, staffing, and other costs - **Responsiveness**, or the ability of the system or service to respond in a timely manner as desired or required to function as designed. - **Scalability** either vertically (bigger) or horizontally (more) as needed to support avail-ability, resilience, and responsiveness goals. - **Ease of deployment**, which describes the complexity and work required to deploy the solution that often factors into initial costs and that may have impacts on ongoing costs if the system or service is frequently redeployed. - **Risk transference** through insurance, contracts, or other means is assessed as part of architectural design and cost modelling. - **Ease of recovery** is considered part of availability, resilience, and ease of deployment as complex solutions may have high costs that mean additional investments should be made to avoid recovery scenarios. - **Patch availability** and vendor support are both commonly assessed to determine both how often patching will be required and if the vendor is appropriately supporting the solution. - **Inability to patch** is a consideration when high availability is required and other factors like scalability do not allow for the system to be patched without downtime or other interruptions. - **Power consumption** drives ongoing costs and is considered part of datacenter design. - **Compute requirements** also drive ongoing costs in the cloud and up-front and recurring replacement costs for on-premises solutions. ### [[Storage Resiliency]]