Tempo de Leitura: 4 minutos

Quer saber quais os benefícios dos microsserviços para seu negócio? Não sabe se aplicá-los à sua empresa de tecnologia é a melhor escolha? Confira a live no TecnoUpdate de Fernando Costa e tire suas dúvidas sobre o tema.


Fernando Costa, Cloud Solution Specialist na Oracle, participou da TecnoUpdate explicando os detalhes sobre o tema. Microsserviços consistem em uma arquitetura de software que o desmembra em soluções independentes com equipes próprias, mantendo um turning rage próximo a zero e atendendo a novas demandas.

Presença global na jornada

A Oracle demonstra como microsserviços podem dar certo em alto nível. A empresa tem presença global, sendo conhecida por suas soluções para bancos.

A arquitetura de microsserviços é cada vez mais importante. Ela permite que grandes equipes de desenvolvimento (squads) façam entregas com maior liberdade e rapidez. Uma desvantagem é que essas squads gastam muito tempo no planejamento para que o software funcione como se espera. Apesar disso, sua independência é uma grande vantagem dos microsserviços.

Aprenda sobre o trabalho home office, participe do programa Software House de Sucesso

Situação atual

Fernando Costa apresenta dados de pesquisa feita dentre 700 desenvolvedores no mundo que foram entrevistados. Dentre eles, 67% dos microsserviços são utilizados para comunicação service-to-service. Ademais, 15% desses desenvolvedores entenderam que debugar códigos e manter microsserviços é uma atividade simples. Enquanto isso, outros 55% acham essa uma atividade complexa.

Ainda segundo esses dados, desenvolvedores gastam em média 13h para corrigir incidentes em seu backlog. Outro fator relevante é que 88% das enterprises já adotam disciplinas CI/CD. Esses dados são importantes para entender quais são as possibilidades de atuação.

Sistemas monolíticos

Em contraposição aos microsserviços, sistema operacional monolítico é aquele em que todas as funcionalidades têm que ser implantadas em conjunto. Uma de suas vantagens é tornar a curva de aprendizagem menor. Um desafio, contudo, é que o banco de dados não tem uma decomposição similar à que acontece no nível do código.

Apesar de os microsserviços serem visados por muitas empresas, há situações em que não é interessante aderir a eles. Os sistemas monolíticos não são sistemas legados, mas sim sistemas mais adequados a determinadas situações e com entrega única. 

Quando não é interessante sair das soluções monolíticas?

Confira quatro situações em que aderir aos microsserviços não é o mais interessante para o seu software: 

  • Domínio de negócio não definido: Microsserviços precisam que o serviço esteja bem definido para ser decomposto da maneira correta. Por isso, se o domínio de seu negócio ainda está em definição, os microsserviços não são os mais adequados para você.
  • Quando não há variação de Workload: Se não há grandes variações de workload, se não há dificuldades na estratégia de escalonamento, pode ser melhor manter-se nos sistemas monolíticos. Isso porque não se ganhará muito em performance com microssistemas quando não houver grande variação de workload. Logo, os gastos para aderir aos microssistemas não se justificariam.
  • Número baixo de atualizações programadas: Se não há atualização frequente de seu software, não há necessidade de se fazer muito deploy. Se não tem que se fazer muito deploy, não há porque buscar decompor meu software porque o custo será mais caro que a atualização programada.
  • Empresa não tem problema de Eficiência do Software: Se você não tem um plano de eficiência de software. Se eu não tiver nenhum problema na eficiência do software que leve a problemas na solução do meu crescimento de estrutura

Situações que são mais propícias aos microsserviços

Várias empresas se preparam para aderir à arquitetura de microsserviços. Há situações em que essa adesão se torna mais propícias, das quais listamos duas:

  • Soluções que tratam convenções sobre configurações tem entregas rápidas de EVPs mas interferem no escalonamento dos serviços.
  • Quando as pessoas estão trabalhando no mesmo código, também pode-se pensar em microsserviços para que as equipes tenham mais independência.

Quando uma alteração é feita em um local, exige mudança em outro. Coesão em software tem a ver com o relacionamento código. Quanto maior o acoplamento, mais mudanças são feitas em conjunto. Por isso, a divisão pode ser uma ótima ferramenta para se avançar com o software, e essa é uma característica dos microssistemas.

Escalabilidade técnica e operacional

A arquitetura de software com microssistemas exige uma excelente comunicação entre as partes. Isso porque quanto mais tempo eu tiver que aguardar a resposta de um problema no software, maior vai ser o problema de acoplamento temporal. Por isso, há algumas necessidades a nível de serviço, como inserir brokers e mensagens assíncronas entre as requisições, que podem ajudar nesse processo.

O escalonamento em sistemas monolíticos acontece de duas maneiras:

  • A nível vertical: na nuvem, são acionados mais recursos computacionais no servidor
  • A nível horizontal: adiciona-se servidores para responder aos problemas gerados pelo acoplamento, que impedem o crescimento/ escalabilidade. Quando não se divide o software, contudo, cria-se um grave problema. Começa-se a misturar o que é robustez e o que é resiliência no software monolítico. Esses conceitos precisam ser diferenciados para a resolução de problemas e escalonamento do software.

Vantagens do microsserviço

Algumas das vantagens dos microsserviços explicadas por Fernando Costa foram:

    • Possibilidade de crescimento individualizado e independente de tecnologia
    • Implantações e lançamentos independentes porque se tem as squads organizadas, ou seja, equipes independentes com liberdade de fazer suas entregas. Isso traz, contudo, o desafio de como organizar a empresa para ter gente o suficiente organizada nas áreas adequadas para se ter essas squads.
    • Robustez do software
    • Incorporação de novas tecnologias para responder e gerenciar situações que chegam a ser inimagináveis

Os microsserviços têm que simplificar as operações, dando mais independência e com mais lançamentos independentes. Isso permite que se mapeie os detalhes de implementações com um embasamento maior em conhecimento. Os microsserviços não requerem nenhuma nuvem em específico nem linguagem rebuscada para se conseguir essas vantagens.

A Oracle, empresa do convidado Fernando Costa, é uma empresa que oferece microsserviços para diferentes tipos de necessidades e workloads.

Os microsserviços são uma excelente forma de oferecer aos usuários uma experiência rica e de dar independência para a produção no software. É preciso analisar as situações em que essa arquitetura é mais adequada do que os softwares monolíticos para se tirar maior proveito dela.

Quer saber mais sobre microssistemas, arquiteturas de softwares e novidades sobre o mundo da tecnologia? Assine agora mesmo a nossa newsletter para ter um panorama completo com informações relevantes para você e para a sua software house.


Localização

Tecnospeed ©  2021. Feito com ❤ pelo time Tecnospeed.