Gerenciar seus recursos é fundamental para otimizar o desempenho e a estabilidade do seu site. Um site WordPress precisa ser capaz de lidar com picos de tráfego, dimensionar recursos no momento certo e detectar rapidamente qualquer anomalia de desempenho.

Naturalmente, também é necessário aplicar todas essas tarefas. A API da Kinsta tem alguns endpoints que podem ajudar a prever o dimensionamento de recursos e a detecção de anomalias.

Neste artigo, examinaremos os conceitos de dimensionamento preditivo de recursos e detecção de anomalias, e como a API da Kinsta se encaixa em seu fluxo de trabalho. Discutiremos alguns cenários reais desse tipo de dimensionamento, examinaremos os recursos da API e consideraremos como integrar essas estratégias ao seu fluxo de trabalho.

O primeiro passo, porém, é procurar entender as tarefas que teremos de enfrentar.

Entendendo o dimensionamento preditivo de recursos e a detecção de anomalias

Logo mais, veremos no que a API da Kinsta pode ajudar. Mas antes vejamos o que a previsão da escalabilidade dos recursos pode lhe proporcionar. Em seguida, abordaremos também os benefícios de poder detectar anomalias no desempenho do seu site.

Os benefícios do dimensionamento preditivo de recursos

Em poucas palavras, o dimensionamento preditivo de recursos é uma forma de gerenciar os recursos do seu site com base na demanda prevista. É uma abordagem proativa que envolve a análise de dados, o escrutínio de padrões de uso e outros fatores relevantes.

Prever quando o seu site provavelmente sofrerá um aumento no tráfego ou consumo de recursos permite que você dimensione para acomodar a demanda. O benefício é um desempenho otimizado e uma melhor experiência geral do usuário (UX).

No entanto, há muitas vantagens no dimensionamento preditivo de recursos que compõem um todo:

  1. Melhor desempenho do site. O dimensionamento dos seus recursos pode ajudar a evitar gargalos de desempenho. Por sua vez, isso pode garantir que seu site permaneça responsivo durante períodos de pico de tráfego.
  2. Otimização de custos. O dimensionamento preditivo permite alocar recursos com maior eficiência. Dessa forma você não provisiona recursos em excesso, reduzindo custos desnecessários.
  3. Experiência de usuário aprimorada. Os picos de tráfego podem ser atenuados, levando a uma melhor experiência do usuário. Seu site poderá lidar com esses picos com menos esforço, proporcionando uma experiência de frontend consistente, suave e rápida.

Associar o dimensionamento preditivo com a capacidade de detectar anomalias de desempenho em seu servidor é uma ótima combinação. A seguir, discutiremos os benefícios da detecção dessas inconsistências.

A importância da detecção de anomalias

Um aspecto que geralmente anda de mãos dadas com uma estratégia de dimensionamento é a detecção de irregularidades nas métricas de desempenho do seu site. Suas estatísticas terão uma linha de base e valores extremos quando se trata de uso da CPU, consumo de memória e tempos de resposta, o que pode ser uma fonte de problemas e de otimização em potencial.

A detecção precoce dessas anomalias permite resolver possíveis problemas antes que afetem a disponibilidade e a experiência do usuário do seu site e se tornem um grande problema. Além disso, há muitos outros benefícios:

  • Resolução proativa de problemas. Se você puder detectar inconsistências antes que se tornem problemas maiores, poderá tomar medidas imediatas para resolvê-las. Isso pode minimizar o tempo de inatividade e garantir a disponibilidade contínua do seu site.
  • Melhorias na estabilidade do site. A detecção de anomalias permite que você identifique e resolva os atuais problemas de desempenho. A correção desses problemas pode contribuir para a estabilidade e a confiabilidade gerais do seu site.
  • Insights para otimização. Ao analisar as anomalias que surgem, você pode obter insights valiosos sobre áreas do seu site que podem precisar de mais otimização.

