diff --git a/docs/topicos/microservices/introduction.md b/docs/topicos/microservices/introduction.md index 1a1609b7..5c8e6d16 100644 --- a/docs/topicos/microservices/introduction.md +++ b/docs/topicos/microservices/introduction.md @@ -12,7 +12,7 @@ nav_order: 4 -## Resumo +## Resumo 📖 Os micro serviços são uma maneira conceber a arquitetura interna de um sistema onde as funcionalidades são vistas como @@ -128,6 +128,57 @@ serviços pode exigir uma mudança na cultura organizacional, incluindo uma abordagem mais colaborativa entre equipes e uma mentalidade orientada a serviços. +### Arquitetura de Micro Serviços + +A arquitetura de micro serviços é uma abordagem de arquitetura de software que +consiste em dividir uma aplicação em um conjunto de serviços independentes, cada +um executando um processo de negócio específico. Cada serviço é construído em +torno de uma ou mais funcionalidades de negócio e pode ser implantado, +escalado e gerenciado de forma independente. Os micro serviços se comunicam +entre si através de APIs, geralmente usando protocolos de comunicação como HTTP, +REST, gRPC, entre outros. + +Um tipo de arquitetura de micro serviços que tem ganhado popularidade nos últimos +anos é a arquitetura de _cloud-native_, que é projetada para ser executada em +ambientes de nuvem e aproveitar os recursos e serviços oferecidos por plataformas +de nuvem como AWS, Azure, Google Cloud, entre outros. A arquitetura de +_cloud-native_ é caracterizada por ser altamente distribuída, resiliente, +escalável e elástica, e geralmente é baseada em contêineres e orquestradores de +contêineres. + +Numa arquitetura de micro serviços, existe pelo menos dois tipos de _workflows_ +bastante conhecidos, são eles: coreografia e orquestração. Na coreografia, cada +micro serviço é responsável por coordenar suas próprias ações, enquanto na +orquestração, um serviço central é responsável por coordenar as ações dos +demais serviços. A escolha entre coreografia e orquestração depende do contexto +e dos requisitos do sistema, e ambas as abordagens têm vantagens e desvantagens. + +### Eclipse MicroProfile + +O [Eclipse MicroProfile](https://microprofile.io) é uma iniciativa de código +aberto que visa acelerar a inovação em micro serviços baseados em Java. O +MicroProfile foi criado em 2016 por um grupo de empresas e indivíduos que +estavam interessados em promover tecnologias de micro serviços para a plataforma +Java. O objetivo do MicroProfile é fornecer um conjunto de especificações e APIs +que podem ser usadas para construir e implantar aplicativos de micro serviços +baseados em Java. + +O MicroProfile é baseado em tecnologias e padrões de código aberto, incluindo +Java EE, JAX-RS, CDI, JSON-P, JSON-B, JWT, OpenAPI, entre outros. O MicroProfile +também se integra com outras tecnologias de código aberto, como Kubernetes, +Docker, Prometheus, Jaeger, entre outros. O MicroProfile é projetado para ser +leve, modular e fácil de usar, e é adequado para construir aplicativos de micro +serviços que são executados em ambientes de nuvem. + +## Exercícios 📝 + +
+ +
+ # Referências * Eclipse MicroProfile White Paper 2019. Disponível em: diff --git a/docs/topicos/microservices/questions.html b/docs/topicos/microservices/questions.html new file mode 100644 index 00000000..ea38bfd2 --- /dev/null +++ b/docs/topicos/microservices/questions.html @@ -0,0 +1,50 @@ + + + + + + + + + Questões + + +
+ # O que são micro serviços? + - [ ] Um tipo de computador muito pequeno + - [x] Uma arquitetura de software onde uma aplicação é dividida em + componentes independentes + - [ ] Um tipo de serviço de entrega de comida + - [ ] Uma linguagem de programação + + # Qual é uma vantagem dos micro serviços? + - [x] Maior modularidade e reusabilidade de código + - [ ] Maior overhead de comunicação + - [ ] Menor escalabilidade independente + - [ ] Maior consistência de dados + + # Qual é uma desvantagem dos micro serviços? + - [ ] Resiliência + - [ ] Custo de infraestrutura reduzido + - [x] Complexidade operacional aumentada + - [ ] Gerenciamento simplificado de versões + + # O que pode ser um desafio ao testar sistemas baseados em micro + serviços? + - [ ] Testabilidade simplificada + - [ ] Menor complexidade de testes de integração + - [ ] Overhead de comunicação reduzido + - [x] Necessidade de testes de integração entre os diversos serviços + + # Como os micro serviços são acessados pelos usuários em uma + arquitetura típica? + - [ ] Diretamente através dos navegadores web + - [x] Através de um API Gateway + - [ ] Por meio de um servidor DNS + - [ ] Não podem ser acessados pelos usuários + +
+ + \ No newline at end of file