Prepare-se para o crescimento
- 8 minutos
Você provavelmente já ouviu o ditado que diz que a preparação é a chave para o sucesso. Este ditado é especialmente verdadeiro em relação ao crescimento suave, bem-sucedido e confiável.
Uma das maiores vantagens da computação em nuvem é a capacidade de escalar. Essa capacidade levou alguns à suposição errônea de que não há necessidade de se preparar ou planejar o crescimento na nuvem porque ela tem escala infinita.
É verdade que provavelmente há recursos mais do que suficientes na nuvem para atender às demandas do seu aplicativo. No entanto, há algumas razões pelas quais ainda é importante para você entender suas necessidades de capacidade:
Embora provavelmente haja muitos recursos na nuvem para atender às suas necessidades, nem todos os serviços que você consome são dimensionados automaticamente ou são inerentemente escaláveis. Assim, você precisa estar ciente dos limites de serviço e saber quando precisará escalar serviços e recursos.
Os recursos da nuvem podem ser ilimitados, mas o seu orçamento provavelmente não é. Você tem que considerar o custo, e seus amigos no departamento financeiro querem saber seu gasto previsto na nuvem.
Plano de crescimento orgânico
Crescimento orgânico no mundo dos negócios refere-se ao processo pelo qual as organizações expandem sua própria capacidade, contando com recursos e habilidades intrínsecas para alimentar um crescimento mais lento e natural.
A primeira coisa que você deve fazer ao procurar planejar a capacidade na nuvem à medida que sua empresa cresce organicamente é mapear os requisitos de recursos atuais para os componentes maiores em seu aplicativo.
Cenário: Crescimento orgânico
Vamos voltar à arquitetura que analisámos no início deste módulo. Tailwind Traders está prestes a lançar um novo produto inovador, e está antecipando um crescimento dramático como resultado. Apenas para lembrá-lo, aqui está como é o diagrama de arquitetura deles.
Para iniciar o planejamento de capacidade, você precisa identificar os componentes maiores. Neste exemplo, isso inclui:
- Azure Kubernetes Service cluster
- Aplicação de recompensas em execução no Serviço de Aplicações do Azure
- Várias bases de dados, como Cosmos DB, SQL do Azure e similares.
Para cada um desses componentes grandes, você precisa entender qual é o uso atual de recursos, para ajudá-lo a planejar o uso futuro. Vamos analisar o uso de recursos para um desses grandes componentes.
Medir a capacidade no Cosmos DB
No Cosmos DB, o armazenamento é medido em gigabytes e dimensionado automaticamente, embora você ainda precise estar ciente das medições por motivos de custo.
A taxa de transferência é pré-provisionada e você usa uma métrica chamada Unidades de Solicitação para medir essa taxa de transferência. As Unidades de Pedido (RUs) são uma medida combinada de memória, CPU e IOPS, dando-lhe uma única métrica para planear a capacidade. Você provisiona RUs em incrementos de 100 RUs por segundo.
Cada operação de base de dados é medida em RUs. As leituras são simples: uma leitura de 1 KB é uma única unidade de solicitação. Outras operações são calculadas com base em vários fatores, como tamanho do item, consistência de dados, padrões de consulta e assim por diante.
Quando o utilizador faz o perfil da sua aplicação, cada resposta do Cosmos DB contém o cabeçalho de carga de pedido, informando exatamente quantos RUs essa solicitação utilizou. Você pode comparar o número de RUs que estão a ser utilizados com o número aprovisionado para verificar se tem atualmente capacidade mais do que suficiente.
É bom correlacionar o uso de recursos a uma métrica de negócios, como usuários ativos mensais ou receitas. Essa correlação ajuda você a planejar a capacidade com base em como você espera que o negócio cresça. Pode obter estas métricas de capacidade no Azure Monitor. Compreender o uso de recursos do sistema ajuda você a saber quando precisará aumentar a escala e quais serão seus custos ao longo do tempo.
Vamos concretar e analisar os dados do uso do Cosmos DB pela Tailwind Traders. Aqui está um gráfico de seu uso.
Neste exemplo, os Tailwind Traders estão a crescer em média com 2.500 utilizadores ativos mensais (MAUs), com uma base atual de utilizadores de 10.000.
Se olharmos para o armazenamento, podemos ver que seu banco de dados está usando 300 GB dos 5 TB disponíveis (6%). Está a crescer a 1% ou 50 GB/mês.
Do ponto de vista da taxa de transferência, encontra-se em 300/1000 e está a crescer 10%por mês.
Agora que compreendemos as métricas de recursos do nosso sistema, sabemos quando é provável que teremos de escalar o nosso throughput e também quais serão os nossos custos ao longo do tempo.
Agora podemos produzir um gráfico que nos ajuda com o planejamento de capacidade.
Agora sabemos que, em maio, vamos atingir a capacidade de RUs em nosso banco de dados, então precisamos escalar antes disso. Uma outra perceção interessante é que eles poderiam até reduzir seu banco de dados do Cosmos DB agora, pois não estão usando nem perto da capacidade pré-provisionada.
Plano de crescimento inorgânico
No exemplo anterior, você estava planejando o crescimento orgânico. Crescimento inorgânico decorre de fatores externos, em vez de um aumento nas atividades comerciais da própria empresa. Em vez de ser uma progressão natural, tende a envolver um aumento mais repentino e maior no uso.
Às vezes, você realmente não sabe com antecedência sobre um aumento no tráfego, usuários e assim por diante. Em antecipação a esses casos, você precisa construir seu sistema para ser o mais escalável possível automaticamente, e falhar graciosamente quando isso não for possível. Abordaremos isso mais adiante neste módulo.
Para outras vezes, como em um próximo lançamento de produto, você pode experimentar um crescimento inorgânico para o qual você pode planejar e se preparar. Se as suas equipas trabalharem em conjunto nas áreas de engenharia, produto, marketing e finanças, e souber como obter o uso de recursos e padrões de crescimento, pode fazer um esforço razoável para prever o impacto destes eventos nas suas necessidades de recursos e implementar mudanças em conformidade.
Acertar isto é específico para a sua organização e para o evento em particular. Você pode nem sempre acertar, mas estar o mais preparado possível lhe dá uma vantagem inicial.
Cenário: Crescimento inorgânico
Vejamos outra situação hipotética como exemplo de planeamento para o crescimento inorgânico. Há um próximo evento de marketing para o lançamento de um novo produto inovador de alto perfil na Tailwind Traders. Esperam que isso atraia mais 5.000 utilizadores para o seu site de vendas.
Ao usar dados do exemplo anterior de crescimento orgânico, e correlacioná-los, idealmente com a causalidade, com uma métrica de negócio que obteve das suas equipas de produto/marketing (por exemplo, número de utilizadores), pode começar a planear um crescimento inorgânico.
Sabes pelo cenário anterior que para 2.500 utilizadores precisas de aproximadamente 50 GB de armazenamento e 100 RUs. Agora pode usar esses dados e determinar se está pronto para este evento. Se pudermos esperar 5.000 utilizadores, isso vai exigir 100 GB de armazenamento e 200 RU/s.
Podemos ver que as capacidades de armazenamento são mais do que suficientes para o crescimento esperado do evento. Essas capacidades são dimensionadas automaticamente para você, então não há nenhuma preocupação aqui, exceto para entender os novos custos, que serão abordados mais tarde.
Você também pode prever que os seus RUs atingem só 50% de capacidade após o evento. Então, eles não têm preocupações em termos de capacidade do Cosmos DB para este evento.
Haverá, no entanto, um impacto nos custos.
Você pode ver que os 100 GB de armazenamento extra vai custar um extra de US $ 25 / mês. O preço da taxa de transferência permanece o mesmo que os clientes pagam pelas RUs provisionadas, e eles já têm mais do que o suficiente. Em suma, este evento de marketing deverá aumentar a fatura do Cosmos DB em 25 dólares.