Tanto a detecção de anomalias quanto o dimensionamento de desempenho são dois lados da mesma moeda. Isso significa usar as estratégias em conjunto para criar uma base de desempenho robusta para o seu site. Na próxima seção veremos como isso funciona em alguns cenários típicos.

Cenários do mundo real para dimensionamento preditivo de recursos e detecção de anomalias

A necessidade de aumentar os recursos do servidor à sua disposição tem muitos usos práticos. É justo dizer que quase todos os sites precisarão de alguma forma dessa estratégia.

Para entender melhor como você usaria o dimensionamento preditivo de recursos e a detecção de anomalias em um cenário real, vamos examinar alguns deles. Nosso primeiro cenário é, sem dúvida, um dos mais populares.

1. Sites de eCommerce durante as temporadas de pico

Em um mundo ideal, seu site de eCommerce terá tráfego e engajamento consistentes durante todo o ano. Contudo, na realidade, sua atividade será flutuante. Por exemplo, considere um site de eCommerce que tem grandes picos de tráfego durante as temporadas de férias ou eventos de venda.

O site da Pulsar Audio mostrando uma oferta de liquidação de primavera.
O site da Pulsar Audio mostrando uma oferta de liquidação de primavera.

Aqui, a detecção de anomalias se transforma em um mergulho analítico mais profundo. Você começa com suas métricas e analisa os dados históricos relacionados aos seus níveis de tráfego. Se você puder usar essas métricas para prever picos de tráfego esperados, poderá começar a pensar sobre os recursos.

A tarefa é ser proativo em relação ao dimensionamento de recursos com base nos níveis de tráfego esperados em momentos específicos do ano. Por exemplo, você pode aumentar a alocação de CPU e memória para ajudar a lidar com um aumento de carga. No frontend, a experiência de compra pode ser estável e tranquila para seus clientes. Por sua vez, isso pode não apenas economizar receita pra você, mas também gerá-la.

2. Sites de notícias e mídia durante grandes eventos

Os sites que lidam com conteúdo centrado no tempo, como agências de notícias, também enfrentam os mesmos desafios que os sites de eCommerce. Nesse caso, esses picos de tráfego ocorrem quando há grandes eventos ou notícias de última hora.

O site da NBC News.
O site da NBC News.

Entretanto, a diferença é mais crítica aqui, pois os picos acontecem com mais frequência e também são mais irregulares. O acesso a conteúdo relevante também costuma ser crucial. Pense nos avisos meteorológicos, por exemplo.

É nesse ponto que o dimensionamento preditivo de recursos ganha relevância. Assim como no eCommerce, a análise de padrões de tráfego anteriores durante eventos semelhantes pode ajudá-lo a tomar decisões informadas sobre quando escalar e em que quantidade. O monitoramento das tendências atuais de notícias também pode ser benéfico. O principal objetivo aqui é garantir que o seu site permaneça acessível e responsivo. Embora uma experiência de usuário tranquila também seja importante, o acesso sem interrupções é fundamental.

3. Aplicativos de software como serviço (SaaS) com padrões de uso variáveis

Os aplicativos SaaS podem ser voláteis, com padrões de uso flutuantes com base no comportamento do cliente e na demanda geral pelo serviço. Um bom exemplo disso foi durante o surto de Covid-19 em março de 2020. Dezesseis milhões de trabalhadores do conhecimento tiveram que ficar em casa, e o Slack teve um aumento de 20% no número de usuários durante as duas primeiras semanas.

O aplicativo de mensagens Slack.
O aplicativo de mensagens Slack.

A detecção de anomalias ajuda a entender o que pode dar errado ao dimensionar seus recursos. Isso foi muito importante para o Slack, porque era importante ajudar as pessoas a continuar trabalhando durante a pandemia.

O dimensionamento preditivo de recursos também é vital, pois é uma maneira de otimizar sua infraestrutura para corresponder a qualquer padrão de uso. Novamente, a análise de dados históricos e a implementação de uma estratégia de dimensionamento proativa podem ajudar a experiência do usuário, minimizar os custos e criar confiança e reputação externa entre sua base de usuários.

