Revisão de Map

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

REVISÃO DE MAP

Computação em Nuvem:
O que é? É a entrega de serviços de computação (servidores,
armazenamento, bancos de dados, redes, software, etc.) por meio da
internet ("a nuvem"), permitindo o acesso remoto.

Características:
● Virtualização
○ Acessível virtualmente
● Multiplataforma
○ Pode ser acessado por diversas plataformas
● Serviço/Acesso sob demanda
○ Escalabilidade: Capacidade de aumentar ou diminuir os
recursos conforme a demanda do usuário.
○ Elasticidade: Ajusta-se dinamicamente às necessidades de
recursos do usuário.
● Customização
○ O usuário define o serviço com base no seu perfil.

Modelos de implantação e serviço em nuvem


Modelos de implantação:
● Pública
○ Não possui restrição de acesso
● Privada
○ Possui restrição de acesso
● Híbrida
○ Dois modelos de implantação juntos
● Comunitária
○ Disponibilizada por instituições públicas ou privada sem fins
lucrativos
● On Premise
○ Recursos são mantidos localmente no data center do cliente.
Modelos de serviço:
● SaaS (Software as a Service): O provedor entrega um software
pronto para o uso. Exemplo: Google Drive, Spotify, Netflix.
● IaaS (Infrastructure as a Service): O provedor oferece infraestrutura
básica, como servidores e armazenamento. O usuário gerencia a
configuração e operação.
● PaaS (Platform as a Service): O provedor entrega um ambiente para
desenvolvimento de aplicativos, sem a necessidade de gerenciar o
sistema operacional. Exemplo: Google App Engine.
● HaaS (Hardware as a Service): O provedor entrega hardware, como
servidores ou computadores, conforme a demanda do usuário.

Versionamento de Código
O que é? Versionamento de código permite compartilhar e controlar
diferentes versões de um código remotamente.

Sistemas distribuídos: Um conjunto de elementos computacionais


autônomos que trabalham juntos e parecem um único sistema para o
usuário final.

Repositório Local: É o armazenamento de um projeto ou código que está


no computador do desenvolvedor, acessível diretamente na máquina onde
ele está trabalhando.

Repositório Remoto: É o armazenamento de um projeto ou código em


um servidor externo ou em um serviço de hospedagem (como GitHub ou
GitLab), permitindo colaboração e acesso de vários usuários pela internet.

Untracked (Não rastreado): Arquivos que o Git ainda não está controlando.
(git init)
Modified (Modificado): Arquivos que foram alterados, mas as mudanças
ainda não foram preparadas para o commit.
Unmodified (Não modificado): Arquivos que não foram alterados desde o
último commit.
Staged (Preparado): Arquivos modificados que foram marcados para serem
incluídos no próximo commit. (git add)
git init - cria um repositório e um branch(ramificação) master/ main
git add - adiciona uma alteração no diretório de trabalho para a área de
preparação
git commit: cria uma snapshot e a chave SHA-206
git push: envia para o repositório remoto
pull request (PR/Pedido de mesclagem): envia um pedido de mesclagem
git merge: comando para mesclar duas ramificações/branches
git clone: clonar um repositório remoto na sua máquina
git branch nome_da_branch: cria uma nova ramificação/branch

Estilos e Padrões arquiteturais


Arquiteto de software: define qual é a melhor estratégia
Desenvolvedor: executa a melhor estratégia e coloca o projeto em prática

Estilos e Padrões arquiteturais

Estilo: Os estilos arquiteturais representam uma visão geral de como um


sistema de software deve ser estruturado, oferecendo uma abordagem
genérica para organizar seus componentes.
- Micro Serviços: O sistema é dividido em pequenos serviços
independentes. se relacionam (API) mas um não depende do outro
- Monolítico: Todo o sistema é construído como uma única unidade.
Acoplamento forte.
- Cliente-Servidor: O sistema é dividido entre clientes, que fazem
pedidos, e servidores, que processam e respondem. (GET, PUSH, PUT,
DELETE, PATCH)
- Componentes: São estruturas que podem ser reutilizadas.
Componentes do sistema reagem a eventos. Muito útil para sistemas
assíncronos e distribuídos, permitindo escalabilidade.
- Camadas: O sistema é organizado em camadas, onde cada uma
depende da anterior.
- Camada de Apresentação: Responsável por interagir com o
usuário. Exibe a interface gráfica (UI) ou outros meios de
interação, como telas web ou de aplicativos móveis.
- Camada de Controle: Gerencia a comunicação entre a
apresentação e a lógica. Coordena as ações dos usuários e as
respostas do sistema, como redirecionar solicitações ou validar
dados.
- Camada de Lógica (ou de Negócios): Onde reside a lógica
central do sistema. Processa dados e regras de negócios,
aplicando a lógica que define o comportamento do sistema.
- Camada de Dados: Lida com o armazenamento e recuperação
de dados, geralmente interagindo com bancos de dados ou
outros sistemas de persistência.
- Plugins: é um estilo arquitetural em que o sistema principal
(chamado de "core") é projetado para ser extensível por meio de
componentes independentes chamados plugins. Esses plugins
adicionam ou modificam funcionalidades sem alterar o código base
do sistema principal.
- Publisher-Subscriber:
- Publisher (Publicador): É o componente que gera e publica
mensagens ou eventos. Não precisa saber quem está
interessado nessas mensagens.
- Subscriber (Inscritor): É o componente que se inscreve para
receber mensagens ou eventos específicos. Não precisa saber
quem está publicando as mensagens.
- Broker (Corretor) ou Message Broker: Em muitos sistemas, um
intermediário (como um servidor de mensagens ou um
sistema de eventos) gerencia a comunicação entre
publicadores e inscritos. Ele recebe as mensagens dos
publicadores e as distribui para os inscritos apropriados.

Padrões: Os padrões arquiteturais são soluções práticas e recorrentes


para problemas que surgem ao projetar sistemas dentro de um estilo
arquitetural.
- MVC (Model-View-Controller): Divide a aplicação em três partes:
modelo (dados), visualização (interface) e controle (lógica):
1. O Model atualiza seu estado e notifica a View sobre as
mudanças.
2. A View então atualiza a interface com os novos dados do
Model.
3. O Controller processa essas ações e, se necessário, altera o
Model (Dados).
- A arquitetura hexagonal é um estilo de design de software que
organiza um sistema em torno de um núcleo de lógica de negócios
central. Ela utiliza portas e adaptadores para conectar esse núcleo a
sistemas externos.
- Núcleo: Contém a lógica de negócios e é independente de
detalhes externos.
- Portas: Definem interfaces para comunicação entre o núcleo e
os adaptadores.
- Adaptadores: Implementam as portas e conectam o núcleo a
interfaces externas, como bancos de dados e APIs.

- Arquitetura Orientada a Padrões de Projeto usa soluções testadas


e reutilizáveis, chamadas padrões de design, para resolver
problemas comuns de forma estruturada em software.
- Padrões de Design: Soluções genéricas e comprovadas para
problemas recorrentes (ex.: Singleton, Factory Method).
- Arquitetura de Software: Estrutura do sistema baseada na
aplicação desses padrões.

- Arquitetura baseada em eventos usa eventos como principal meio


de comunicação entre componentes. Arquitetura baseada em
eventos usa eventos como principal meio de comunicação entre
componentes.
- Eventos: Mensagens que indicam que algo aconteceu (ex.:
"Pedido recebido").
- Componentes:
- Publicadores: Geram eventos.
- Inscritos: Reagem a eventos.

Você também pode gostar