Optar por micro-serviços em vez de software monolítico

Os programadores estão a mudar a forma como definem a arquitectura de sistemas de grande dimensão, usando componentes de software pequenos e independentes.

microservicesA Amazon foi a primeira empresa que desconstruiu um enorme sistema monolítico para o transformar numa estrutura em micro-serviços. Depois foi a vez da Netflix, ao desmontar a sua arquitectura de software, à procura de um modelo mais ágil capaz de ser actualizada e suportar dois milhões de solicitações diárias das API de 800 tipos diferentes de dispositivos. Depois, foram empresas como a Google, eBay, Uber e Groupon.

Na actualidade as empresas estão a abandonar os sistemas monolíticos de software consolidam a mais recente vaga na arquitectura de sistemas: os micro-serviços. Ainda que não seja um conceito inteiramente novo, os micro-serviços representam a mais recente evolução de programação de software.

Os programadores estão a desmontar as arquitecturas de sistemas maciços, privilegiando componentes mais pequenos e independentes que trabalham em conjunto para resolver problemas complexos. Cada micro-serviço é autónomo e responsável por realizar uma só operação num sistema de back-end, como recuperar um registo de cliente ou verificar o nível de crédito de uma pessoa.

O resultado é um exército de pequenos serviços que comunicam através de uma rede para fazer a integração de múltiplos sistemas. E esse conjunto é muito mais ágil e resistente do que um programa gigantesco.

Soluções simples para problemas complexos

Os micro-serviços evoluíram a partir de uma necessidade desesperada de simplicidade no desenho de software. De maneira demasiado frequente, os projectos de software não têm conseguido superar os ciclos de desenvolvimento, a dimensão da iniciativa e os seus crescentes custos.

Em parte é algo que resulta de, durante décadas, as aplicações terem sido desenhadas como monólitos, de cima para baixo, no quais todas as funções são integradas num único processo e são replicadas em vários servidores. A maioria ainda é construída desta maneira.

O problema é que qualquer mudança exige a actualização e re-implantação da aplicação do no servidor. É uma interrupção inaceitável no veloz mundo digital de hoje, em que a imediatez e a funcionalidade perfeita são considerados requisitos básicos.

Para manter a competitividade, as empresas precisam de aplicações capazes de “evoluir continuamente, acrescentado novas características e funcionalidades enquanto permaneçam disponíveis as 24 horas do dia”, diz Mark Russinovich da Microsoft. As rígidas infra-estruturas do passado estão a impedir que as empresas sejam capazes de dar resposta aos pedidos de um mercado que está sempre a mudar.

As SOA revelaram-se difíceis de trabalhar, exigindo API pesadas e múltiplas camadas, muitas vezes cheias de incompatibilidades.

Não o fazer significa a diferença entre ser relevante e estar obsoleta. No início de 2000, a arquitectura orientada a serviços (SOA, sigla em inglês) surgiu como uma solução.

Ao separar as funções de distintas unidades que comunicam entre si através de uma rede, os programadores conseguiram uma maior flexibilidade e interoperacionalidade entre os programas. No entanto, as SOA revelaram-se difíceis de trabalhar, exigindo API pesadas e múltiplas camadas, muitas vezes cheias de incompatibilidades.

Ainda que não tivessem resolvido o problema, as SOA abriram a porta a novas soluções de TI empresariais, como cloud computing, por exemplo. Em última instância, levaram os investigadores da Hewlett Packard Labs, responsáveis por tornar o código menos frágil e mais robusto à mudança, a serem pioneiros na primeira arquitectura de micro-serviços.

Manter as empresas ágeis com sistemas receptivos

A escala é a principal diferença entre a arquitectura de micro-serviços e a SOA. Na primeira, os serviços de micro-serviços são mais elementares e mantêm protocolos ligeiros para uma comunicação rápida e fácil.

Onde os outros modelos com base em serviços falharam antes, estão a obter êxito. O seu maior benefício é a acessibilidade. Os micro-serviços dependem principalmente da conhecida interface JSON / REST, com autenticação simples através da cifra de API, geralmente HTTP ou OAth.

Fáceis de desenvolver e implementar, são um bálsamo para os programadores em dificuldades para estarem actualizados com as necessidades de software empresarial.

Factores de competitividade

Os micro-serviços ajudam as empresas ganhar competitividade através de:

Interrupções mínimas de serviço: uma vez que operam de maneira independente, os micro-serviços podem falhar sem interromper todo o sistema. A unidade problemática verga-se enquanto o resto continua com o seu trabalho.

Também podem ser mantidos individualmente, sem ser necessário actualizar todo o sistema e apenas mudar um conjunto de funções. Isso permite aos programadores corrigir facilmente bugs e adicionar funcionalidades sem criar frustração nos utilizadores;

‒ Grande flexibilidade: Os micro-serviços não estão ligados a qualquer linguagem ou plataforma específica. São agentes livres passíveis de adaptação rápida para dar resposta à evolução das necessidades de um sistema

Algo que permite aos programadores liberdade para escolher, de maneira independente, a matriz que melhor se adequa ao projecto, em vez de se ficar cingido a normas de tamanho único, como as de XML ou SOAP;

‒ Maior autonomia, mas coesa: quanto mais interdependentes são as partes de um sistema, mais difícil de usar, testar e manter. Os micro-serviços não são muito interdependentes mas formam um todo coeso, criando um sistema mais robusto e fiável;

‒ Fácil recuperação de dados: os micro-serviços podem trocar informações com qualquer outro serviço de rede sem interacção humana ou mudança no programa subjacente requerido. Como a Netflix e outras empresas líderes descobriram, “tudo está subordinado à necessidade de ser capaz de tomar decisões e construir coisas mais rapidamente do que a concorrência”, diz o ex-arquitecto de clouds, Adrian Cockcroft.

Os micro-serviços permitem às empresas que isto aconteça, por isso estão a tornar-se rapidamente no modelo pré-determinado para a criação de aplicações empresariais.




Deixe um comentário

O seu email não será publicado