Home > Tendências

7 bons motivos para mudar para microsserviços

E cinco razões pelas quais você pode não ter sucesso na abordagem

Da Redação, com IDG News Service

15/06/2018 às 7h08

microservices_789747985 (1).jpg
Foto:

A adoção de microsserviços aconteceu em ondas, desde que o termo foi
criado em 2011. E agora, os microsserviços estão prestes a se tronarem
mainstream. De cordo com uma pesquisa recente da Nginix, 36% das
empresas pesquisadas estão usando microsserviços, com outros 26% na fase
de pesquisa. Mas o que é exatamente a arquitetura de microsserviços, e
que benefícios pode trazer dada a cultura, aschabilidades e as
necessidades de sua organização?

Este artigo da CIO.com aborda sete razões pelas quais você deve
considerar microsserviços para o seu próximo projeto de desenvolvimento
de aplicativos - e cinco obstáculos que podem fazer com que a
experiência não seja tão bem sucedida quando o esperado.

Variante da arquitetura orientada a serviços (SOA), os microsserviços
são um estilo arquitetônico em que as aplicações são decompostas em
serviços acoplados, oferecendo modularidade crescente, tornando as
aplicações mais fáceis de desenvolver, testar, implantar e, o mais
importante, mudar e manter.

Não há dúvida de que sua organização ainda
está amarrada com aplicativos desenvolvidos na era monolítica, quando
as arquiteturas centralizadas e multi-camadas foram usadas para criar
aplicativos inteiros em uma única base de código. Esse modelo de serviço
ao cliente era uma excelente opção quando os desktops governavam a
TI. Mas com a ascensão de dispositivos móveis e a nuvem, os dados de
back-end devem estar sempre disponíveis para uma ampla gama de
dispositivos, e essa arquitetura monolítica não o tornará fácil para
você, como sempre que uma mudança é feita. O aplicativo deve ser
atualizado, abrindo a possibilidade de novos erros sempre que você
tentar adicionar um recurso ou ajustar para um novo contexto. Pior
ainda, com tudo ligado a uma única base de código, você não pode escalar
uma função ou serviço específico, já que há a necessidade de expandir
toda a aplicação, levando a custos muito maiores.

Com microsserviços, seu código é dividido
em serviços independentes que são executados como processos separados. A
saída de um serviço é usada como uma entrada para outro em uma
orquestração de serviços independentes. Um modelo especialmente útil
para empresas que não possuem uma ideia pré-definida da variedade de
dispositivos que irão suportar seus aplicativos. Ao ser agnóstico de
dispositivos e plataformas, os microsserviços permite que as empresas
desenvolvam aplicativos que proporcionem experiências de usuário
consistentes em uma variedade de plataformas, abrangendo os ambientes
web, móveis, de IoT, wearables e rastreadores. Netflix, PayPal, Amazon,
eBay e Twitter são apenas algumas empresas que usam microsserviços.

O Walmart Canadá, por exemplo, mudou toda a sua arquitetura de software para microsserviços
em 2012. A empresa, que não conseguiu lidar com os 6 milhões de páginas
vistas por minuto que estava recebendo no momento, obteve resultados
instantâneos com um aumento significativo em sua taxa de conversão
noturna. O tempo de inatividade foi minimizado, e a empresa conseguiu
substituir o hardware caro com servidores x86 virtuais mais baratos,
resultando em uma economia global de custos entre 20% a 50%.

Mesmo que sua organização não seja do tamanho de um Walmart ou uma Amazon, os microsserviços ainda podem oferecer um ótimo valor.

microserviços

Aqui estão alguns dos benefícios que sua organização irá desfrutar ao mudar para microsserviços.

1 - Aumento da resiliência
Com
microsserviços, toda a sua aplicação é descentralizada e desacoplada em
serviços que atuam como entidades separadas. Ao contrário da arquitetura
monolítica, em que uma falha no código afeta mais de um serviço ou
função, há um impacto mínimo em caso de falhas. Mesmo quando vários
sistemas são reduzidos para manutenção, seus usuários não perceberão
isso.

2 - Escalabilidade aprimorada
A
escalabilidade é o aspecto-chave dos microsserviços. Como cada serviço é
um componente separado, você pode expandir uma única função ou serviço
sem ter que dimensionar todo o aplicativo. Os serviços críticos para o
negócio podem ser implantados em vários servidores para aumentar a
disponibilidade e o desempenho de um serviço sem impactar o desempenho
de outros serviços.

3 - Capacidade de usar a ferramenta certa para a tarefa certa
Com
microsserviços, você não precisa se amarrar a um único fornecedor. Em
vez disso, você tem a flexibilidade de usar a ferramenta certa para a
tarefa certa. Cada serviço pode usar seu próprio idioma, estrutura ou
serviços auxiliares e ainda se comunicar facilmente com os outros
serviços em sua aplicação.

