O que é disponibilidade de aplicativos?

A disponibilidade do aplicativo é a quantidade de tempo que um aplicativo funciona.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Descrever disponibilidade de aplicativos e comparar com a confiabilidade
  • Entender o tempo de atividade, o tempo de inatividade e os níveis de disponibilidade
  • Explicar os componentes da arquitetura de alta disponibilidade

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

O que é disponibilidade de aplicativos?

A disponibilidade de aplicativos mede a quantidade de tempo que um aplicativo está operacional. Um aplicativo está disponível quando está funcionando conforme o esperado e atendendo às solicitações dos usuários. Um aplicativo não está disponível se não estiver funcionando ou não estiver acessível aos usuários finais.

Para aplicativos web, maximizar a disponibilidade é uma parte importante do desenvolvimento. A disponibilidade de aplicativos pode ser aumentada por uma combinação de otimização de infraestrutura de back-end, otimização de front-end e mitigação de ataques.

Os usuários têm grandes expectativas com relação à disponibilidade de aplicativos web. O tempo de inatividade pode ter um grande impacto na receita e na reputação. Pense no horário em que uma loja fica "aberta": se uma loja fica fechada em horários inesperados, os clientes irão para outro lugar. Da mesma forma, os usuários incapazes de obter o serviço de que precisam de um aplicativo de software deixarão de usar esse aplicativo, o que resulta em menos clientes e perda de receita.

Para aplicativos business-to-business (B2B), a disponibilidade geralmente é incluída como parte de um contrato de nível de serviço (SLA), expressa como uma porcentagem de tempo que se espera que o aplicativo esteja em funcionamento. Em tais casos, os desenvolvedores de aplicativos têm a obrigação contratual de fornecer um determinado nível de disponibilidade a seus clientes.

Confiabilidade versus disponibilidade de aplicativos

"Disponibilidade" é um conceito que se aplica a sistemas e serviços de todos os tipos, desde servidores a aplicativos e APIs. É medida como porcentagem: um aplicativo que fica inativo por 36 segundos a cada hora tem 99% de disponibilidade.

Confiabilidade se refere à capacidade de um sistema ou aplicativo fornecer serviços conforme o esperado, sem erros, durante um período de tempo. Um aplicativo pode estar disponível e ainda não ser confiável, se tiver um desempenho lento ou produzir resultados inesperados e incorretos. Voltando à analogia anterior, uma loja indisponível está fechada; uma loja não confiável está aberta, mas as prateleiras podem ter itens nos lugares errados.

Calcular os níveis de disponibilidade de aplicativos

A medição da disponibilidade de aplicativos geralmente é calculada ao longo de um ano civil. Esta tabela mostra quanto tempo de inatividade um aplicativo com vários níveis de disponibilidade terá em um período de 365 dias. (O tempo de inatividade é cumulativo e pode ocorrer ao longo de vários períodos diferentes ou de uma só vez).

Disponibilidade Tempo total de inatividade por ano
95% 18 dias e 6 horas
99% 3 dias, 15 horas e 36 minutos
99,9% 8 horas, 45 minutos e 36 segundos
99,99% 52 minutos e 34 segundos
99,999% ("cinco noves") 5 minutos e 15 segundos

O que é tempo de atividade? O que é tempo de inatividade?

O tempo de atividade ocorre quando um aplicativo é executado conforme o esperado. O tempo de inatividade ocorre quando um dispositivo ou serviço não está operacional. Em muitos contextos, tempo de atividade e disponibilidade são sinônimos.

O que afeta a disponibilidade de aplicativos web ?

A internet é complexa e muitos fatores diferentes podem afetar a disponibilidade e o desempenho de um aplicativo web. Alguns dos fatores estão sob controle dos desenvolvedores de aplicativos e outros não. Mas há várias etapas que os desenvolvedores podem seguir para considerar e mitigar os fatores que afetam a disponibilidade.

  • Ataques: os ataques de negação de serviço distribuída (DDoS) ou ataques de bots podem sobrecarregar um aplicativo e tornar seus serviços indisponíveis para outros usuários, seja congestionando toda a largura de banda e a capacidade de computação disponíveis ou travando o aplicativo completamente. Ataques que comprometem um aplicativo por dentro, como ataques de ransomware ou ataques de injeção de SQL, também podem fazer com que um aplicativo pare de funcionar.
  • Falhas de infraestrutura: servidores de host que ficam mais lentos ou param de funcionar podem fazer com que um aplicativo fique indisponível. O desempenho do servidor pode deteriorar por vários motivos, desde falha de hardware a bugs de software até picos repentinos de solicitações. Se as solicitações continuarem indo para servidores que estão com desempenho lento ou falhando, as solicitações podem ficar sem resposta.
  • Alto tráfego ou uso: os usuários podem sobrecarregar um aplicativo se muitos estiverem usando ao mesmo tempo. As plataformas de comércio eletrônico, por exemplo, apresentam picos de uso durante lançamentos de produtos, vendas ou temporadas de compras. Este problema pode ser agravado pelo tráfego de bots.
  • Bugs: erros no software de aplicativos podem causar falhas que tornam um aplicativo indisponível.
  • Problemas do lado do cliente: código ineficiente no front-end pode travar o dispositivo ou navegador de um usuário ou causar problemas de compatibilidade.