Os recursos da API da Kinsta para gerenciamento de recursos

Ter uma maneira de implementar o dimensionamento de recursos e detectar desvios é tão vital quanto conhecer as estratégias. Para os usuários da Kinsta, você tem o painel MyKinsta, que contém uma abundância de métricas:

O painel MyKinsta.
O painel MyKinsta.

No entanto, isso não ajuda em situações em que você precisa de maior flexibilidade. Em vez disso, a API da Kinsta será a ferramenta pra você. Ela lhe oferece vários endpoints para se conectar à nossa funcionalidade, dos quais alguns serão da máxima importância para escalabilidade e análise:

  • CPU Usage. Você pode monitorar o uso da CPU do seu servidor ao longo do tempo, o que ajuda a identificar tendências e possíveis gargalos antes que se tornem um problema.
  • Memory Usage. Você pode acompanhar o consumo de memória para garantir que o site tenha recursos suficientes para lidar com a carga de trabalho e aumentá-la quando necessário.
  • Bandwidth. Analisar o total de dados que você transmite pode ser um bom indicador para implementar sua estratégia de dimensionamento.
  • Slowest Requests. Esse é um dos muitos outros endpoints que podem mostrar quais solicitações e respostas têm o maior impacto sobre o desempenho do seu site.

Veremos mais detalhes sobre eles mais adiante. No entanto, é importante que você entenda que a API da Kinsta cobre apenas a maior parte das bases do dimensionamento de recursos e da detecção de anomalias:

  • Você deve prever quaisquer problemas futuros. A API da Kinsta só pode enviar dados para você; você precisa interpretá-los.
  • Por extensão, qualquer dimensionamento que você precise implementar é de sua responsabilidade. A API da Kinsta não pode fazer isso por você, e isso é compreensível.
  • Embora a API da Kinsta forneça muitas maneiras de monitorar seu site, você pode não ter todos os endpoints necessários para satisfazer seus objetivos (embora estejamos trabalhando nisso!).

Independentemente disso, a API tem diversos recursos, e sua natureza programática significa que você pode vinculá-la a outros sistemas, implementar suas próprias funções e classes, e quase tudo que desejar.

Detectando anomalias com a API da Kinsta

Você não usará o escalonamento todos os dias, e talvez só decida acioná-lo algumas vezes por ano. Por isso, vamos analisar algo que você fará com muito mais regularidade: detectar inconsistências nas métricas do servidor.

Configuração do monitoramento e dos alertas

Seu sistema de monitoramento será a espinha dorsal da sua proatividade. Há muitas considerações a serem feitas aqui, mas nossa recomendação é que você mantenha as coisas simples no início:

  • Decida o que deseja monitorar. Você pode confiar em seus próprios relatórios para indicar as principais métricas ou simplesmente olhar o painel MyKinsta para saber o que verifica com frequência.
  • Avalie como gostaria de receber alertas. Por exemplo, você pode receber notificações do Slack ou um simples e-mail sempre que atingir um limite.
  • Determine uma linha de base. Você deve dedicar algum tempo para entender o comportamento típico do seu servidor. É aqui que você analisa os dados de métricas históricas e quaisquer indicações ou tendências futuras.

Depois de ter esse conhecimento, você pode começar a usar a API da Kinsta para configurar os endpoints de que precisa.

Endpoints da API da Kinsta para detecção de anomalias

alguns endpoints que podem ser úteis aqui. Mencionamos alguns deles no início do artigo, mas, para completar, aqui está uma lista que achamos que será útil para você:

  • Bandwidth. Já falamos sobre isso, pois é como você medirá o total de dados que transmite.
  • HTTP Requests Per Minute. Esse é simples: mede literalmente quantas solicitações HTTP seu site recebe a cada minuto!

Há alguns endpoints bons para a análise de tendências:

  • CPU Usage. Nossa métrica mostra o uso total médio da CPU em um período de tempo selecionado.
  • Memory Usage. Da mesma forma, essa é a média do consumo total de memória em um período selecionado.

