Microserviços e Dockers: Como evitar que a proliferação de Containers impacte negativamente na experiência do usuário?

Por Março 8, 2018

Microsserviços e “contêinerização” veem deixando de se tornarem apenas um “hype” para serem adotados em diversas organizações, não somente em ambientes de desenvolvimento, mas em ambientes de produção, atendendo milhões de transações diárias, seja através de consumo direto ou expostos por meio de APIs. O ambiente de aplicativos móveis tem sido um dos grandes impulsionadores da adoção de microsserviços e contêinerização.

Com a velocidade de desenvolvimento das novas aplicações, sobretudo móveis, sendo liberadas em produção com uma frequência muitas vezes diária ou semanal, gera-se um novo desafio, que é manter este ambiente disponível e responsivo, sob a ótica do usuário final, gaarantindo uma experiência do usuário excepcional e cinco estrelas.

A arquitetura de microsserviços é uma abordagem que descreve o desenvolvimento de um aplicativo único como um conjunto de pequenos serviços, cada um executando seu próprio processo e se comunicando por meio de mecanismos leves, muitas vezes em uma API com recursos HTTP. Uma boa prática é o divisão de uma aplicação em unidades independentes, autônomas e de baixo acoplamento. Uma das grandes vantagens é que os microsserviços devem ser criados, mantidos, executados e distribuídos de forma totalmente independente.

Há uma tendência atual para arquitetura de microsserviços e para o ambiente de Apps Móveis, com aplicativos construídos a partir de múltiplos componentes autossuficientes. Em muitos casos, estes componentes são candidatos perfeitos para a contêinerização, sobretudo Dockers. Os desenvolvedores têm aderido fortemente aos containers porque facilitam a passagem para uma arquitetura de microsserviços e reduzem o atrito. Uma outra razão para que os desenvolvedores prefiram a arquitetura de microsserviços é a rápida adoção da cultura de DevOps, facilitando o desenvolvimento, testes e entrada em produção.

Usar containers e microsserviços em conjunto melhora as capacidades do ambiente de nuvem, uma vez que o microsserviço é escalável e reutilizável, enquanto os containers fornecem recursos eficientes, principalmente o empacotamento de aplicativos e suas dependências em um recipiente virtual, que pode ser executado em qualquer servidor.

Mas quais são os desafios de manter a performance no ambiente produtivo? A alta granularidade de Microsserviços e Dockers não aumenta a complexidade do ambiente? Como o time de monitoramento poderá acompanhar esse rápido processo de criação e manter todos esses novos ativos na solução de monitoramento?

A dica valiosa é: o monitoramento permite que você visualize sua infraestrutura e aplicações. Não vá para a produção sem o monitoramento do ambiente de Microsserviços e Dockers.

A possibilidade de falhas e degradação dos serviços são desafios presentes em aplicações de microsserviços e containers Dockers. Isso é agravado pelos possíveis problemas que podem ocorrer entre os diversos componentes e camadas, especialmente os de um serviço mobile. A característica sensível à degradação de desempenho e experiência do usuário, típicas do ambiente de aplicativos móveis, demanda que ocorra o monitoramento fim a fim, desde o aplicativo móvel, chegando até os servidores de aplicações, bancos de dados e demais backends, de forma a correlacionar estes domínios tecnológicos distintos e apontar a causa raiz.  Dada a complexidade desse ambiente, é fundamental contar com uma plataforma de Big Data associada ao Analytics para prover insights sobre o ambiente e negócios.

É neste contexto que o monitoramento de todos os componentes do serviço de aplicativos móveis se torna cada vez mais necessário, sobretudo com a inclusão de novas tecnologias como microsserviços e contêinerização (Dockers).

Escrito por André Piotto
Presales Management | Technical Sales |Indirect Channel Development & Enablement at CA Technologies
LinkedIn: @andrépiotto