O que é alta disponibilidade?

A alta disponibilidade é um nível elite de disponibilidade consistente alcançado com backups e evitando pontos únicos de falha. Em uma arquitetura de alta disponibilidade, nenhum servidor, gateway ou serviço que fica inativo resulta em indisponibilidade. Uma arquitetura de alta disponibilidade também deve evitar ataques cibernéticos.

Quais são os componentes de uma arquitetura de aplicativo de alta disponibilidade?

Balanceamento de carga

O balanceamento de carga distribui cargas computacionais e o tráfego de rede uniformemente entre grupos de servidores. Isso garante que nenhum servidor ou grupo de servidores fique sobrecarregado com mais tráfego do que pode lidar com eficiência.

Há uma variedade de algoritmos de balanceamento de carga: alguns balanceadores de carga distribuem as cargas de trabalho uniformemente, não importa o que aconteça, enquanto outros usam algoritmos dinâmicos para responder às condições da rede e ao status do servidor em tempo real.

Verificações de integridade

Os servidores web inevitavelmente ficam inativos de tempos em tempos. Uma verificação de integridade é um serviço que monitora se um servidor de origem está on-line ou não. As verificações de integridade permitem que os balanceadores de carga respondam ao status do servidor para que as solicitações não sejam direcionadas a um servidor que está off-line.

Redundância e backups

Os aplicativos de alta disponibilidade incorporam redundância em sua arquitetura. Esses aplicativos podem reverter para uma cópia de backup dos dados de um aplicativo no caso de um ataque de ransomware ou de um banco de dados ficar indisponível por algum outro motivo. Serviços e pools de servidores redundantes garantem que a queda de um servidor ou API não afete a funcionalidade do aplicativo.

Caching

Os elementos estáticos de um aplicativo web podem ser atendidos por uma rede de distribuição de conteúdo (CDN), mesmo se a infraestrutura subjacente tiver travado. Uma versão armazenada em cache de um aplicativo web pode não ter a funcionalidade completa, mas pode estar tecnicamente disponível até que o serviço completo seja restaurado. (Saiba mais sobre o serviço Cloudflare Always Online.)

DNS confiável

O Domain Name System (DNS) é o que permite que os usuários alcancem servidores de aplicativos em uma rede. Se o DNS cair ou parar de encontrar o endereço de IP correto, os usuários não poderão carregar o aplicativo. O uso de um provedor de DNS confiável, com alcance global e capacidade de interromper ataques de DDoS focados em DNS, pode garantir que o DNS não afete a disponibilidade.

Monitoramento da disponibilidade de aplicativos

O uso de uma ferramenta externa de monitoramento da disponibilidade do aplicativo pode ajudar os provedores de serviços a rastrear a disponibilidade e responder o mais rápido possível quando seus aplicativos ficam inativos.

O que é disponibilidade contínua?

Disponibilidade contínua é uma abordagem de projeto de infraestrutura de computação que garante que um aplicativo ou sistema permaneça operacional continuamente. A meta de disponibilidade contínua é 100% de disponibilidade, o que pode não ser possível, na prática. A internet foi projetada para resistir a uma guerra nuclear, mas o serviço de internet ainda fica inativo para os usuários às vezes. No entanto, a disponibilidade contínua é uma meta valiosa que ajuda a fornecer o melhor serviço possível para os usuários.

Qual o nível de disponibilidade que um aplicativo web precisa?

Quanto mais disponível estiver um aplicativo, maiores serão os recursos gastos para suportá-lo. Em outras palavras, 99,999% de disponibilidade pode ser caro. Os desenvolvedores devem decidir quanto tempo de inatividade eles ou seus clientes irão tolerar e criar de acordo.

Felizmente, a Cloudflare torna a arquitetura de alta disponibilidade muito mais viável para os desenvolvedores de aplicativos. A Cloudflare inclui balanceamento de carga, armazenamento em cache, stream delivery, mitigação de ataques de DDoS e gerenciamento de bots nativamente integrados ao seu serviço. A Cloudflare oferece até mesmo uma plataforma para desenvolvedores que permite que os desenvolvedores criem novos recursos ou aplicativos totalmente novos que são executados em uma rede global com presença em 330 cidades ao redor do mundo.

Saiba como a Cloudflare pode manter aplicativos disponíveis.