Se você precisar de alguma orientação sobre oportunidades de escalonamento, há alguns endpoints para ajudar:

  • Build Time. O rastreamento mostra quanto tempo você leva para criar seu aplicativo. Combinado com métricas sobre o uso da CPU e da memória (entre outras), você pode formar uma opinião sobre a necessidade de escalonamento.
  • Run Time. O tempo total de execução do aplicativo pode ajudar você a decidir onde priorizar o uso, encontrar gargalos de desempenho e muito mais.

Vamos dar a você um exemplo de uso de um endpoint para detecção de anomalias. Aqui, estamos usando o Node.js para verificar a largura de banda de um site. Observe que você precisaria implementar a validação da chave de API, provavelmente usando variáveis de ambiente, e alguma forma de monitorar constantemente a largura de banda.

import fetch from 'node-fetch';


const API_TOKEN = <YOUR-API-TOKEN>;
const APPLICATION_ID = <YOUR-COMPANY-ID>;

async function checkBandwidth(token, id, timeframeStart, timeframeEnd, intervalInSeconds) {
  const query = new URLSearchParams({
    interval_in_seconds: intervalInSeconds,
    timeframe_start: timeframeStart,
    timeframe_end: timeframeEnd,
  }).toString();

  const resp = await fetch(`https://api.kinsta.com/v2/applications/${id}/metrics/bandwidth?${query}`, {
    method: 'GET',
    headers: {
      Authorization: 'Bearer <YOUR-API-KEY>',
    },

  });

  const data = await resp.json();

  if (!resp.ok) {
    console.error('Error checking bandwidth:', data);
    return;
  }

  console.log('Bandwidth data:', data);

}


async function run() {
  const timeframeStart = '2021-07-22T18:10:45.511Z';
  const timeframeEnd = '2021-07-22T18:10:45.511Z';
  const intervalInSeconds = '3600';

  await checkBandwidth(API_TOKEN, APPLICATION_ID, timeframeStart, timeframeEnd, intervalInSeconds);
}

run().catch(error => {
  console.error('An error occurred', error);
  process.exit(1);
});

No que diz respeito às notificações, você pode configurar um canal do Slack para iniciar uma conversa quando a largura de banda atingir um determinado limite.

Para detectar quaisquer anomalias, examine os dados que obtém em busca de valores fora da curva, embora também possa criar uma maneira programática de pesquisar métricas discrepantes. A partir daí, você pode começar a formular uma resposta.

Como responder a anomalias

Em resumo, seu script detectará uma anomalia, enviará um ping para o Slack e você poderá entrar em ação. Como você fará isso dependerá do seu plano de resposta. Esse processo estabelecerá como você investigará, diagnosticará e resolverá a causa raiz do problema.

Por exemplo, você pode ter um contrato de nível de serviço em vigor se esse for um site de cliente que exige que você responda dentro de um prazo definido. Para o seu próprio site, você pode simplesmente acessar a análise e examinar os registros.

Uma seção de um arquivo de registro do Kinsta Nginx.
Uma seção de um arquivo de registro do Kinsta Nginx.

A maneira como você configura isso dependerá do tamanho da sua equipe, dos requisitos e dos recursos. Independentemente disso, a próxima etapa será a implementação da estratégia de dimensionamento de recursos.

Implementando o dimensionamento preditivo de recursos com a API da Kinsta

Depois de conhecer suas métricas de base, você pode decidir se dimensiona seus recursos ou não. Como descrevemos em uma seção anterior, a previsão automatizada é algo que você deve implementar. A hospedagem de aplicativos da Kinsta oferece isso para todos os planos. Você pode encontrar a opção no painel MyKinsta na aba Aplicativos.

No entanto, a API da Kinsta pode lhe fornecer as ferramentas para fazer suas previsões com precisão e confiança.

Há algumas estratégias que você pode adotar aqui:

  • Observe as oportunidades de aproveitar o aumento de escala.
  • Avalie seu consumo geral e macro de recursos.
  • Procure gargalos como alvos para o dimensionamento de recursos.

