• Categorias
    • Desenvolvimiento de software
    • Machine Learning & AI
    • Carreira de programador e dicas
    • Histórias de sucesso
  • Materiais Gratuitos
    • Calculadora CLT x PJ
    • Quiz de Front-end
    • Quiz de Mobile
    • Guia Full Stack atualizado
    • Guia de Negociação Salarial para Devs
    • Modelo de Currículo Internacional
  • Para Talentos
    • Criar perfil gratis
    • Ver vagas
  • Categorias
    • Desenvolvimiento de software
    • Machine Learning & AI
    • Carreira de programador e dicas
    • Histórias de sucesso
  • Materiais Gratuitos
    • Calculadora CLT x PJ
    • Quiz de Front-end
    • Quiz de Mobile
    • Guia Full Stack atualizado
    • Guia de Negociação Salarial para Devs
    • Modelo de Currículo Internacional
  • Para Talentos
    • Criar perfil gratis
    • Ver vagas

Início Python microservices: Nameko + Flask + RabbitMQ + Docker

  • Foto de Geekhunter Geekhunter
  • maio 10, 2025
linguagem python na tela

Python microservices: Nameko + Flask + RabbitMQ + Docker

A computação navega cada dia mais em águas agitadas. Muitas mudanças, principalmente no que diz respeito a técnicas e tecnologias. A mudança de data centers, mainframes e grandes computadores de armazenamento de dados internos evoluiu para a computação em nuvem. O que a dois atrás era novidade hoje é imprescindível para o futuro dos produtos digitais. Nesse contexto a arquitetura de Python microservices substitui o bom e velho MVC e agora os processos assíncronos são amplamente utilizados ao invés das “syscal” e o acesso às APIs através de protocolos web é quase que unanimidade.

10 Livros de Python para ser um especialista

Mas o que são microservices?

Arquitetura em microsserviços trata-se de um modelo arquitetural de desenvolvimento de software em computação distribuída.

Um software desenvolvido seguindo esse modelo é desenvolvido em pequenas partes, que são entregues constantemente com o decorrer do projeto.

Trechos de códigos são organizados por um “API Gateway” e distribuídos sob demanda de acordo as requisições.

Por exemplo, para uma aplicação que possui cadastro de cliente, pagamento, upload de fotos, você pode quebrar cada uma dessas features em um microservice.

As vantagens de utilizar essa arquitetura são a modularidade, escalabilidade e manutenibilidade de código.

O baixo acoplamento permite separar as partes da API, possibilitando escalar as aplicações independentemente facilitando sua manutenção sem afetar o business como um todo.

Além do quê, o microservice, de maneira geral, possui um número de linhas de código muito reduzido o que facilita seu entendimento e manutenção.

>>Leitura recomendada:
Arquitetura monolitica vs Python microservices: no que apostar?

Como funcionam os Python microservices?

Código assíncrono

Sim, a computação assíncrona está se tornando o carro chefe do manual dos desenvolvedores da computação distribuída.

Cada vez mais dependente de serviços de terceiros, chamadas SDK remotos e computação em nuvem, os softwares precisam trabalhar com o delay entre as respostas e permitir que o usuário continue utilizando seu produto.

Código assíncrono é um código não bloqueante que recebe um input de dados e retorna um resultado, completo ou parcial. O retorno pode ser feito por meio de um endpoint de callback ou uma nova consulta.

Mas e quando precisamos receber a resposta completa em uma única chamada? Para isso utilizamos uma arquitetura baseada em evento.

Com essa arquitetura podemos efetuar uma chamada à uma API. O message borker converte a requisição em um evento e o microservice responsável pelo recurso requisitado responderá.

Esse tipo de abordagem pode resolver muitos problemas de assincronicidade pois pode escalar facilmente as instâncias do serviço.

>>Leitura Recomendada:
Automatizando Testes com Python, Selenium e Behave

Arquitetura Baseada em Eventos

Basicamente uma plataforma orientada a eventos é constituída por um consumer, um API Gateway, um message broker e um producer.

O consumer trata-se o cliente que vai requisitar algum recurso de nossa API. O Message Broker vai se conectar com nosso API Gateway para orquestrar as chamadas à API.

Os producers são os microservices que receberam as chamadas via evento e retornam o resultado de sua execução.

