Migração de aplicações para container docker e micro-serviços - Consultoria e Suporte 4Linux
A containerização de aplicações tem se tornado nos últimos anos uma ferramenta indispensável para qualquer aplicação web moderna. O Docker fornece uma interface para o gerenciamento eficiente de recursos de sistema, seja, se sua aplicação requer um poder de processamento maior e para isso necessita de vários núcleos da mesma máquina hospedeira ou se sua aplicação requerer menos poder de processamento e você deseja hospedar múltiplas aplicações na mesma máquina hopedeira. O uso de Docker também favorece a arquitetura da aplicação em micro serviços, a agilidade na criação de ciclos de entrega (pipelines de CI/CD), a escalabilidade e a portabilidade da aplicação.
Como podemos te ajudar na migração de aplicações para containers Docker
Análise de requisitos funcionais, dependências e serviços de aplicações web
Versionamento de infraestrutura de aplicações existentes utilizando Docker e Docker-Compose
Criação de micro serviços distribuídos
Criação de pipelines de CI/CD com Jenkins
Criação e gerenciamento de clusters utilizando Swarm ou Kubernetes
Provisionamento de infraestrutura com Terraform ou Ansible
Quer fazer a migração de Aplicações para Containers Docker​?
Sistemas distribuídos em micro serviços com Docker
Podemos exemplificar o uso de Docker para criação de sistemas distribuídos em micro serviços com uma simples aplicação de gerenciamento de usuários.
Esta aplicação seria composta pelos seguintes serviços:
Serviço de Usuários (Python);
Serviço de Grupos (PHP);
Serviço de Autenticação (Node);
Gateway de API (Java);
Banco de Dados (Postgres);
Fila distribuída (RabbitMQ)
Cada item da lista acima tem sua própria imagem e portanto são aplicações distintas umas das outras. O Gateway de API iria expor uma API Rest através de end points que despacham mensagens para o(s) serviço(s) requisitado(s) utilizando a fila como canal de mensageria. Esses serviços iriam consultar o banco de dados aonde armazenam informações (cada um desses serviços pode ter seu próprio banco de dados) e retornam as informações ao Gateway também através de fila. Como o cliente interage com o sistema através do Gateway a forma de operação assíncrona com que a aplicação trabalha está escondida atrás desse Gateway o que permite a reestruturação da aplicação sem quebra de contrato.
Podemos incrementar ainda mais o nosso micro serviço adicionando nele um sistema de análise de dados.
Uma das stacks mais populares para isso é a chamada Elastic Stack composta pelos serviços:
Elasticsearch: um motor de busca e análise de dados;
Logstash: serviço de pipeline de ingestão de dados capaz de operar um múltiplas fontes simultaneamente;
Kibana: um dashboard para visualização de dados;
Com isso podemos integrar nosso sistema de análise de dados ao sistema de log dos serviços;
Com isso os desenvolvedores e administradores teriam todo o poder de análise fornecido pelo Elasticsearch para rastrear erros e bugs tanto no ambiente de desenvolvimento quanto de produção. A Elasticstack também é utilizada em processos de Machine Learning, Big Data e Business Inteligence.