O projeto exemplifica uma simples plataforma de um departamento de trânsito, onde multas são criadas e estas são enviadas para os emails dos proprietários do veiculo multado.
Para a construção dessa plataforma de microsserviços, foi utilizada as seguintes tecnologias:
- Boto3: É o SDK da AWS para Python, que permite desenvolvedores Python utilizarem serviços como o Amazon SNS e SQS em suas aplicações;
- Django: É um framework web open source que lhe permitirá escrever aplicações web sem precisar reinventar a roda;
- Django Rest Framework: É um kit de ferramentas que auxilia na criação de APIs REST em cima do framework Django;
- Loafer: É um biblioteca que auxilia na construção de aplicações assíncronas que consumem mensagens enviadas para filas SQS;
- SQS: É um serviço da AWS de filas de mensagens que permite o desacoplamento e a escalabilidade de microsserviços. Nosso microsserviço obterá as mensagens por meio de um fila SQS.
- SNS: É um serviço da AWS de publicação de mensagens em tópicos que permite o desacoplamento de microsserviços. Nossa API irá publicar mensagens em um determinado tópico que possui uma fila SQS inscrita.
Esse projeto está todo configurado para rodar no Ubuntu e suas variações (Kubuntu, Xubuntu...). Também é esperado que você tenha o docker instalado no seu sistema operacional. Caso o docker ainda não esteja instalado siga este tutorial de instalação.
- Faça o clone do projeto executando o comando abaixo.
$ git clone https://github.com/olist/palestra-microsservicos.git
$ cd palestra-microsservicos
- Para instalar tudo que é necessario para rodar as apis e o serviço basta executar o comando abaixo.
~/palestra-microsservicos $ make inicializar_projeto
- Para levantar a api de multas abra um terminal e execute o comando abaixo.
~/palestra-microsservicos $ make levantar_multa_api
- Para levantar a api de veiculo abra um terminal e execute o comando abaixo.
~/palestra-microsservicos $ make levantar_veiculo_api
- Para levantar o serviço de envio de multas abra um terminal e execute o comando abaixo.
~/palestra-microsservicos $ make levantar_envia_multa_servico