Skip to content

Instantly share code, notes, and snippets.

@reginadiana
Last active May 15, 2023 23:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save reginadiana/55fbe30467e8f777e74a670c599a025e to your computer and use it in GitHub Desktop.
Save reginadiana/55fbe30467e8f777e74a670c599a025e to your computer and use it in GitHub Desktop.
Anotações sobre Arquitetura de Software

Internet

Rede de dispositivos computadorizados de alcance mundial. Surgiu na década de 60 durante a Segunda Guerra em projetos academicos, mas o seu uso popular aconteceu na década de 80.

Web

É uma funcionalidade da internet para navegar através do hipertexto.

Protocolo

É um conjunto de regras para que os dispositivos se comuniquem.

DNS

É um sistema de nomes de dominios que asociam um nome amigável (ex: google) ao seu endereço real, que corresponde a um número de IP, que na maioria das vezes é dinamico. São os servidores de DNS que fazem essa tradução e permitem um acesso mais fácil ao recurso web.

CDN

Armazena os dados estátivos de um site (ou seja, os que não mudarão com tanta frequencia como imagens e videos) em cache para que quando o usuário acesse pela segunda vez o carregamento seja mais rápido. Isso porque pelos recursos precisam ser requisitados na segunda vez.

A CDN captura o seu IP local e requisita os dados no data center mais próximo dele geograficamente falando, protegendo contra picos de tráfico, reduzindo custsos com infraestrutura e banda larga, além de transmitir os dados de forma criptografada (SSL).

Ele funciona como um proxy reverso, repassando o tráfego de rede para um conjunto de servidores em data centers ao redor do mundo.

O erro 504 pode ser causado por falhas na CDN ou DNS, além de poder ser gerado por banco de dados corrompido.

Servidor

Contém todas as informações, arquivos e códigos do site para disponibilizar o acesso ao publico.

Estrutura de uma URL

Protocolo, diz como acessar. Dominio, diz onde acessar. Caminho, diz em qual parte acessar.

Uma URI é um localizador e uma URL prove informações de como o recurso pode ser acessado.

HSTS

É uma especificação que dá aos sites a chance de dizer se preferem ser acessados somente via conexão segura. É enviado um metadado no cabeçalho da requisição. Se não for configurado, é possível acessá-lo com http://...

Cache

É uma cópia local dos arquivos que o servidor envia, mas ele expira depois de um tempo. O servidor decide se deve enviar todo o conteúdo novamente ou apenas uma resposta 304 (não modificado), dizendo ao navegador que ele pode entregar o mesmo conteúdo ou renovar os dados de cache que já existem.

Buffer Overflow

É um tipo de ataque que pode ser previnido executando verificações de tamanho e intervalo (range) em todos os dados de entrada e saída que a sua aplicação lida.

📚 Arquitetura de Software

XSD

É um schema no formato xml usado para definir a estrutura de dados que será valida. Ele funciona como uma documentação de como deve ser montado o SOAP Message que será enviado através do web service.

Rest

É um estilo de arquitetura de software que define a implementação de serviços web. Podem trabalha com os formatos xml, json, entre outros.

Vantagens do Rest:

⭐ Permite integrações entre aplicações e também entre cliente e servidor em páginas web e aplicações.

⭐ Utiliza dos métodos http para definir a operação que está sendo efeituada

⭐ Arquitetura de fácil compreensão

Estrutura do Rest:

API's

Consistem em um conjunto de rotinas documentadas para que outros sistemas possam consumir suas funcionalidades.

Status HTTP

Status Descrição geral
1xx Informativo
2xx Sucesso
3xx Redirecionamento
4xx Erro do Cliente
5xx Erro do Servidor

Caracteristicas de um monolito

  1. Baixa complexidade
  2. Monitoramento simplificado
  3. Stack unica
  4. Compartilhamento de recursos
  5. Acoplamento
  6. Escalabilidade mais complexa

Caracteristicas de um microserviço

  1. Stack dinamica
  2. Mais fácil de ser escalado
  3. Acoplamento
  4. Monitoramento mais complexo
  5. Provisionamento mais complexto

Para continuar estudando ...

monolito, microserviços, serviços externos, message broken, gerenciamento de papiline, proxy, http, etc

Estrutura do Rest

Web Services

São serviços/soluções para aplicações se comunicarem independente de linguagem, software e hardware utilizados. Inicialmente foram criados para troca de mensagens utilizando a linguagem XML sobre o protoloco hhtp, sendo identificado por URI. Podemos dizer que web services são API's que se comunicam por meio de redes sobre o protocolo HTTP.

SOAP

É um protocolo simples de acesso ao objeto, baseado em XML para acessar serviços web principalmente por HTTP. Pode-se dizer que SOAP é uma definição de como web services se comunicam. Foi desenvolvido para facilitar integrações entre aplicações indepentente de linguagem, plataforma ou software, pois usa como linguagem comum de comunicação: o XML.

Ele possui meio de transporte generico, ou seja, pode ser usado por outros protocolos além do HTTP.

O SOAP Message possui uma estrutura única que deve sempre ser seguida:

WSDL

Funciona como um contrato do serviço do web service. A descrição é feita em um documento XML, onde é descrito o serviço, especificações de acesso, operações e métodos.

Segurança

💻 De 3 a cada 4 sistemas tem problemas de vulnerabilidade por conta da exposição de dados sensiveis e informação critica no código.

💻 Não é uma boa prática usar a ultima versão das imagens.

Processo de uma requisição

  1. Ao digitar um endereço, temos uma URl (identificador) e http (protocolo de transferencia).

  2. Uma comunicação é iniciada via protocolo TCP (garantindo que os pacotes cheguem ao destino) entre o computador (client) e o servidor (máquina que recebe o pedido e envia a resposta).

  3. O endereço (dominio) é convertido em IP (endereçamento de computadores) via DNS.

  4. O pedido é percorrido pelos proxies, que são dispositivos fisicos como o moden, roteador e outros computadores para enviar os pacotes.

  5. Quando o pedido chega ao servidor, ele é analizado e se for aceito, volta pelo mesmo caminho.

Perifericos

São dispositivos de entrada e saída do computador como mouser, monitor, teclado, etc

Firmware

É o software presente nos perifericos

Drivers

Fazem a ponte entre um periferico e o computador. Cada um tem o seu.

Memoria RAM

É uma placa que armazena dados temporariamente. Ao salvar os dados, eles são transferidos da RAM para o HD ou SSD (outros dispositivos de armazenamento) para sempre, pois se não fizermos isso e desligar a máquina, todos os dados serão limpos.

Todos os programadas do computador possuem memória RAM.

Quando o computador "trava" é porque a memorária RAM está cheia.

Processador

Transforma informações em código binário, ele é como se fosse o cerebro do computador.

LGPD

Um processo de LGPD demora de 6 a 8 meses para ser implementado, dependendo da empresa. Um dos principais empecilhos para a implementação da LGPD é o código e novas features. Não é simplesmente desenvolver software, precisa atender as leis. O time de software, advocacia e negócios devem estar alinhados. Deixar claro como os dados serão utilizados. Desenvolvimento de software é caro. Uma das formas de implementar isso é investindo uma arquitetura de software solida.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment