Navegue
produto com arquitetura escalável
Compartilhar no facebook
Compartilhe no Facebook
Compartilhar no twitter
Compartilhe no Twitter
Compartilhar no linkedin
Compartilhe no Linkedin

Benefícios de um produto com arquitetura escalável

Um software com arquitetura escalável, alta disponibilidade, e conceito de micro serviços é bem recebido por empresas e desenvolvedores de software. Mas a primeira pergunta que fica é, o que seria um produto com arquitetura escalável?

Para responder essa pergunta, é preciso pensar inicialmente o que é importante para o cliente que necessita de funcionalidades em um software, e quais são suas necessidades para poder atendê-las. A expectativa do cliente em relação ao software se baseia em:

  • Atender às funcionalidades desejadas
  • Baixo custo do sistema / produto
  • Tempo estimado para entrega

Um produto escalável visa otimizar o desenvolvimento de software, facilitar a implantação dessa aplicação e ser totalmente independente dos outros serviços do sistema, possibilitando a criação de novas funcionalidades de maneira prática e rápida, além de facilitar a manutenção das funcionalidades de maneira pontual e separada.

Antes de listar os benefícios da escalabilidade e suas particularidades, é necessário entender o conceito de micro serviços, que é implantado como base para uma arquitetura de projeto de software. O conceito de micro serviços é baseado na criação de componentes menores e com baixo acoplamento entre eles, como o nome já diz, fazer a divisão do software em pequenos serviços. Antes da criação de software com arquitetura de micro serviços, os softwares eram desenvolvidos de maneira monolítica. Neste tipo de aplicação toda a base de código está contida em um só lugar, ou seja, todas as funcionalidades estão definidas no mesmo bloco.

É preciso entender que cada estrutura tem sua vantagem e sua particularidade, e que deve ser empregada de acordo com a necessidade. No caso de um produto, em que o cliente visa funcionalidades distintas, rapidez no desenvolvimento e facilidade na manutenção, a arquitetura criada no conceito de micro serviços é relativamente mais vantajosa em relação ao conceito monolítico.

Segundo a análise de Martim Fowler (especialista em arquitetura de software), o custo de manutenção de um software complexo é menor em uma arquitetura de micro serviços, comparada a uma arquitetura monolítica. (gráfico de complexidade acima). Esta análise apresenta duas ideias:

  • É possível ter uma aplicação com diversas tecnologias e soluções, onde também pode ser estruturada com mais de uma linguagem de programação.
  • Também é possível ter uma evolução tecnológica do produto de maneira mais controlada, ou mais leve através da divisão de processos e fluxos rápidos, integrado, com informações.

Fazendo um exercício em um raciocínio rápido: uma empresa de grande porte com diversos sistemas, e cada um deles com uma linguagem de programação diferente. Agora, imaginem se essa empresa decidir unificar todos os sistemas para utilizar uma única plataforma. O custo e o esforço para fazer a unificação de cada uma dessas aplicações seria enorme, visto que cada uma dessas aplicações poderia se tornar uma estação de serviço acessível, podendo ser modificada e ajustada independentemente de todo o contexto dos outros serviços no sistema.

Esse conceito de micro serviço, também conhecido como SaaS (Software como Serviço), oferece maior segurança contra a perda parcial ou total de dados e acessos não autorizados.

Voltando ao conceito  e a importância da escalabilidade, a definição entre arquitetura de micro serviços e monolítica traz diversos fatores a serem analisados, e a utilização de escalabilidade horizontal ou vertical é uma delas.

  • Escalabilidade Vertical

Este é um padrão de escalabilidade viável e amplamente utilizado para determinadas aplicações, mas tem como limitação de escalabilidade o próprio hardware.

  • Escalabilidade Horizontal

Em vez de aumentar a escala adicionando mais capacidade de hardware individual, a aplicação é arquitetada para que seja escalada adicionando mais instâncias da aplicação. Não é necessário hardware caro e pesado para escalabilidade horizontal, pode ser feito com máquinas menores e adicionando muitas delas. No entanto, esse padrão de escalabilidade geralmente requer aplicações que sejam arquitetadas ou ajustadas para funcionarem distribuidamente (micro serviços).

Em uma situação em que um gestor queira realizar um upgrade de um produto, adicionar novas funcionalidades, deixar a aplicação mais rápida, deixar a aplicação integrada com redes sociais e outros sistemas, a arquitetura monolítica pode ser escalável adicionando hardwares mais potentes, e desenvolvendo novas funcionalidades, porém é custoso e pouco produtiva. Em comparação com arquitetura de micro serviços, criar um serviço novo, com configurações de hardware potentes e alto grau de complexidade é bem mais vantajoso e eficaz.

  • Maior flexibilidade dos processos

Um software escalável pode ser reproduzido facilmente, independentemente de suas proporções. Com flexibilidade haverá menos peso de investimento em novos softwares.

  • Aumento de produtividade

Replicar algo é muito mais simples do que criar uma nova estrutura do zero.

  • Otimização de custos

Alta lucratividade, onde a empresa torna-se capaz de aumentar seu processo produtivo sem injetar muito dinheiro por isso.

  • Menor probabilidade de estagnação

Um produto escalável não tem dificuldades de se adaptar a mudanças, e sempre está preparado para uma atualização de ferramenta nova ou novas demandas.

  • Customização e Integração

A integração se refere à unificação dos sistemas, diminuindo a chance de erros causados pelo uso de softwares incompatíveis entre si. É possível integrar o SaaS a ferramentas de monitoramento e armazenamento de arquivos, etc.

Assim como o software, a escalabilidade em um banco de dados relacional pode ocorrer de duas formas: horizontal e vertical.

  • A forma horizontal ocorre pela utilização de mais equipamentos e particiona a estrutura de dados de acordo com critérios estabelecidos.
  • A forma vertical ocorre pelo aumento da capacidade do equipamento em que o sistema gerenciador de banco de dados está instalado.

Bases de dados NoSQL (não relacionais) têm como um de seus motivadores o baixo custo para realizar uma escalabilidade horizontal, o que torna possível o uso de equipamentos mais acessíveis, e proporciona um modelo de particionamento nativo.

A frequente utilização de bancos de dados NoSQL estão ligadas as questões de escalabilidade de armazenamento e processamento de um enorme volume de dados que cresce em ritmo acelerado diariamente. De forma que todos os canais utilizados para captação de informações disponíveis no mundo digital, são responsáveis por compor e ditar a velocidade na qual a grande massa de dados deve ser absorvida, gerida e compartilhada. A importância de se obter um alto grau de paralelismo e a distribuição de sistemas em uma escala global, conduz à adoção de soluções robustas com grande potencial de desempenho.

Em resumo, é necessário entender que a importância da escalabilidade de um produto vem da necessidade de o cliente modificar seu produto, aumentando ou diminuindo, buscando sua necessidade de momento. O papel da escalabilidade é poder atender as mudanças aplicando de acordo com suas características, sendo horizontal ou vertical, dando a possibilidade ao cliente em poder realizar alterações e customizar de maneira produtiva e eficaz o produto.

Receba nossos conteúdos

Preencha seu email e receba nossos conteúdos sobre Gestão de Ativos

Entre em contato

Email: contato@atech.com.br
Tel.: 55 (11) 3103-4600
Rua do Rocio, 313 – 5° andar
Vila Olímpia – São Paulo – SP

Copyright © 2019. Todos os direitos reservados.
Criado pela Intelligenzia