O documento discute microserviços e como o Inka, o API Gateway da Netshoes, fornece funcionalidades essenciais como ponto único de entrada, roteamento, segurança, descoberta de serviço, configurações distribuídas e monitoramento para uma arquitetura de microserviços.
2. O QUE SÃO MICROSERVIÇOS?
Em suma, o estilo arquitectónico Microservice é uma
abordagem para o desenvolvimento de uma única aplicação
como um conjunto de pequenos serviços, cada um
executando em seu próprio processo e se comunicando com
mecanismos leves, muitas vezes, uma API de recursos HTTP.
Estes serviços são construídos em torno de capacidades de
negócios e deployáveis independentemente por automação.
Há um mínimo de gerenciamento centralizado destes
serviços, que podem ser escritas em diferentes linguagens de
programação e usam diferentes tecnologias de
armazenamento de dados.
-- James Lewis and Martin Fowler
3. O QUE NÃO SÃO MICROSERVIÇOS?
Quebrar uma aplicação em vários serviços menores é o
primeiro passo para se criar uma arquitetura de
microserviços, mas ainda não constitui uma arquitetura de
microserviços. Feito isso, o que se tem são vários serviços
independentes e descentralizados.
4.
5.
6. O QUE É NECESSÁRIO?
• Infra estrutura [Cultura DevOps – Automação]
• Service Discovery
• Resiliência
• Monitoramento
• Gerência de configurações
• Segurança
• Servidor de Borda
– [Single entry point - API Gateway]
8. O QUE É INKA?
Inka é o nome dado ao API Gateway da Netshoes que hoje
tem as seguintes responsabilidades:
• Ponto único de entrada
• Roteamento
• Segurança
• Service Discovery
• Configurações Distribuídas
• Monitoramento
• Resiliência
9.
10. Porque Spring Boot, Spring Cloud e
Netflix OSS?
Netflix:
– 2 bilhões de requisições por dia
– 1.200.000+ servidores pelo mundo
– 700+ microservices
Spring Cloud / Boot:
– Feito em cima do Spring Framework
– Pivotal in charge
– Netflix é o maior cliente da spring
11. LIGANDO OS PONTOS
NECESSIDADES
• Service Discovery
• Resiliência
• Monitoramento
• Configurações
• Segurança
• Servidor de Borda
FRAMEWORKS
• Netflix Eureka
• Netflix Hystrix
• Actuator / New Relic
• Spring Cloud Config
• Spring Security OAuth2
• Netflix Zuul / Netflix Ribbon