Mostrando postagens com marcador Desempenho. Mostrar todas as postagens
Mostrando postagens com marcador Desempenho. Mostrar todas as postagens

segunda-feira, 11 de janeiro de 2021

A Importância da Escalabilidade

 

Há um tempo atrás a maioria das empresas mantinha projeção de expansão programadas e limitadas, se imaginava uma estrutura final para as aplicações que sempre iria atender as necessidades por um longo tempo. Entretanto, o cenário atual possibilita cada vez o crescimento rápido e volátil de qualquer negócio, com isso se torna essencial criar soluções que se adaptem rapidamente aos novos patamares utilizando a escalabilidade para gerar estabilidade aos seus usuários.

Mas o que é escalabilidade? É basicamente a condição de uma solução de lidar com uma quantidade crescente de trabalho, minimizando o tempo de inatividade e erros, ou seja, é garantir que sempre seja possível atender a todos usuários com uma experiência de qualidade.

Existem dois tipos de escalabilidade, a mais utilizada é Dimensionamento (conhecido como horizontal), esse tipo é quando aumentamos o número de máquinas ou instâncias onde a aplicação está instalada, oferecendo através de balanceamento a distribuição de processamento de carga evitando a sobrecarga num único ponto. O outro é a Ampliação (conhecido como vertical), é quando efetuamos o aumento da capacidade computacional da máquina ou instância, para garantir que sempre haja recurso para processar as requisições. Não há uma opção ideal, é necessário a avaliação do cenário para definição de uma solução, e ainda pode ser considerada uma terceira opção que é a utilização de uma mistura entre as duas opções.

Além do fator mais importante, a disponibilidade da aplicação, o custo é outro fator que com a utilização da escalabilidade é beneficiado, isso porque através de uma estrutura altamente volátil podemos criar regras automatizadas de modificação de recursos que irão manter o ambiente do tamanho necessário para cada momento, reduzindo o investimento desnecessários, ou seja, estamos pagando pelo que está sendo consumido e não pelo achamos que será consumido.

Outro fator beneficiado também é a segurança, com a escalabilidade, a redundância e aumento de recursos de forma automática garante a disponibilidade e segurança dos dados. Falhas de hardware e gargalos que podem danificar os dados são corrigidos de forma praticamente automática.

A escalabilidade é cada vez mais um diferencial vital para qualquer solução, desde as monolíticas chegando nos micro serviços, por isso é fundamental fazer parte da concepção desde o início, porque dessa forma será possível garantir, disponibilidade, estabilidade, versatilidade, segurança e direcionamento de recursos.


Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br


domingo, 10 de maio de 2020

Monitorando o Desempenho da sua Aplicação com Application Insights



A maioria dos projetos são desenvolvidos utilizando-se das melhorias tecnologia, padrões de arquitetura, boas práticas, enfim tudo aquilo que irá garantir a entrega da aplicação para atender os requisitos funcionais. Porém quantos projetos depois de entreguem fazem acompanhamento do sucesso em relação ao comportamento dos usuários na sua utilização no dia a dia.

Por isso é fundamental que uma aplicação tenha uma ferramenta que auxilie na leitura de indicadores de desempenho, diagnosticar problemas e entender o que os usuários realmente fazem com seu aplicativo. Devido a essa importância, vamos exemplificar como instalar o Application Insights, um recurso do Azure Monitor, em sua aplicação para ajudar você a aprimorar continuamente o desempenho e a usabilidade.

Você necessitará ter uma assinatura no Portal Azure, por que será necessário criar o recurso do Application Insights que será associado ao seu projeto. 

Etapa 1: Adicionar o SDK do Application Insights

Através das propriedades do seu projeto, opção Adicionar, instalar a opção Application Insights Telemetry, isso habilitará o SDK em seu projeto.



A tela abaixo será aberta para que seja feita a configuração, basta clicar no botão Introdução



A seguir será exibido os dados para criação do recurso para o projeto dentro do Azure, clicando em Definir configurações, você poderá alterar o local para "Brazil South" e depois clicar em Registrar



Aguarde o processo de criação do recurso e instalação do Application Insights em seu projeto.



Depois que for criado, você precisa habilitar  que o SDK possa coletar os dados e enviar para o recurso, clicando em Coletar rastreamentos de System.Diagnostics


Pronto, toda vez que executar o projeto ou ele estiver publicado e rodando, os dados serão automaticamente enviado para o Dashboard dentro do Portal Azure.



Etapa 2: Criar Eventos Customizados

Umas das grandes vantagens é possibilidade de criar eventos customizados, esses eventos pode ser qualquer necessidade que você deseja monitorar, desde um simples clique num botão até mesmo a resposta de função.

Para criar essa chamada basta inserir o código abaixo no local que deseja que seja monitorado, no exemplo abaixo estamos registro na entrada na página e armazenando o IP de origem.


Dentro do recurso do Application Insights podemos ver o evento registrado com os dados capturados


Conclusão

Recomendo que faça a conexão da sua aplicação e acesse pelo portal que tem mais gráficos, ferramentas analíticas e modos de exibição para que possa se aprofundar e verificar todos os pontos que pode analisar, uma grande vantagem é que você poderá criar alertar para determinadas condições e através desse disparar ações.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
//marcelogoberto.com.br