A disponibilidade do aplicativo é a quantidade de tempo que um aplicativo funciona.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Evitar de tempo de inatividade
O que é latência?
O que é Balanceamento de Carga?
Algorítimos de balanceamento de Carga
Failover do servidor
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
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.
"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.
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 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.
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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.