4 - Time to market mais rápido
Como
microsserviços funcionam com serviços acoplados, você não precisa
reescrever sua base de código inteira para adicionar ou modificar um
recurso. Você faz alterações apenas em um serviço específico. Ao
desenvolver aplicativos em incrementos menores que são independentemente
testáveis ​​e implantáveis, você pode disponibilizar sua aplicação e
serviços mais rapidamente.

5 - Depuração e manutenção mais fáceis
A
arquitetura de microsserviços também facilita a depuração e teste de
aplicativos. Com módulos menores passando por um processo contínuo de
teste e entrega, sua capacidade de fornecer aplicativos sem erros é
muito melhorada.

6 - ROI melhorado com TCO reduzido
O
uso de microsserviços  também permite otimizar recursos. Várias equipes
podem trabalhar em serviços independentes, permitindo que você implante
mais rapidamente - e mude mais facilmente quando você precisa. O tempo
de desenvolvimento é reduzido e o código de suas equipes será mais
reutilizável. Ao desacoplar os serviços, você não terá que operar em
máquinas caras. Máquinas básicas x86 irão fazê-lo. A maior eficiência
dos microsserviços não só reduz os custos de infraestrutura, mas também
minimiza o tempo de inatividade.

7 - Entrega contínua
Ao
contrário das aplicações monolíticas, em que equipes dedicadas
trabalham em funções discretas, como UX, banco de dados, lógica do lado
do servidor e camadas tecnológicas, a arquitetura de microsserviços faz
uso de equipes multifuncionais para lidar com todo o ciclo de vida de
uma aplicação em um modelo de entrega contínua. Quando os
desenvolvedores, as operações e as equipes de teste trabalham
simultaneamente em um único serviço, teste e depuração tornam-se fáceis e
instantâneos. Com esta abordagem de desenvolvimento incremental, o
código é continuamente desenvolvido, testado e implantado, e você pode
usar bibliotecas existentes em vez de reinventar a roda.

Mas microserviços não são para todas as empresas
Empresas
que abraçaram microsserviços tiveram benefícios significativos, e as
organizações que ignoram esse fato podem ser deixadas para trás. Mas
mesmo parecendo promissora, nem todas as empresas podem capitalizar a
arquitetura. Certifique-se de que sua empresa é capaz de gerenciá-la.

Aqui estão algumas advertências organizacionais.

1 - Você precisará estar equipado para provisionamento rápido e implantação de aplicativos
O
pessoal deve poder providenciar recursos instantaneamente para
acompanhar o ritmo necessário para aproveitar ao máximo os
microsserviços. Se demorar dias ou meses para fornecer um servidor, você
terá sérios problemas. Da mesma forma, você deve rapidamente implantar
novos serviços ou aplicativos.

2 - Um monitoramento robusto é obrigatório
Como
cada serviço depende do seu próprio idioma, plataforma e API, e você
estará orquestrando várias equipes trabalhando simultaneamente em
diferentes entidades do seu projeto de microsserviços, você precisa de um
monitoramento robusto para gerenciar efetivamente toda a
infraestrutura, porque se você não fizer isso, pode ficar impossível
rastrear problemas, como saber quando um serviço falhar ou uma máquina
cair.

3 - Você deve abraçar a cultura DevOps
Para
trabalhar em equipes multifuncionais, sua empresa deve incorporar
práticas e cultura DevOps. Em uma configuração tradicional, os
desenvolvedores estão focados em recursos e funcionalidades, e a equipe
de operações está no alcance de desafios de produção. Em DevOps, todos
são responsáveis ​​pelo provisionamento de serviços - e as falhas.

4 - Os testes podem ser complexos
Com
microsserviços, o teste não é direto. Cada serviço possui suas próprias
dependências, algumas diretas, outras transitivas. À medida que os
recursos são adicionados, novas dependências aparecerão. Manter controle
de tudo isso rapidamente torna-se impraticável. Além disso, à medida
que seu número de serviços aumenta, a complexidade aumenta também. Quer
se trate de erros de banco de dados, latência de rede, problemas de
cache ou indisponibilidade de serviço, sua arquitetura de microsservices
pode ser capaz de lidar com um nível razoável de falhas. Assim, o teste
de resiliência e a injeção de falhas são indispensáveis.

5 - Você precisa projetar com falhas em mente
Projetar
o fracasso é essencial. Você deve estar preparado para lidar com vários
tipos de falha, como tempo de inatividade do sistema, serviço lento e
respostas inesperadas. Aqui, o balanceamento de carga é importante, mas
ter um plano B é outra opção importante. Quando ocorre uma falha, o
serviço com problemas ainda deve ser executado em uma funcionalidade
degradada sem afetar demais todo o sistema.

Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter Newsletter por e-mail