Se você observar os endpoints bandwidth, HTTP requests per minute e average response time, essas são ótimas maneiras de encontrar o escopo do dimensionamento. Você perceberá que a verificação da largura de banda e das solicitações HTTP tem uma “função dupla” de dimensionamento de recursos e detecção de anomalias.

Os mesmos endpoints que você usa para analisar tendências também são ótimos para prever o dimensionamento de recursos. Na verdade, o uso da CPU e o uso da memória são sinais reveladores de que você precisa aumentar a potência do servidor.

Por fim, os gargalos nos processos de carregamento de páginas podem esgotar seus recursos e ser um alvo ideal para o dimensionamento. Você deve monitorar o endpoint slowest requests. Ele sinaliza os piores infratores em seu site e é algo para o qual o painel MyKinsta fornece a você um gráfico:

Um painel que mostra as transações mais lentas em um site da Kinsta.
Um painel que mostra as transações mais lentas em um site da Kinsta.

No entanto, isso pode ser um sinal da necessidade de aumentar a escala e também pode destacar um ponto de otimização. Essas serão “vitórias rápidas” (em teoria) ao longo do caminho, pois a correção desses problemas encapsulados deve reduzir a quantidade de recursos que você aloca ao seu site e, consequentemente, liberá-los.

Dicas e truques para integrar o dimensionamento preditivo e a detecção de anomalias ao seu fluxo de trabalho

Antes de concluirmos, vamos discutir algumas táticas, práticas típicas e dicas para você integrar o dimensionamento preditivo e a detecção de anomalias ao seu fluxo de trabalho. A proatividade é algo que mencionamos muito ao longo deste artigo, e há algumas maneiras de dar um passo à frente nessa área:

  • Encontre algumas linhas de base e limites claros para o desempenho do seu site para ajudar a orientar suas estratégias de dimensionamento e detecção.
  • Reserve um tempo para revisar e atualizar seus modelos preditivos regularmente para garantir a precisão e a relevância.
  • Implemente o monitoramento automatizado sempre que possível, usando alertas que toda a equipe possa ver. Basicamente, você deseja minimizar o número de intervenções manuais que precisa fazer.

Sobre equilibrar as intervenções automáticas e manuais, há mais algumas dicas que podemos lhe passar:

  • Você precisa ter um equilíbrio entre as ações de dimensionamento automatizado e a supervisão manual. Isso é mais importante do que você imagina para obter o nível certo de controle e responsabilidade pela sua estratégia.
  • Quando você implementar o dimensionamento automatizado, deve haver diretrizes e regras claras sobre quando deve ser acionado e quando precisará de intervenção manual.
  • Revise e ajuste suas regras de automação regularmente. Isso o ajudará a aumentar a eficiência e a minimizar os falsos positivos em seus relatórios.

Temos uma última dica sobre análise e monitoramento. Essa parte do processo envolve a verificação constante de suas métricas e a reação a quaisquer alterações. Por isso, há algumas maneiras de você facilitar esse processo.

A maior delas, em nossa opinião, é analisar regularmente os resultados de todas as decisões que você tomar. Isso pode ser fundamental para o próximo ciclo, pois uma melhor percepção de como você toma decisões tornará as próximas mais eficazes.

Resumo

O dimensionamento preditivo de recursos e a detecção de anomalias são as duas principais maneiras de ser proativo quando se trata de gerenciar o desempenho e a capacidade de resposta do seu site WordPress. A API da Kinsta pode ajudar você a implementar e desenvolver essas técnicas de forma programática.

Por exemplo, muitos endpoints o ajudam a monitorar o desempenho do seu site. Com os scripts certos, você pode definir linhas de base e benchmarks. Se você combinar isso com uma plataforma como o Slack, poderá ter alertas automatizados que o ajudarão a colocar seu plano de resposta em ação.

Você precisa de uma estratégia para monitoramento preditivo de recursos e detecção de anomalias? Em caso afirmativo, o que é importante pra você? Conte pra gente na seção de comentários abaixo!

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).