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.
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.