Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JUGVale 14 - 14/09/2019

82 views

Published on

Palestra JUGVale 14 em São José dos Campos.
Introdução a Microsserviços e o Framework Spring Cloud.
Palestrantes:
- Bruna Souza
- Jether Rodrigues

Published in: Software
  • Be the first to comment

  • Be the first to like this

JUGVale 14 - 14/09/2019

  1. 1. INTRODUÇÃO A MICROSSERVIÇOS COM SPRING CLOUD Jether Rodrigues Software Developer Specialist | OCAJP8 | Kotlin | Remote Work Bruna Souza Software Engineer | Java | Android
  2. 2. Apresentação Bruna Souza Formada em Sistemas de Informação pela Unicamp, pós graduada em Engenharia de Software, tenho 3 anos de experiência com java desenvolvendo aplicações WEB, desktop e mobile com Vaadin, JavaFX e Android. Linkedin: https://www.linkedin.com/in/bruna-souza-4ab20859/ Jether Rodrigues Bacharel em Ciência da Computação, MBA em Tecnologia da Informação, certificado OCAJP 8. Desenvolvedor de Software. https://github.com/jether2011
  3. 3. ARQUITETURA MONOLÍTICA ARQUITETURA DE MICROSSERVIÇOS PRÓS E CONTRAS - MONOLITO PRÓS E CONTRAS - MICROSSERVIÇOS MIGRANDO PARA MICROSSERVIÇOS COMUNICAÇÃO E INTEGRAÇÃO MSA COM SPRING CLOUD MSA NATIVE CLOUD TOOLS REFERÊNCIAS
  4. 4. Arquitetura Monolítica Uma arquitetura monolítica é um modelo unificado para projetar uma solução de software. Todos os componentes de software nesta arquitetura são interconectados e interdependentes. Em uma arquitetura tão fortemente acoplada, cada componente e seus componentes relacionados devem estar funcionais para que o código seja executado ou compilado com êxito.
  5. 5. Arquitetura de Microsserviços A arquitetura de microsserviços, é uma abordagem modular para projetar uma solução de software. Nesta arquitetura, um aplicativo de software é construído com um grupo independente de componentes que executam cada processo de aplicativo como um serviço. A arquitetura de microsserviços é fracamente acoplada, um componente é independente do outro, pode ser escrito em diferentes linguagens de programação, usar diferentes armazenamentos de dados e serve apenas uma função específica.
  6. 6. Prós e Contras Vantagens ● Menos sobrecarga operacional. ● Base de código centralizado ● Configuração mais simples ● Monitoramento mais simples ● Mais facilidade de executar testes integrados ● Controle de versionamento e compatibilidade ● Implantação mais simples (Deploy) Desvantagem ● Ponto único de falha ● Complexidade de código ● Time maior e com menos flexibilidade na adoção de tecnologias ● Lentidão (Uso de muito recurso, sobrecargas dos webservers, IDE) ● Escalabilidade reduzida e mais cara ● Produtividade reduzida ● Implantação lenta e com janelas reduzidas Monolito
  7. 7. Prós e Contras Vantagens ● Fracamente acoplado com outro serviço ● Possibilidade de separação de base de dados ● Sem ponto único de falha (isolamento) ● Manutenção e produtividade facilitada ● Implantação contínua e independente ● Times poliglotas ● Substituição com facilidade ● Escalabilidade independente ● Inicialização da aplicação mais rápida Desvantagem ● Implantação e execução mais complexa. ● Testes de integração e contrato mais complexos. ● Monitoramento complexo. ● Relacionamentos Ocultos: Nesta arquitetura não fica evidente qual microsserviço chama outro. ● A forte modularização torna a refatoração um desafio, se existir funcionalidades para serem movidas. ● Sistemas distribuídos são complexos. As chamadas entre microsserviços podem falhar devido a rede e podem ser mais lentas do que dentro de um processo. Microsserviços
  8. 8. Migrando para microsserviços ● Aplicar decomposição ● Por negócio ● Por subdomínio ● Aplicação do conceito de desenvolvimento orientado a domínio (DDD - Domain-Driven Design) ● Utilização do padrão de estrangulamento (Strangler Pattern) ● Utilização de Arquitetura Hexagonal (Ports and Adapter Pattern)
  9. 9. Arquitetura de Microsserviços
  10. 10. Comunicação e Integração ● Protocolo HTTP 1.1 ● Estilo arquitetural REST e a implementação RESTFul ○ Verbos HTTP ○ Stateless ○ https://restfulapi.net/ ● gRPC (Protobuf, HTTP2) ● Mensageria (RabbitMQ, Kafka, ...) ● Segurança ○ Confiabilidade (HTTPS) ○ Autenticação, Autorização e Integridade (OAuth2, JWT)
  11. 11. MSA com Spring Cloud ● Stack completa para desenvolvimento de microsserviços e mantida pela Pivotal ● Netflix OSS - https://netflix.github.io/ ● Desvantagem em basear o desenvolvimento totalmente no framework e suas ferramentas
  12. 12. MSA - Native Cloud Tools
  13. 13. Links Úteis ● https://github.com/jether2011/jugvale ● https://microservices.io/patterns/index.html ● https://github.com/cncf/trailmap ● https://landscape.cncf.io ● https://geemus.gitbooks.io/http-api-design/content/en/index.html ● https://12factor.net/pt_br/ ● https://httpstatuses.com/ ● https://herbertograca.com/2017/09/14/ports-adapters-architecture/ ● https://martinfowler.com/articles/microservices.html ● https://github.com/donnemartin/system-design-primer
  14. 14. Referências

×