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.

Passo seguinte