Estudando Microsserviços
Referências
- Microservices - Codigo Fonte TV
- O que sao Microsservicos - Alura
- Martin Fowler - Microservices
- The Problem with Microservices - Dave Farley
- Microsservicos muito alem da teoria - Andre Nobre
- When To Use Microservices - Sam Newman
- Pragmatic Microservices - Randy Shoup
- Interview with Sam Newman about Microservices
- Mastering Chaos - A Netflix Guide to Microservices
- Evolutionary Architecture and Microservices - Rebecca Parsons
Design Microservice Architectures the Right Way
-
parei em 19 minutos
Microservices + Events + Docker = A Perfect Trio
Minhas Palavras
Definição de Arquitetura de Microsserviços
É uma forma de desenvolver sistemas de software onde cada pedaço pode ser pensado, desenvolvido e disponbilizado de forma independente.
Microsserviços é um tipo de SOA
O paradigma de microsserviços é, digamos, inspirado no SOA (Service Oriented Architecture - Arquitetura Orientada a Serviços).
Eu arriscaria dizer que microsserviços é uma maneira mais específica e detalhada de praticar o Arquitetura Orientada a Serviços.
A gente vai ver também nessa apresentação como que as ferramentas de DevOps são o que dá sustentação para uma arquitetura de microsserviços. É o que torna humanamente viável a prática de microsserviços.
Características de Microsserviços
- Utilizadas para tornar aplicações grandes e complexas mais digeríveis
- Utilizadas para tornar coordenação de times menos custosa.
- Deploy independente.
- o que só é viável devido às técnicas de CI/CD, que automatizam esse processo
- Interfaces bem definidas (detalhes de implementação ficam encapsulados).
desafios
Cada pedacinho do sistema separado (ou seja, o microsserviço) torna mais fácil a compreensão de cada um desses pedacinhos, facilitando a manutenção e implementação de melhorias desse pedacinho. Mas o sistema como um todo fica bem mais complexo.
É necessário termos uma boa gestão e orquestração desses microsserviços para garantir um bom funcionamento do sistema como um todo.
Quando/Por que utilizar Microsserviços?
- Aplicações grandes
- Muitos programadores trabalhando na mesma base de código.
Observação: a carga de trabalho, e portanto o custo operacional de implementar microsserviços aumenta consideravelmente