Se nossos recursos estiverem corretamente conectados ao Message Broker praticamente todos os componentes da API podem se comunicar entre si apenas por eventos, sem a necessidade de estarem programaticamente conectados.

Na Prática

Vamos ver a seguir um exemplo de projeto de microservices orientado a eventos construído usando os frameworks Python Flask e Namek, bem como Docker e RabbitMQ como message broker.

Basicamente a responsabilidade do nosso microservices será receber um nome de cidade ou coordenadas geográficas e retornar uma playlist relacionada do Spotify baseada no clima atual da localidade.

Nossa principal implementação trata-se do código do microservices em si. Para isso vamos utilizar o framework Python Nameko. O Nameko foi desenvolvido especificamente para construir microservices, é muito leve e performático.

weather.py

 

A outra parte importante é servir o microservices através de eventos. Para isso vamos utilizar o bom e velho Flask. O Flask vai fazer as vezes do nosso API Gateway e servirá nosso microservices na porta http 5000:

api.py

 

Desta maneira servimos nosso microservices através deste endpoint.

Por “default”, o Nameko utiliza uma instancia local do RabbitMQ como message broker mas você pode conectar seu projeto a outros servidores de mensageiria inclusive á serviços cloud.

O projeto completo você pode encontrar no meu github, onde você encontrará as dependências, o Dockerfile e os testes relativos a implementação arquitetural.

Espero ter ajudado, até mais =)

>>Leitura Recomendada:
Os 5 melhores frameworks de Python

Crie um perfil na GeekHunter e receba propostas alinhadas ao seu perfil. São mais de 1000 vagas abertas, inclusive Vagas para Desenvolvedor Python.

Foto de Geekhunter

Geekhunter

Python IDE
10 melhores IDEs e editores de código em Python para 2025
  • março 18, 2025
o que é commit
O que é Commit e como usar Commits Semânticos
  • dezembro 13, 2024
certificações em TI
10 certificações em TI muito valorizadas hoje
  • novembro 20, 2024
Consultor SAP: o que faz, salário e como se tornar um
  • março 20, 2025
brainfuck
Brainfuck: A linguagem esotérica que desafia programadores até hoje
  • junho 27, 2025
gerente de tecnologia
As principais habilidades de um gerente de tecnologia
  • junho 27, 2025
vagas de TI
Vagas de TI: como encontrar uma que combine com você?
  • junho 26, 2025
Planejamento da equipe de metodologia scrum
Metodologia Scrum: o básico que todo DEV precisa saber
  • junho 24, 2025

Gosta do conteúdo? Assine nossa Newsletter!

Desenvolvimiento de software

Brainfuck: A linguagem esotérica que desafia programadores até hoje

  • Geekhunter
  • junho 27, 2025
Carreira de programador e dicas

As principais habilidades de um gerente de tecnologia

  • Geekhunter
  • junho 27, 2025
Desenvolvimiento de software

Vagas de TI: como encontrar uma que combine com você?

  • GeekHunter
  • junho 26, 2025
Desenvolvimiento de software

Metodologia Scrum: o básico que todo DEV precisa saber

  • Geekhunter
  • junho 24, 2025
Carreira de programador e dicas

Dicas de carreira: como criar seu perfil profissional com foco na área tech

  • GeekHunter
  • junho 24, 2025
AnteriorAnteriorFlutter App: Criando um novo projeto do zero
PróximoPrincipais notícias do mundo da Tecnologia da Informação – Abril de 2025Próximo

Rod. José Carlos Daux – SC
401, 4120 – km 4, Bairro Saco
Grande – Florianópolis – SC
CEP 88032-005

Para Profissionais
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
  • Criar Perfil
  • Vagas de tecnologia
  • Blog TI
Para Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog de RHTech
  • Perguntas Frequentes
  • Login Empresas
  • Plataforma de Recrutamento Tech
  • Serviço de Recrutamento Tech
  • Nossos Planos
  • GeekAcademy
  • Blog de RHTech
  • Perguntas Frequentes
  • Login Empresas
A Geekhunter
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Portal LGPD
  • Sobre a GeekHunter
  • Suporte
  • Políticas de Privacidade
  • Termos de Uso
  • Portal LGPD

Add Your Heading Text Here