Princípios de conceção da fiabilidade
A criação de uma aplicação fiável na cloud é diferente da criação de aplicações tradicional. Historicamente, pode ter adquirido níveis de hardware redundante de gama superior para minimizar a possibilidade de uma plataforma inteira de aplicações falhar.
Na nuvem, reconhecemos que as falhas acontecem. Em vez de tentar evitar simplesmente as falhas, o objetivo é minimizar os efeitos da falha de um único componente.
Para avaliar a sua carga de trabalho utilizando os princípios encontrados no Quadro de Well-Architected Azure, consulte a Microsoft Azure Well-Architected Revisão.
Os seguintes princípios de conceção prevêem:
- Contexto para perguntas
- Por que um certo aspeto é importante
- Como um aspeto é aplicável à Fiabilidade
Estes princípios críticos de conceção são usados como lentes para avaliar a fiabilidade de uma aplicação implantada no Azure. Estas lentes fornecem um quadro para as questões de avaliação da aplicação.
Design para requisitos de negócio
A fiabilidade é um conceito subjetivo. Para que um pedido seja adequadamente fiável, deve refletir os requisitos de negócio que o rodeiam.
Por exemplo, uma aplicação crítica da missão com um 99.999%
acordo de nível de serviço (SLA) requer um nível de fiabilidade mais elevado do que outra aplicação com um SLA de 95%
.
As implicações de custos são inevitáveis quando se introduz uma maior fiabilidade e elevada disponibilidade. Esta compensação deve ser cuidadosamente ponderada.
Design para falha
O fracasso é impossível de evitar num ambiente altamente distribuído e multi-inquilino como o Azure.
Antecipando falhas, desde componentes individuais a regiões inteiras de Azure, pode desenvolver uma solução de forma resiliente para aumentar a fiabilidade.
Observar a saúde da aplicação
Antes de atenuar os problemas que impactam a fiabilidade da aplicação, deve primeiro detetar estes problemas.
Ao monitorizar o funcionamento de uma aplicação relativa a um estado saudável, é possível detetar e prever problemas de fiabilidade.
A monitorização permite-lhe tomar medidas rápidas e corretivas.
Automação de unidade
Uma das principais causas do tempo de inatividade da aplicação é o erro humano devido à implantação de software insuficientemente testado ou através de uma configuração errada.
Para minimizar a possibilidade e consequência dos erros humanos, é vital lutar pela automação em todos os aspetos de uma solução em nuvem.
A automatização melhora:
- Fiabilidade
- Teste automatizado
- Implementação
- Gestão
Estrutura para autorrecuperação
A auto-cura descreve a capacidade de um sistema lidar automaticamente com falhas. Falhas de manuseamento acontecem através de protocolos de remediação pré-definidos. Estes protocolos ligam-se aos modos de falha dentro da solução.
É um conceito avançado que requer um alto nível de maturidade do sistema com monitorização e automação.
Desde o início, a auto-cura deve ser uma aspiração para maximizar a fiabilidade.
Design para escala-out
Scale-out é um conceito que se centra na capacidade de um sistema responder à procura através do crescimento horizontal. À medida que o tráfego aumenta, mais unidades de recursos são adicionadas em paralelo, em vez de aumentar a dimensão dos recursos existentes.
Através de unidades de escala, um sistema pode lidar com aumentos de tráfego esperados e inesperados, essenciais para a fiabilidade geral.
As unidades de escala reduzem ainda mais os efeitos de uma única falha de recursos.