Software projetado sem considerar performance e escalabilidade já nasce legado

Performance e escalabilidade são conceitos relacionados, porém distintos. Ambos demandam atenção na arquitetura e apresentam desafios particulares que ficam longe de soluções simplórias.

RECORDANDO

A performance de um software está relacionada com sua rapidez e eficiência para completar uma unidade de trabalho. Em um software baseado na interação com usuários, por exemplo, a performance poderá ser medida pelo response time. Quando não há interações com o usuário, a métrica adequada será o throughput. Melhorias de performance também ocorrem se o response time e o throughput permanecerem estáveis, porém, reduzindo consumo de recursos computacionais – como memória, processador, etc.

A escalabilidade de um software está expressa na capacidade de suportar aumentos de carga de trabalho com apropriação razoável de recursos computacionais. Um software será “mais” escalável na medida em que demandar incrementos menores de capacidade computacional, proporcionalmente ao aumento da carga de trabalho, com pouca ou nenhuma degradação de performance.

[tweet]Não há soluções mágicas, nem genéricas para a entrega efetiva de performance e escalabilidade. Muitas vezes, as respostas para determinados cenários estão em direções opostas às apontadas pelo senso comum.[/tweet]  Não há bala de prata!

Em tempos de Black Friday é comum encontrar comentários sobre o “absurdo” de sites caírem (Por que não usam a “nuvem”?).  Afinal, superficialmente, o que pode haver de tão complexo em mostrar “páginas de produto”, consolidar desejos de compra em um “carrinho” e fechar um pedido, não é mesmo?

O que é ignorado pela maioria dos “especialistas” que apontam a nuvem como “caminho simples” é que a restrição raramente está no dimensionamento do poder computacional, mas, sim, em mecanismos intrincados que adotam lógicas difíceis de escalar, como, por exemplo, em contextos de integração (Legado [em mainframe], OMS e Marketplace).

Em uma Black Friday, não há mudança apenas na escala, mas também no padrão de uso das aplicações. Políticas de caching e fluxos de dados são diferentes e, invariavelmente, fazem emergir estados distintos daqueles encontrados no dia-a-dia, o que dificulta a manutenção da estabilidade.

[tweet]Apontar apenas a “nuvem” como solução para os problemas de performance e de escalabilidade em eventos como a Black Friday, é atestado de “falta de cicatrizes”[/tweet]

Os três aspectos que mais impactam a capacidade de um software ter boa performance e escalar são:

  1. adequação do hardware dedicado;
  2. maturidade, estabilidade e prontidão do software de apoio e componentes de terceiros empregados
  3. projeto e implementação do software.

Esses três elementos devem ser analisados como interdependentes, identificando e subordinando as decisões ao elemento que se caracterizar como gargalo, conforme prescrito na teoria das restrições.

Quanto mais complexo for o software, mais difícil será garantir boa performance e capacidade para escalar.

Não é possível discutir escalabilidade sem discutir performance. Afinal, dificilmente fará sentido escalar uma aplicação que não apresente performance satisfatória. Entretanto, é razoável que falemos sobre performance em sistemas sem a pretensão de melhorar sua escalabilidade.

As vezes, aplicações com ótima performance tem restrições de escalabilidade por limitarem o incremento de poder computacional em níveis inferiores aos que seriam necessários para suportar a carga. Analogamente, decisões para remover limites de escalabilidade causam prejuízos a performance.

[tweet]Quando falamos em performance e escalabilidade, temos necessidades infinitas mas recursos limitados.[/tweet] Dificilmente uma solução será performática e escalável no longo prazo se não for projetada com estes dois atributos sendo enfaticamente levados em consideração.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments

AUTOR

Elemar Júnior
Fundador e CEO da EximiaCo atua como tech trusted advisor ajudando empresas e profissionais a gerar mais resultados através da tecnologia.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Arquivo

Pós-pandemia, trabalho remoto e a retenção dos profissionais de TI

CTO Consulting e Especialista em Execução em TI
EximiaCo 2024 - Todos os direitos reservados
0
Queremos saber a sua opinião, deixe seu comentáriox
()
x
Oferta de pré-venda!

Mentoria em
Arquitetura de Software

Práticas, padrões & técnicas para Arquitetura de Software, de maneira efetiva, com base em cenários reais para profissionais envolvidos no projeto e implantação de software.

Muito obrigado!

Deu tudo certo com seu envio!
Logo entraremos em contato

Software projetado sem considerar performance e escalabilidade já nasce legado

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Software projetado sem considerar performance e escalabilidade já nasce legado

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?