Os aplicativos web são o centro das empresas modernas. E quando esses aplicativos ficam lentos ou indisponíveis, as experiências dos usuários são prejudicadas na hora e as empresas sentem o impacto rapidamente.
Em outubro de 2021, o Facebook, o Instagram e o WhatsApp sofreram mais de seis horas de inatividade, o que custou ao Facebook aproximadamente US$ 60 milhões em receita. Posteriormente, o preço das ações do Facebook caiu, fazendo com que a empresa perdesse bilhões de dólares a mais em capitalização de mercado.
Nem todas as falhas de aplicativos web são tão graves ou caras quanto as do Facebook. No entanto, mesmo problemas temporários e relativamente pequenos podem afetar os resultados financeiros de uma empresa. Se um site de comércio eletrônico ficar um pouco lento, os usuários irão para outro site e podem nunca mais voltar.
As graves consequências financeiras e de reputação dos problemas em aplicativos web significam que a manutenção do desempenho e da disponibilidade dos aplicativos deve ser uma alta prioridade para os líderes de tecnologia de uma empresa. E para oferecer experiências responsivas e confiáveis, eles precisam fazer mais do que juntar algumas soluções pontuais.
Os líderes de tecnologia precisam construir uma estratégia multifacetada que envolva melhorar os processos de desenvolvimento, modernizar sua arquitetura de aplicativos e repensar a forma como combatem as ameaças à segurança. O primeiro passo para criar essa estratégia é entender por que os aplicativos web às vezes falham.
Embora algumas falhas sejam causadas por problemas atípicos, como o erro humano específico que levou à interrupção do Facebook, existem alguns problemas bastante comuns que podem afetar negativamente o desempenho e a disponibilidade. Em particular, código mal escrito, arquiteturas complexas e ameaças cibernéticas apresentam desafios para muitas organizações.
Código mal escrito: em muitos casos, o desempenho e a confiabilidade estão diretamente relacionadas à qualidade do código. Por exemplo, um aplicativo baseado em nuvem que possui solicitações de banco de dados ineficientes pode começar a ficar lento à medida que as solicitações aumentam. Bugs, incluindo aqueles que só são acionados em condições raras, também podem paralisar aplicativos web.
Os desenvolvedores também podem deixar inadvertidamente vulnerabilidades no código, colocando aplicativos web em risco de explorações de dia zero que levam ao roubo de dados, servidores web comprometidos ou outros danos. Em 2017, por exemplo, uma vulnerabilidade não corrigida na estrutura de aplicativos web da Equifax resultou em uma violação de dados que afetou mais de 147 milhões de pessoas.
Com sites, codificação e design ineficientes são causas frequentes de problemas de desempenho. As páginas pode incluir códigos desnecessários que são carregados antes do conteúdo mais importante da página, desacelerando o tempo total de carregamento. Além disso, designs de site que usam imagens grandes e não compactadas podem causar carregamentos de página lentos para os usuários de uma maneira frustrante.
Arquiteturas complexas: arquiteturas de rede complexas ou legadas são outra fonte de sérios problemas de desempenho e disponibilidade. As arquiteturas que não utilizam balanceamento de carga, por exemplo, podem levar a problemas de desempenho e latência quando o tráfego sobrecarrega qualquer um dos servidores.
Além disso, os usuários podem experimentar latência quando o congestionamento de rede se desenvolve entre o usuário e o servidor web: o caminho mais curto entre os dois pontos nem sempre é o mais rápido. E, claro, a distância física entre usuários e servidores web também pode causar latência, especialmente quando os usuários remotos estão a milhares de quilômetros de distância.
Ameaças cibernéticas: os ataques a aplicativos web são uma possível causa importante de falhas. Em particular, bots maliciosos e ataques de negação de serviço distribuída (DDoS) podem reduzir substancialmente o desempenho ou tornar os aplicativos indisponíveis por completo. Em 2018, por exemplo, o GitHub ficou indisponível por causa de um gigantesco ataque DDoS, um dos mais famosos ataques DDoS dos últimos anos. Felizmente, a organização estava utilizando um serviço de proteção contra DDoS que ajudou a interromper o ataque após apenas 20 minutos.
As interfaces de programação de aplicativos (APIs), que muitas vezes desempenham um papel essencial na infraestrutura de um aplicativo, também são alvos frequentes. Bots maliciosos, ataques DDoS e outros ataques específicos de APIs podem afetar o desempenho ao expor as organizações a violações de dados.
Sua organização pode ter acumulado várias soluções pontuais para manter os aplicativos web seguros, confiáveis e com bom desempenho. Mas essas soluções, tanto as oferecidas por meio de dispositivos baseados em hardware quanto os serviços em nuvem, costumam ter sérias limitações.
Em primeiro lugar, as soluções baseadas em hardware exigem que você estime a quantidade de tráfego que irá receber. Se você estiver usando um firewall baseado em hardware e o tráfego exceder suas previsões, o firewall descartará o tráfego, deixando-o passar sem inspeção. Essas soluções também são propensas a desafios da cadeia de suprimentos, pois você pode ficar preso à compra de sistemas com componentes específicos. E, no geral, os custos de operação, gerenciamento e manutenção de hardware crescem junto com novas compras.
As soluções de rede e segurança de fornecedores de nuvem pública, como AWS ou Azure, podem eliminar despesas de capital. No entanto, as organizações muitas vezes encontram despesas ocultas ao usar essas nuvens, incluindo taxas de saída de dados para mover dados da nuvem. Essas soluções também tendem a funcionar melhor quando as organizações estão administrando seus negócios apenas em uma nuvem: as soluções não são projetadas para ambientes multinuvem ou híbridos, pois o provedor de nuvem tem pouco incentivo para facilitar o uso de serviços de outro provedor.
Ao começar a criar uma nova estratégia para melhorar o desempenho e a segurança, defina cuidadosamente os requisitos de sua solução. A maioria das organizações precisa de soluções que combinem escalabilidade, flexibilidade para oferecer suporte a várias nuvens, visibilidade entre nuvens e recursos totalmente integrados.
Escalabilidade: se sua empresa está crescendo rapidamente, a escalabilidade não é negociável. Você precisa ter certeza de que pode acomodar mais visitantes em seus aplicativos web, e possivelmente se defender contra mais ataques, enquanto mantém um desempenho e disponibilidade fortes.
Multinuvem: a compatibilidade com ambientes multinuvem e de nuvem híbrida também é crítica. A maioria das organizações hoje usa mais de uma nuvem pública e muitas têm ambientes híbridos. Escolher soluções que o prendam a um único fornecedor de nuvem não faz sentido.
Visibilidade: mais do que apenas acomodar várias nuvens, as novas soluções devem ajudar a fornecer visibilidade e controle em todo o seu ambiente multinuvem. Você precisa identificar e resolver rapidamente todos os problemas de segurança e rede que podem afetar seus aplicativos web.
Integração: as soluções de segurança e rede devem funcionar juntas. Por exemplo, um balanceador de carga deve trabalhar com um firewall de aplicativos web (WAF) para manter o desempenho e a segurança simultaneamente.
Trabalhar com fornecedores que oferecem recursos verdadeiramente integrados ajudará a reduzir a complexidade do gerenciamento. Se você puder implementar uma única plataforma, com uma única interface que integre vários recursos de segurança e rede, poderá reduzir drasticamente a sobrecarga administrativa.
Desenvolvimento simplificado: ao definir os requisitos de desempenho e segurança, considere também o que seus desenvolvedores precisam para acelerar a inovação. Uma plataforma para desenvolvedores deve ajudar a aumentar a produtividade, aproveitar seu ambiente escalável e multinuvem e aumentar a confiabilidade ao melhorar a qualidade do código.
A nuvem de conectividade da Cloudflare pode ajudar a fornecer experiências do usuário confiáveis e responsivas ao melhorar o desempenho e a segurança dos aplicativos web. A Cloudflare oferece uma gama completa de serviços integrados de rede e segurança que podem ser implantados facilmente em um ambiente multinuvem e gerenciados em uma única plataforma.
A plataforma para desenvolvedores da Cloudflare ajuda os engenheiros de software a produzir aplicativos web robustos, confiáveis e seguros. A integração com bancos de dados, armazenamento de objetos, modelos de IA e outros serviços agiliza a construção de softwares modernos com recursos sofisticados.
Enquanto isso, a enorme rede global da Cloudflare minimiza a latência. Com a Cloudflare, você pode fornecer aplicativos web na borda, perto dos usuários, onde quer que eles estejam.
Fornecer um desempenho consistente e manter uma disponibilidade ininterrupta é essencial para produzir experiências do usuário positivas e evitar tempo de inatividade dispendioso. Com a plataforma integrada de serviços certa, sua organização pode enfrentar as ameaças a essas experiências e, ao mesmo tempo, controlar a complexidade.
Este artigo é parte de uma série sobre as tendências e os assuntos mais recentes que influenciam os tomadores de decisões de tecnologia hoje em dia.
Após ler este artigo, você entenderá:
Que fatores afetam o desempenho e a disponibilidade dos aplicativos web
Onde as soluções atuais são insuficientes
Os requisitos para melhorar o desempenho e a segurança dos aplicativos
Saiba mais sobre as principais tendências que moldam o cenário de ameaças a aplicativos web e APIs no relatório Situação da segurança de aplicativos.