Você está na página 1de 492

INFRAESTRUTURA PARA

SISTEMAS DE SOFTWARE

Introdução às Redes de Computadores


• As redes de computadores foram criadas com o intuito primário de
permitir que:
• Dois ou mais elementos computacionais pudessem se comunicar
• Para compartilhar recursos
• Áudio, vídeo, imagens, acessar aplicações, para operar máquinas
remotamente

• As redes atuais permitem que centenas de milhares de aplicações


possam trocar dados
• Pessoas com pessoas
• Pessoas com empresas
• Empresas com empresas
• Dispositivos com outros dispositivos sem a intervenção humana
• As redes de computadores são formadas por diversos elementos
que envolvem inúmeros blocos:
• Usuários e aplicações
• Roteadores
• Switches
• Servidores
• Meio físico cabeado, meio físico aéreo
• Links de comunicação
• Celulares, tablets, desktops

• Diferentes tecnologias de comunicação


• Diversos protocolos para garantir que a comunicação ocorra
• Para um elemento computacional (hoje um celular, um tablet, um
desktop, notebook) ser conectado a uma rede de dados é preciso:
• Uma placa de rede
• E que esta placa de rede esteja ligada por algum link (meio
cabeado ou meio aéreo) a um elemento de comutação

• É por meio da placa de rede que todos os sinais são transmitidos pelo
cabo, ou pelo ar
• Em seguida, esses sinais são interpretados tanto pelo emissor quanto
pelo receptor para que as informações possam ser apresentadas aos
usuários das aplicações
• Denominamos de elemento de comutação, no contexto de uma rede
local, aquele que:

• Vai receber dados em algum formato de um emissor, e vai comutá-


lo/processá-lo e encaminhar o mesmo para o receptor da informação,
estando ele ou não na mesma rede do emissor
• Por exemplo: Suponha que o emissor A queira enviar um arquivo para o
emissor B e que ambos estejam na mesma rede (chamamos essa rede
de rede local). O repasse dos dados de forma bastante simplista será
feita por um elemento chamado switch
• Se A estiver em uma rede e B estiver em outra (ou seja em duas redes
distintas), será preciso que outro elemento denominado roteador se
encarregue de encaminhar os dados/pacotes entre elas.
• Como destacamos anteriormente, diversos são os elementos que
compõem uma rede de computadores

• Cada um desses elementos opera/funciona obedecendo regras,


para que os usuários/computadores possam se comunicar

• Devido à complexidade envolvida, a concepção de uma rede


considera que os dados são transportados utilizando-se de
diversas camadas no processo de comunicação
• Vamos abordar um exemplo, que apesar de não ser ligado ao
ambiente computacional, servirá de base para você entender
como tudo isso funciona

• Suponha os seguintes elementos para organizarmos alguns


dados em camadas:

• 1 palito de fósforo
• 1 caixa de fósforo
• 1 caixa de sapato
• 1 caixa de papelão
• 1 caixa de um fogão de 4 bocas
• Suponha a sequência do emissor, o qual deseja enviar um
palito de fósforo a um receptor:

Coloque o palito na caixa


de fósforo

Coloque a caixa de fósforo


na caixa de sapato

Coloque a caixa de sapato


na caixa de papelão

Coloque a caixa de Envie a caixa do fogão


papelão na caixa do fogão para o receptor
• Suponha a sequência do receptor, o qual deseja enviar um
palito de fósforo a um emissor:

Recebe a caixa do fogão

Retire a caixa de
papelão da caixa do
fogão
Retire a caixa de sapato
da caixa de papelão

Retire a caixa de fósforo Retire o palito de fósforo


da caixa de sapato da caixa de fósforo
ARQUITETURA EM CAMADAS
• O que acabamos de discutir anteriormente é a organização da
comunicação na forma de camadas

• Os computadores trocam informações obedecendo uma


arquitetura em camadas, com cada uma tendo regras/protocolos
bem estabelecidos

• Vamos tratar de forma simples de dois tipos de modelos de


arquitetura em camadas

• Modelo OSI
• Modelo TCP/IP
MODELO OSI

• O modelo OSI (Open System Interconection) é conhecido por


ser um modelo de referência, que não foi implementado na
prática. Ele possui as camadas descritas a seguir:
MODELO TCP/IP

• O modelo TCP/IP é o padrão de comunicação na maioria das


redes, sendo utilizado na prática por inúmeros elementos de
comunicação em redes locais ou remotas. Diferentemente do
modelo OSI, o TCP/IP possui 4 camadas:
OSI x TCP/IP
• Se comparamos os dois modelos veremos que o TCP/IP é mais
simples, do ponto de vista do número de camadas
Modelos de Camadas
• Mas qual a razão para organizar a comunicação em camadas?
• A complexidade de todo o processo
• Os tipos de elementos que compõem todo o processo de
comunicação
• Fabricantes de equipamentos distintos
• Diferentes hardwares
• Diferentes aplicações
• Diferentes equipamentos de roteamento

• Organizar em camadas permite que cada camada seja responsável


por uma tarefa/grupo de tarefas, no processo completo de
comunicação entre duas entidades comunicantes.
Funções gerais das camadas do TCP/IP
• Vejamos então as funções gerais de cada camada do modelo
TCP/IP
• Processo de rede para aplicações
• Representação das mensagens
• Formatação das mensagens

• Conexão ponto a ponto entre processos/


aplicações que executa em hosts diferentes

• Endereçamento lógico dos hosts


• Roteamento
• Acesso ao meio físico
• Transmissão binária
• Codificação/Decodificação de sinais
• Veja que no exemplo anterior, estabelecemos uma regra
para enviar e obter o simples palito de fósforo

• 5 passos no emissor
• 5 passos no receptor

• Vamos trazer isso para o mundo dos computadores

• E como isso ficaria no modelo TCP/IP supondo que temos uma


aplicação que deseja enviar uma mensagem para outro
computador?
• A comunicação entre os hosts e aplicações
• C indica o cabeçalho que é utilizado em cada camada,
tanto no emissor quanto no receptor. M é a mensagem

• Muitos detalhes estão ocultos porque serão estudados


em Redes de Computadores

emissor receptor
mensagem M aplicação
M aplicação
segmento C M transporte
C M transporte
datagrama C C
t
M rede
C C M rede
C C
C Cn Ct
M enlace
C M enlace
quadro n t
l n t
física Canal de Comunicação física
A Internet
• O que é?
Rede móvel
PC ISP global
servidor • milhões de dispositivos de
computação conectados:
laptop hospedeiros = sistemas finais
sem fio Rede doméstica
celular • executando aplicações de ISPregional
portátil
rede
Pontos ❑ enlaces de comunicação
de acesso Rede institucional
❖ fibra, cobre, rádio, satélite
Enlaces
com fio ❖ taxa de transmissão =
largura de banda
Roteador ❑ roteadores: encaminham
pacotes (pedaços de dados)
Aplicações da Internet
• Inúmeras são as aplicações que “rodam” na Internet
• Serviços de e-mail
• Serviços de streaming de áudio e vídeo
• Serviços de compartilhamento de arquivos
• Serviços e pagamento on-line
• Aplicação para acesso seguro a dados sigilosos

• Algumas das aplicações acima podem ser executadas fora do


que chamamos de Web, ou WWW, pois são anteriores à Web
como ela é conhecida hoje
A World Wide Web
• Vamos finalizar apresentando rapidamente o que é a WWW, pois
vamos discutir melhor esse assunto na Semana 03

• A WWW ou Web refere-se a um sistema de documentos em


hipermídia que são interligados por uma rede de computador
• Mais comumente na rede mundial de computadores que é a
Internet

• E a Internet?
• Internet Conjunto de redes interconectadas cuja função é
possibilitar a comunicação de inúmeras aplicações distribuídas
Referências

● Redes de Computadores e a Internet. J.F Kurose e K.W. Ross.


5ª e 6ª Edições
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Introdução às Redes de Computadores


INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Principais Protocolos de Comunicação


ROTEIRO
• Importância dos protocolos na comunicação

• O que é um protocolo?

• Protocolos fundamentais para a comunicação das aplicações


que utilizam a Internet
• TCP
• UDP
• IP
Importância de um protocolo de comunicação?
Protocolos humanos:
● “Que horas são?”
● “Eu tenho uma pergunta.”
● Como abrir/fechar uma porta?
● Como fazer um churrasco?
Protocolos de comunicação em redes:
• Máquinas no lugar de humanos
• Toda atividade de comunicação na Internet é governada por
protocolos
Importância de um protocolo de comunicação?

Importante
• Para mensagens específicas que enviamos e ações
específicas que realizamos

• Há respostas específicas a serem recebidas

• Exemplo: saber que horas são


O que é um protocolo de comunicação?
Protocolo de horas (humanos/computadores)
O que é um protocolo de comunicação?

Todo protocolo considera:


• O serviço a ser oferecido
• O ambiente onde ele executa, incluindo os serviços utilizados
pelo protocolo
• O vocabulário de mensagens utilizado para implementá-lo

• O formato de cada mensagem do vocabulário

• Os algoritmos que tentam garantir a troca de mensagens e a


integridade do serviço oferecido
O que é um protocolo de comunicação?

Em resumo
• Protocolos são padronizações que definem como se dá a
comunicação e a utilização do meio físico na infraestrutura de
comunicação (rede)
• Os protocolos consideram:
• Semântica (regras): temporizações, controle de erros, etc.
• Sintaxe (formato): codificação, quadro, etc.
O que é um protocolo de comunicação?

Segundo Kurose & Ross

“Um protocolo define o formato e a ordem das mensagens


trocadas entre duas ou mais entidades comunicantes, bem
como as ações realizadas na transmissão e/ou recepção
dessas mensagens”.
PROTOCOLOS DE COMUNICAÇÃO FUNDAMENTAIS DA
INTERNET

• Na comunicação de aplicações que utilizamos na Internet há


diversos protocolos

• Lembre-se que na semana anterior discutimos sobre modelos


de comunicação e suas camadas

• Cada camada possui um ou mais protocolos, dependendo do


modelo de camadas utilizado

• Para esta disciplina, consideramos o modelo TCP/IP com suas


camadas e protocolos
PROTOCOLOS DE COMUNICAÇÃO FUNDAMENTAIS DA
INTERNET

• A Internet é composta de vários tipos de redes que operam


com inúmeros protocolos de comunicação

• No contexto da infraestrutura de comunicação, grande parte


da Internet opera no modelo TCP/IP.

• Vamos abordar de forma simples 3 protocolos deste modelo


• IP
• TCP
• UDP
PROTOCOLOS DE COMUNICAÇÃO FUNDAMENTAIS DA
INTERNET
• Na estrutura em camadas, apresentada na aula anterior

mensagem M aplicação
M aplicação
C
segmento C M transporte M transporte
C t
C
datagrama C C
t
M rede M rede
C n
C t
C
quadro
C Cn Ct
M enlace M enlace
l n t
l n t
física Canal de Comunicação física

IP - Camada de rede
TCP - Camada de transporte
IP – Internet Protocol

• O IP é um protocolo representante da camada de rede do


modelo TCP/IP
• A Camada de rede tem como funções principais:
• Endereçamento
• Determinação de caminhos: rota escolhida pelos pacotes entre a
origem e o destino. Algoritmos de roteamento determinam os
valores para a comutação
• Comutação (ou repasse): mover pacotes entre as portas de
entrada e de saída dos roteadores
Ou seja, tudo o que diz respeito à comunicação Host a Host, está
descrito na camada rede
IP – Internet Protocol
• Com o protocolo IP
• Não existe estabelecimento de conexão na camada de rede

• Os roteadores utilizam informações do protocolo para


encaminhar pacotes/datagramas entre origem e destino
• Ele é um protocolo que não garante que os dados chegaram
intactos e sem erros ao destino.
• Dizemos que o IP oferece um serviço de melhor esforço aos
protocolos da camada de transporte, como o TCP e o UDP
IP – Internet Protocol
Formato de um datagrama IPV4

Data
TCP – Transmission Control Protocol
• O TCP, como já descrito, faz parte da camada de transporte do
modelo TCP/IP
• Dentre as funções desta camada temos:
• A origem aceita dados da camada de aplicação, e os divide em
unidades menores em caso de necessidade. Em seguida passa-
os para a camada de rede e garante que todas essas unidades
cheguem corretamente à outra extremidade (no destino)
• Tudo deve ser feito com eficiência de forma que as camadas
superiores fiquem isoladas das mudanças na tecnologia de
hardware
• Entidade de transporte: hardware/software que executa as funções
da camada de transporte (kernel do SO, biblioteca vinculada a
aplicações de rede, placa de interface de rede, etc.)
TCP – Transmission Control Protocol

• A camada de transporte é uma camada fim a fim, que liga a


origem ao destino

• Um programa da máquina de origem mantém uma conversa


com um programa semelhante instalado na máquina de destino,
utilizando cabeçalhos e mensagens de controle

• Segmento - unidade de dados trocada entre entidades da


camada de transporte
TCP – Transmission Control Protocol

• A camada de transporte
por meio de protocolos
como o TCP fornece
comunicação lógica entre
processos de aplicação em
diferentes hosts

• Os protocolos de transporte
são executados nos
sistemas finais da rede
TCP – Transmission Control Protocol

Serviços de Transporte
• Confiabilidade na entrega dos
dados
• Controle de congestionamento,
controle de fluxo
• Orientado à conexão

• É preciso estabelecer uma conexão


ponto a ponto e fim a fim entre duas
aplicações separadas por uma rede
para iniciar a transferência dos
dados
UDP – User Datagram Protocol
Formato do Segmento UDP

DADOS DA APLICAÇÃO
UDP – USER DATAGRAM PROTOCOL
• Protocolo de transporte da Internet
“simplificado” Por que existe um UDP?
• Serviço de “melhor esforço”, pois os • não há estabelecimento
segmentos UDP podem ser: de conexão
• perdidos • não há estado de conexão
nem no transmissor, nem
• entregues fora de ordem para a no receptor
aplicação de destino
• cabeçalho de segmento
• Sem conexão: reduzido
• não há apresentação entre o UDP
emissor e o receptor
• cada segmento UDP é tratado de
forma independente dos outros
UDP – User Datagram Protocol
Formato do Segmento UDP
32 bits

porta origem porta destino


tamanho checksum

Dados de
Aplicação
(mensagem)
REFERÊNCIAS

∙ Redes de Computadores e a Internet. J.F Kurose e K.W. Ross.


5ª e 6ª Edições
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Principais Protocolos de Comunicação


INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Endereçamento IP
ROTEIRO

• Endereçamento IPV4
• Classes IPV4
• Máscara de Rede
• Sub-Redes
• Como fazer Sub-Rede
ENDEREÇAMENTO IPV4
Endereçamento IPV4
• Version: informa a versão do protocolo (4 bits)
• IHL: informa o tamanho do cabeçalho em palavras de 32 bits (4bits)
• Type of service: informa as classes de serviço (necessidades em
termos de atraso, confiabilidade) (8 bits)
• Total length: informa o tamanho do datagrama (16 bits)
• Identification: identifica o datagrama (todos os fragmentos de um
datagrama possuem o mesmo ID) (16 bits)
● Fragmentação (MTU de tamanho diferentes)

• DF (1bit): não fragmentar o datagrama


• MF (1bit): indica se há mais fragmentos de um datagrama
– Último: bit 0
Endereçamento IPV4
• Fragment offset: localização do fragmento no datagrama. Múltiplos
de 8 bytes - máximo de 8196 fragmentos
• Time to live: contador usado para limitar o tempo de vida útil de um
datagrama (em segundos, até 255). Decrementado a cada roteador
(salto ou hop)
• Protocol: identifica o protocolo de transporte (6 para TCP e 17 para
UDP)
• Header Checksum: verifica a integridade do cabeçalho
(recalculado a cada hop)
• Source and Destination Addresses: endereços de origem e
destino
Classes IPV4

• Classe A: 126 redes com 16 milhões de hosts cada


• Classe B: 16.384 redes com 65.536 de hosts cada
• Classe C: dois milhões de redes com 254 hosts cada
• Classe D: multicast
• Classe E: reservado para testes e novas implementações de
TCP/IP

• ICANN (Internet Corporation for Assigned Names and


Number)
● distribui IPs
Classes IPV4
● Endereçamento “Classfull”
● Uso ineficiente do espaço de endereçamento, exaustão do espaço
de endereços
● Ex.: rede de Classe B aloca endereços para 65K hosts, mesmo se
só existem 2000 hosts na rede

● CIDR: classless interdomain routing (roteamento interdomínio


sem classe) (RFC 1519)
● A porção de endereço de rede tem tamanho arbitrário
● Formato do endereço: a.b.c.d/x, onde x é o número de bits na parte
de rede do endereço
Máscara de rede
Máscara de rede
• Utilizada para definir a rede à qual o host pertence
• A rede é obtida a partir de um AND (bit a bit) entre o
endereço do host e a máscara

Endereço do host

Endereço da rede - 10.1.0.0


Máscara de rede
■ Para determinar o endereço de broadcast
● Faz-se um OR bit a bit do endereço IP do host com os números
destinados à rede em 0 e os demais em 1

Endereço do host

Endereço de broadcast 📫 10.1.0.255 (último endereço da classe)


Sub-Redes

• A estrutura de endereçamento IP pode ser modificada


localmente (a critério do administrador de rede), usando-se
bits de endereçamento de máquina como um adicional para
endereçamento de rede
Sub-Redes

• O host é dividido em número da sub-rede e número do host


• O número IP é agora interpretado como:
<network number><subnet number><host number>

• A divisão é feita usando uma máscara de rede “não padrão” que


permita extrair os endereços de rede e de máquina
corretamente (CIDR)
Sub-Redes

• Por exemplo: uma rede classe B

16 bits 16 bits
<network number><host number>

● 28-2 hosts em cada sub-rede


– máscara = 255.255.255.0
Como Fazer Sub-Rede
● Antes de "reduzir" a rede 10.0.0.0/8, vamos analisar
● Esse endereço provê uma rede (10.0.0.0) e inúmeros hosts (de
10.0.0.1 a 10.255.255.254). Como não precisamos de todos
esses hosts, vamos reduzir da seguinte forma: 10.0.0.0/16. Só
mudamos a máscara! Dessa forma, temos 255 redes!
Como Fazer Sub-Rede

• Podemos ver que os 2 primeiros octetos se referem à rede e


os dois últimos ao host. Dessa forma, temos as seguintes
características:

– Um endereçamento que provê 256 redes (de


10.0.0.0 até 10.255.0.0) com 65534 hosts por rede (de
10.0.0.1 a 10.0.255.254 ou de 10.1.0.1 até 10.1.255.255)
Como Fazer Sub-Rede

• A rede tem que suportar até 10 servidores, considerando o


gateway desses servidores, teremos que ter 11 endereços de
hosts em cada rede (44 endereços)

• Como em toda a computação, redes funcionam sempre em


potências de 2. Dessa forma, não vamos conseguir prover
exatamente 11 endereços de hosts. Qual a próxima potência
de 2 após o 11??
Como Fazer Sub-Rede
Como Fazer Sub-Rede

• Qual a máscara dessa "nova rede"??


– 255.255.255.240 (/28), pois temos apenas 4 bits para
identificar cada host

• Como os bits 1 da máscara definem a porção de rede, variam-se


os bits da porção de rede do endereço IP (em vermelho) para
definir as possíveis redes
Como Fazer Sub-Rede
Como Fazer Sub-Rede
• Agora vamos pegar um endereço de rede e calcular os endereços
de hosts. Por exemplo, a rede 192.168.1.80/28

Endereço da rede

Endereço de broadcast
Como Fazer Sub-Rede

• Prefixos reservados para inter-redes privadas:


– 10.0.0.0/8 (255.0.0.0)
– 172.16.0.0/12 (255.240.0.0)
– 192.168.0.0/16 (255.255.0.0)
– 169.254.0.0/16 (255.255.0.0)
Como Fazer Sub-Rede
REFERÊNCIAS

∙ Redes de Computadores e a Internet. J.F Kurose e K.W.


Ross. 5ª e 6ª Edições
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Endereçamento IP
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Infraestrutura Computacional
ROTEIRO

• A importância da infraestrutura
• Componentes
• Exemplo de infraestrutura
• Open Compute Project
• Por que se preocupar com a infraestrutura?

● É muito comum os usuários da rede ou de aplicações que


“rodam” na nuvem se queixarem de lentidão, de queda do link
de comunicação, de falhas de segurança, etc.

● O que está mais próximo do usuário é resultado da sua


manipulação com ferramentas, programas, conectividade

● É muito complexo para um usuário ter que saber que a lentidão


na sua conexão é por conta de rompimento de um cabo de
fibra ótica, ou de um disco de armazenamento queimado, ou
de um servidor de DNS que está offline, etc.
• No contexto atual, em que grande parte das aplicações
executam em algum tipo de nuvem computacional, muitos
pontos precisam ser considerados:

● Como garantir a conectividade até o data center?


● Como garantir a operacionalização dos servidores disponíveis
para os usuários?
● E a segurança de acesso?
● E se eu quiser escalar a minha aplicação para atender uma
demanda de acesso que tende a crescer exponencialmente?
Continua…

• Outras questões não menos importantes também se destacam:


● Custo energético para manter um data center

● Autonomia pós-desastre da estrutura ou de componentes da


mesma
● Disco, placa-mãe, processadores com problemas
● Conectividade limitada (por conta de falha em dispositivos
como switches, roteadores)
Componentes

• Uma maneira de classificar os componentes de uma infraestrutura


computacional para processamento em grande escala é fazer
uma divisão considerando a granularidade

● Grossa
● Envolve componentes macro
● Fina
● Envolve componentes micro
Componentes

• Granularidade Grossa
● Servidores (banco de dados, firewalls, storage, autenticação,
réplicas), switches, roteadores, nobreaks e bancos de baterias,
ventilação, rack, ventilação (sistema de refrigeração com ar-
condicionados), sistemas de alarme do ambiente, controle de
acesso ao local onde ficam armazenados os servidores no data
center, barramento de energia elétrica, geradores, etc.
Componentes

• Granularidade Grossa
● Os componentes dos servidores em tipos e quantidades

● Placas de redes, discos (mecânicos ou SSD), placas mãe com 1

ou N processadores, placas gráficas para processamento de alto


desempenho (CUDA ou OpenCL), fontes (em geral redundantes)
→ caso uma apresente problema a outra mantém o hardware
ligado
Componentes

• Já imaginou um Data Center dentro de um A350?

● Assista a este vídeo curto para ter uma ideia de uma pequena
estrutura distribuída que ajuda no controle da aeronave
https://www.aeroin.net/piloto-airbus-a350-mostra-compartimento-secreto/
Exemplo de Infraestrutura

• Laboratório de Sistemas Distribuídos e Programação


Concorrente

● lasdpc.icmc.usp.br
● 4 clusters independentes que formam uma nuvem privada

(andromeda, halley, cosmos, taurus)


● Total de 60 servidores

● Intel e AMD

● http://infra.lasdpc.icmc.usp.br/
Exemplo de Infraestrutura

• Esta infraestrutura é atualmente desenvolvida sob as seguintes


distribuições:

● Ubuntu 20.04 LTS Focal Fossa


● Freenas (Storages)

● ClearOS (Firewall e Autenticação)

● Virtualizadores

● KVM/Qemu e HyperV (Microsoft)


Exemplo de Infraestrutura

• Estrutura de virtualização baseada no KVM (Kernel Virtual


Machine)
● 318 máquinas virtuais

● Utilizamos somente ferramentas de código fonte aberto para

gerenciar as VMS

● Kimchi Project
● An HTML5 based management tool for KVM

https://github.com/kimchi-project/kimchi/wiki
Exemplo de Infraestrutura

• Middleware para computação de alto desempenho OpenMPI

• Middleware para computação distribuída, incluindo middlewares


para IoT (GSN, OpenHab, Mosquitto)

• Plataforma para processamento em GPUs


● 26 placas GTX 650 com CUDA Framework
Open Compute Project

• OCP é uma comunidade global de líderes em tecnologia que


trabalham em conjunto para liberar infraestruturas de TI
proprietárias para tornar o hardware mais eficiente, flexível
e escalável, facilitando a personalização → Redução de
Custos.

• Site: https://www.opencompute.org/
Open Compute Project

O projeto em linhas gerais promove:


• Um ecossistema dinâmico do setor para a implantação global de
datacenters na nuvem.

• Compartilhamento do mesmo servidor e os mesmos projetos de


datacenter que capacitam a nuvem em hiperescala.

• Organizações de todos os portes podem melhorar o desempenho,


a eficiência, o consumo de energia e os custos de seus
datacenters.
Open Compute Project
• No projeto de hardware para nuvem em grande escala:
● Todas as especificações de projeto em software livre

● Os operadores de datacenters e de TI aproveitam a inovação

desenvolvida pela comunidade para escalar os projetos de


hardware
Open Compute Project

• É importante destacar que a ideia do OCP não se restringe


somente a construção de um hardware aberto mas também a
questões relacionadas à operação segura da infraestrutura seja
atendida
• Um exemplo é o projeto Cerberus que segue um padrão do NIST
– 800-193 para que:

● Fornece orientações técnicas e recomendações de suporte à


resiliência de firmware e dados da plataforma contra ataques
potencialmente destrutivos.
Open Compute Project
• O Cerberus consiste em um microcontrolador criptográfico que executa
um código seguro que intercepta os acessos do host para flash no
barramento (onde o firmware é armazenado), medindo e atestando
continuamente esses acessos para garantir a integridade do firmware
● Vantagens

● Robusta integridade de pré-inicialização, tempo de inicialização e

tempo de execução para todos os componentes de firmware no


sistema.
● A especificação é agnóstica de arquitetura de CPU e E/S e se destina

a ser facilmente integrada a vários designs de fornecedores ao longo


do tempo, permitindo implementações de firmware mais seguras em
todos os tipos de plataforma em todo o setor, desde datacenter a
dispositivos IoT
Open Compute Project

• Projeto Cerberus e NIST 800-193 (Continua…)

● As diretrizes técnicas neste documento promovem resiliência na


plataforma,descrevendo os mecanismos de segurança para
proteger a plataforma contra alterações não autorizadas,
detectar alterações não autorizadas que ocorrem e se recuperar
de ataques de forma rápida e segura.
Open Compute Project

• O Projeto Cerberus pode ajudar a defender o firmware da


plataforma das seguintes ameaças:
● Usuários internos mal-intencionados com privilégio
administrativo ou acesso a hardware
● Hackers e malware que exploram bugs no sistema operacional,
aplicativo ou hipervisor
● Binários de firmware comprometidos
REFERÊNCIAS

• https://www.opencompute.org/
• https://en.wikipedia.org/wiki/Open_Compute_Project
• https://www.se.com/br/pt/work/solutions/for-business/data-centers-and-
networks/open-compute/
• https://azure.microsoft.com/pt-br/global-infrastructure/hardware-innovation/
• https://azure.microsoft.com/pt-br/blog/microsofts-project-olympus-delivers-
cloud-hardware-innovation-at-scale/
• https://www.opencompute.org/wiki/Server/ProjectOlympus
• https://azure.microsoft.com/pt-br/blog/microsoft-reimagines-open-source-
cloud-hardware/
• https://csrc.nist.gov/publications/detail/sp/800-193/final
• https://www.aeroin.net/piloto-airbus-a350-mostra-compartimento-secreto/
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Infraestrutura Computacional
04/10/2022 17:45 Conteúdo

Pergunta 1 2,5 em 2,5 pontos


Atualmente, a infraestrutura computacional é importante para garantir a disponibilidade do serviço. Ela é
responsável por manter ativas as aplicações que milhões de usuários utilizam todos os dias.

Sobre isso, analise as asserções a seguir e a relação proposta entre elas.

I. No contexto atual, em que grande parte das aplicações executam algum tipo de nuvem computacional,
muitos aspectos precisam ser avaliados.

PORQUE

II. A segurança do acesso dos usuários, a conectividade com os data centers e a disponibilidade dos
servidores são aspectos a serem considerados nas infraestruturas.

Com base na análise das asserções, conclui-se que:

Resposta b. 
Selecionada: as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

Respostas: a primeira asserção é verdadeira, e a segunda asserção é falsa;


a. 

b. 
as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

c. 
as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

ambas as asserções são falsas.


d. 

a primeira asserção é falsa, e a segunda asserção é verdadeira;


e. 

Comentário JUSTIFICATIVA
da
resposta: A primeira proposição está correta, por conta do contexto atual onde a maioria das aplicações
são executadas em nuvem, onde o cenário dessa aplicação precisa ser avaliado para
levantamento se as especificações técnicas estão de acordo com as necessidades da
aplicação. A segunda proposição está correta e justifica a primeira, pois os aspectos de
segurança e disponibilidade estão interligados com a computação em nuvem.

Pergunta 2 2,5 em 2,5 pontos


O modelo TCP/IP é o padrão de comunicação utilizado na maioria das redes, locais ou remotas, por inúmeros
elementos de comunicação. Diferentemente do modelo OSI, o TCP/IP possui quatro camadas.

Quais são as camadas do modelo TCP/IP? Assinale a alternativa CORRETA:

Resposta Selecionada: aplicação, transporte, internet e acesso à rede;


b. 

Respostas: aplicativo, enlace de dados, protocolos e física;


a. 

aplicação, transporte, internet e acesso à rede;


b. 

acesso à rede, apresentação, enlace de dados e cabeamento.


c. 
aplicação, física, transporte e cabeamento;
d. 

e. aplicação, apresentação, enlace de dados e cabeamento;

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/3
04/10/2022 17:45 Conteúdo

Comentário JUSTIFICATIVA
da
resposta: Com o advento do modelo TCP/IP, as camadas foram reduzidas, quando comparado ao
modelo OSI. As camadas de apresentação, sessão e aplicação foram “reduzidas” à camada de
aplicação. Assim, aplicação, transporte, internet e acesso à rede são as camadas do modelo
TCP/IP.

Pergunta 3 2,5 em 2,5 pontos


Leia o trecho a seguir:

“O protocolo de configuração dinâmica de hospedeiros (DHCP) permite que um hospedeiro obtenha (seja
alocado a) um endereço IP de maneira automática. Um administrador de rede pode configurar o DHCP para
que determinado hospedeiro receba o mesmo endereço IP toda vez que se conectar, ou um hospedeiro pode
receber um endereço IP temporário diferente sempre que se conectar” (KUROSE; ROSS, 2013, p. 255-256).

KUROSE, J; ROSS, K. Redes de computadores e a internet. 6. ed. São Paulo: Pearson, 2013.

Com relação às características do DHCP, avalie as afirmativas a seguir.

I. Por conta da automatização da entrega dinâmica dos endereços para a conexão de rede, o DHCP é,
em geral, denominado um protocolo plug and play.

II. O DHCP é responsável por resolver os nomes de domínios, como, por exemplo, os sites, em endereço
IP e, também, por realizar o processo inverso, isto é, resolver o endereço IP em nomes de domínios.

III. O DHCP é um protocolo cliente-servidor.

IV. O protocolo DHCP é o responsável por garantir a segurança da conexão entre os servidores que
hospedam um site.

Está correto o que se afirma em:

Resposta Selecionada:  I e III, apenas;


e. 

Respostas: I, II, III e IV;


a. 

I, III e IV, apenas.


b. 

I e II, apenas;
c. 
II, apenas;
d. 

 I e III, apenas;
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I está correta, pois o host, ao se conectar à rede, recebe toda a configuração do
DHCP, caso tenha o serviço. A afirmativa II está incorreta, já que o serviço em questão é o
DNS. A afirmativa III está correta, pois o protocolo trabalha com um centralizador (servidor) e
um cliente, que solicitará o serviço. A afirmativa IV está incorreta, já que o serviço em questão
é o HTTPS.

Pergunta 4 2,5 em 2,5 pontos


A internet é composta por vários tipos de redes, que operam com inúmeros protocolos de comunicação. No
contexto da infraestrutura da comunicação, grande parte da internet opera com o modelo TCP/IP.

Considerando os principais protocolos de comunicação existentes na internet, correlacione os termos


a seguir aos seus principais conceitos.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/3
04/10/2022 17:45 Conteúdo
1 – TCP.

2 – IP.

3 – UDP.

I – É um protocolo orientado à conexão. Possui confiabilidade na entrega dos dados e no controle de fluxo
dos dados.

II – É um protocolo da camada de internet (rede) do modelo TCP/IP. Serve para endereçar o host na internet.

III – É um protocolo não orientado à conexão. Os segmentos dos dados podem ser perdidos no transporte.

Agora, assinale a alternativa que apresenta a sequência correta.

Resposta Selecionada: c. 1-I; 2-II; 3-III.

Respostas: 1-I; 2-III; 3-II.


a. 

b. 1-II; 2-I; 3-III.

c. 1-I; 2-II; 3-III.

1-III; 2-I; 3-II.


d. 

1-III; 2-II; 3-I.


e. 

Comentário JUSTIFICATIVA
da
resposta: A opção 1 se enquadra na afirmativa I, que apresenta as características do protocolo TCP. A
opção 2 se enquadra na afirmativa II, que é o principal protocolo da internet.  A opção 3 se
enquadra na afirmativa III, que expõe as características e as falhas do UDP.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/3
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Firewalls e Web Proxies


Parte 1
ROTEIRO

• Introdução
• O que é?
• Principais características
• Funções do Firewall
• Tipos de Firewalls
Introdução

Motivação
● Alto índice de ataques a redes

● Necessidade de controle de tráfego

● Garantir integridade aos serviços

● Alta demanda dos serviços da Internet

Firewall significa Parede Corta Fogo


● Regula tráfego entre redes existentes

● Impede a propagação de dados nocivos


O que é?
Principais Características
• Toda solicitação chega ao Firewall
• Somente tráfego autorizado passa pelo Firewall
• O próprio Firewall deve ser imune à penetração
• Bloqueia o recebimento de dados baseados em uma fonte ou
destino
• Bloqueia o acesso a dados baseados em uma fonte ou destino
• Bloqueia dados baseados em conteúdo
• Permite conexões com uma rede interna
• Reporta o tráfego na rede e as atividades do Firewall
Firewall

• O que ele pode fazer?


● É um foco para a tomada de decisões

● Pode ser usado como um ponto de partida para a política de

segurança
● Pode gravar requisições

● Limita a exposição da rede

• O que ele não pode fazer?


● Proteger uma rede contra usuários internos

● Proteger uma rede contra conexões que não passam por ele

● Proteger contra ameaças completamente novas


O Básico de Firewalls

• Deve ter pelo menos as 4 funções a seguir:


● Filtragem de pacotes
● NAT (Network Address Translation)
● Proxy de Aplicação
● Monitoramento e registro
O Básico de Firewalls

• Estratégias gerais:
● Allow-All
● Deny-All

Uma boa opção é misturar ambas!


O Básico de Firewalls

Deny network traffic on all IP ports.


Except, allow network traffic on port 80 (HTTP).
Except, from all HTTP traffic, deny HTTP video content.
Except, allow HTTP video content for members of the Trainers
group.
Except, deny Trainers to download HTTP video content at night.
Tipos de Firewalls

• Há 2 tipos principais

● Filtro de Pacotes
● Servidores Proxy
Tipos de Firewalls

• Filtro de Pacotes
● Filtrar = peneirar, separar

● Controle do tráfego que entra e sai

● Incrementa a segurança

● Transparente aos usuários

● Grande variedade no mercado


Tipos de Firewalls

• Filtro de Pacotes
● As regras dos filtros contêm:

● Endereço IP de origem

● Endereço IP de destino

● Protocolos TCP, UDP, ICMP

● Portas TCP ou UDP origem

● Portas TCP ou UDP destino

● Tipo de mensagem ICMP


Tipos de Firewalls

• Filtro de Pacotes

Internet Router Rede


Interna

Roteador com Filtro de Pacotes


Tipos de Firewalls

• Filtro de Pacotes
● Filtragem por adaptador de rede – vantagem ao administrador

● Principais problemas do filtro:


● IP Spoofing
● Serviço troca de porta
Tipos de Firewalls

• Filtro de Pacotes

● Não tratam protocolos da camada de aplicação


● Não são uma solução única – é um complemento
● Causam atraso no roteamento
Tipos de Firewalls

• Filtro de Pacotes
• Problemas
● IP Spoofing
Tipos de Firewalls

• Proxy

● Assumem requisições de usuários de uma rede

● Atuam em nome do cliente de uma forma transparente

● Não permitem que pacotes passem diretamente entre cliente e


servidor
Tipos de Firewalls

• Proxy
Tipos de Firewalls

• Proxy

● Métodos de utilização:
● Método da Conexão Direta
● Método do Cliente Modificado
● Método do Proxy Invisível
Tipos de Firewalls

• Proxy

● Vantagens de utilização do proxy:

● Permite ao usuário acesso direto aos serviços na Internet


● Possui bons mecanismos de log
● Provê uma ótima separação entre as redes
Tipos de Firewalls

• Proxy

● Desvantagens do proxy:

● Cada serviço possui o seu servidor proxy


● Deve ser desenvolvida uma nova aplicação para
cada novo serviço

● Existem alguns serviços inviáveis


Tipos de Firewalls

• Firewalls x Proxy

● Tomada de decisões:

● Servidor proxy toma decisões baseado em informações


fornecidas pelo serviço

● Filtro de pacotes utiliza o cabeçalho do pacote.


Tipos de Firewalls

• Firewalls x Proxy
● Tomada de decisões:
● Servidor proxy toma decisões baseado em informações

fornecidas pelo serviço


● Filtro de pacotes utiliza o cabeçalho do pacote.

● Desempenho:
● Filtro de pacotes possui uma vantagem por estar em nível mais

baixo
● Auditoria:
● Servidor proxy possui vantagem por permitir auditoria sobre o

controle do tráfego
REFERÊNCIAS

Zwicky, E; Cooper, Simon – Construindo Firewalls para a Internet.


O´Reilly, 2000

Internet Firewalls – UFRGS -


http://penta.ufrgs.br/redes296/firewall/fire.html
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Firewalls e Web Proxies


Parte 1
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Firewalls e Web Proxies


Parte 2
ROTEIRO

• Web Proxy - Squid

• Outros Tipos de Firewalls

• Arquiteturas de Firewalls

• Sistemas de Detecção de Intrusão


FUNCIONAMENTO
∙ Filtragem de pacotes via ACL – Access Control
● O método mais usado para configurar filtros de pacotes é
conhecido como listas de controle de acesso (ACLs)

● Dividem-se em dois tipos de padrão:


● ACLs padrão – filtram baseadas no endereço IP
● ACLs estendidas – procuram ‘mais dentro’ do cabeçalho do
pacote
FUNCIONAMENTO
∙ Filtragem de pacotes via ACL – Access Control

● Implementando um servidor proxy com o Squid

● Squid permite compartilhar a conexão entre vários nós, servindo


como intermediário entre eles e a Internet
WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● Implementando um servidor proxy com o Squid
● Para colocar em funcionamento:
● #apt-get install squid

● # mv /etc/squid/squid.conf /etc/squid/squid.conf.backup

● Arquivo /etc/squid/squid.conf contendo as seguintes linhas:


● http_port 3128

● visible_hostname servidor

● acl all src 0.0.0.0/0.0.0.0

● http_access allow all


WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● Implementando um servidor proxy com o Squid

● Ex.: permissões


WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● Bloqueando por domínios ou palavras
● acl bloqueados dstdomain playboy.abril.com.br
● http_access deny bloqueados

● Bloqueando por domínios ou palavras (com ou sem www)


● acl bloqueados dstdomain www.xvideos.com playboy.abril.com.br
● http_access deny bloqueados

● E se a regra ficar muito grande?


WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● É possível, nestes casos, criar um arquivo externo, inserir os
domínios, linha a linha e posteriormente fazer uma ‘chamada’ a
este arquivo.
● Ex: acl bloqueados url_regex –i “/etc/squid/bloqueados”
● http_access deny bloqueados

● Problema:
● Cada novo endereço descoberto deve ser inserido na lista
● Solução:
● O Sarg pode ajudar bastante
WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● É possível também inverter a regra, de forma que eu possa
bloquear tudo e ir liberando acesso a determinados sites
● Ex: acl permitidos url_regex –i “/etc/squid/permitidos”
● http_access allow permitidos
● http_access deny all

● Nos proxies mais atuais têm-se o bloqueio de domínios associado


aos respectivos IPs, evitando assim que o usuário digite
diretamente o IP de um site
WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● É possível bloquear também por endereços IP

● Ex: acl ips-bloqueados dst 200.234.21.23 200.212.15.45


● http_access deny ips-bloqueados
WEB PROXY SQUID
∙ Filtragem de pacotes via ACL – Access Control
● Bloqueando por palavras (incluídas na URL de acesso)

● Criar um arquivo de texto com as palavras a serem bloqueadas

● Ex: facebook, xxx, sexo, teens…

● Adicionar a regra contendo a localização do arquivo


● acl palavrasproibidas dstdom_regex “/etc/squid/palavrasproibidas

● http_access deny palavrasproibidas

● Problemas?
● Falsos positivos
WEB PROXY SQUID

∙ Filtragem de pacotes via ACL – Access Control


● Mensagens de erro

● Adicionar a seguinte linha no squid

● "error_directory /usr/share/squid/errors/Portuguese/ "

∙ É possível alterar os arquivos HTML de cada mensagem de


forma personalizada
OUTROS TIPOS DE FIREWALLS

• Firewalls Híbridos
● A maioria dos firewalls podem ser classificados como Filtro de

Pacotes ou Servidores Proxy

● Outros tipos de firewalls oferecem uma combinação entre estes


dois
OUTROS TIPOS DE FIREWALLS
• Firewalls Híbridos
OUTROS TIPOS DE FIREWALLS

• Firewalls Bastion Hosts


● Hosts fortemente protegidos

● Único computador da rede que pode ser acessado pelo lado de


fora do firewall

● Pode ser projetado para ser um servidor Web, servidor FTP,


dentre outros
OUTROS TIPOS DE FIREWALLS
• Firewalls Bastion Hosts
OUTROS TIPOS DE FIREWALLS

• Firewalls Bastion Hosts


● Honey Pot
● Chamariz para crackers

● Função de coletar dados de tentativas de invasão


● Ferramentas de registros de logs são mantidas o mais seguro
possível
ARQUITETURAS DE FIREWALLS
• Principais:
● Screened host
● Sem sub-rede de proteção
● Elementos = 1 roteador e 1 bastion host
● Rede protegida sem acesso direto ao “mundo”
● Bastion host realiza o papel de procurador – só ele passa pelo
roteador
ARQUITETURAS DE FIREWALLS
• Screened Host
ARQUITETURAS DE FIREWALLS
• Screened subnet
● Screened = proteger, peneirar, investigar

● Apresenta múltiplos níveis de redundância

● É a mais segura

● Componentes:
● Roteador externo

● Sub-rede intermediária (DMZ)

● Bastion Host

● Roteador Interno
ARQUITETURAS DE FIREWALLS

• Screened subnet

• O que é a DMZ (De Militarized Zone)?


● Sub-rede entre a rede externa e a protegida. Proporciona
segurança.
● Rede interna somente tem acesso ao Bastion Host
● Somente a sub-rede DMZ é conhecida pela Internet
ARQUITETURAS DE FIREWALLS
• Screened subnet
SISTEMAS DE DETECÇÃO DE INTRUSÃO

• Solução complementar ao firewall


● Softwares capazes de detectar atividades suspeitas

● Utiliza-se de padrões conhecidos de comportamento de intrusos

● Podem analisar o tráfego interno, externo e entre eles

• Tipos de análise de tráfego


● Detecção de assinaturas

● Detecção de comportamento

● Detecção de anomalias de protocolo


SISTEMAS DE DETECÇÃO DE INTRUSÃO
SISTEMAS DE DETECÇÃO DE INTRUSÃO

• Detecção de assinaturas
● procura de padrões específicos

● desvantagem : necessidade de conhecimento prévio do padrão

• Detecção Comportamento
● Cada rede tem determinada característica (estatística)

● Procura alterações nestas característica (pico)

● Desvantagem - método não muito eficaz

• Detecção de anomalias de protocolo


● Análise do pacote com seu padrão
REFERÊNCIAS

Zwicky, E; Cooper, Simon – Construindo Firewalls para a Internet.


O´Reilly, 2000

Internet Firewalls – UFRGS -


http://penta.ufrgs.br/redes296/firewall/fire.html
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Firewalls e Web Proxies


Parte 2
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Controle de Acesso e Mecanismos


de Autenticação
ROTEIRO
• Introdução
• Definições
• Classificação do Controle de Acesso
• Identificação, autenticação, autorização
• Mecanismos de autenticação
• Modelos de Controle de Acesso
• Gerência de Identidades
INTRODUÇÃO

• O controle de acesso é um importante mecanismo para a


segurança de aplicações
● Atualmente, aquelas implantadas em nuvens computacionais

• Responsabilidade:
● Quais recursos podem ser acessados

● Quais operações podem ser realizadas sobre os recursos

● Quais os componentes estão autorizados a desempenhar


determinadas operações
DEFINIÇÕES
• O controle de acesso pode também ser definido como um
método ou conjunto deles, cujo objetivo é restringir a utilização de
determinados recursos a um sistema por certos usuários ou
grupos de usuários

• Visa limitar as ações que um usuário de um sistema pode realizar


no ambiente

• Capacidade de permitir ou negar a utilização de algo por alguém

• Prevenir que o sistema/aplicação esteja em ou vá para um


estado inseguro.
DEFINIÇÕES
• Alguns requisitos básicos de segurança da informação que
também se aplicam ao desenvolvimento de software na nuvem,
envolvem:
● Disponibilidade
● Ter certeza de que os dados estão acessíveis quando forem

necessários e onde forem necessários


● Integridade
● Ter certeza de que os dados não foram modificados

intencionalmente ou acidentalmente
● Confidencialidade
● Somente os indivíduos autorizados a acessar os dados podem
fazê-lo
DEFINIÇÕES
• Elementos para garantir:
● Disponibilidade
● Redundância

● Backup

● Integridade
● Assinatura digital

● Confidencialidade
● Criptografia e controle de acesso
CLASSIFICAÇÃO DO CONTROLE DE ACESSO
• Baseada em:
● Hosts

● Controle de acesso aos recursos do sistema operacional


● Proteção de arquivos e objetos
● Controla recursos via rede
● Sistemas
● Atuam dentro de hosts (composto por uma interface e um banco de
dados)
● Com mecanismos próprios de controle
● Rede
● Implementados por meio de firewalls: filtros de pacotes e proxies

● Roteadores, switches
IDENTIFICAÇÃO, AUTENTICAÇÃO, AUTORIZAÇÃO
• É importante destacar alguns componentes que fazem parte do
controle de acesso e o que eles representam
● Sujeito
● Aquele que solicita acesso a algum tipo de informação.

Exemplo: hosts e usuários


● Objeto
● O que é acessado pelo sujeito

● Exemplo: arquivos, dados nos bancos de dados

• Monitor de Referência
● Usado para mediar um acesso

● Ter controle que garanta a integridade do seu funcionamento


IDENTIFICAÇÃO, AUTENTICAÇÃO, AUTORIZAÇÃO

• Etapas para realizar o acesso a um objeto

● Identificação

● Autenticação

● Autorização

● Prestação de Contas/Responsabilidade
IDENTIFICAÇÃO, AUTENTICAÇÃO, AUTORIZAÇÃO
• Identificação
● Identificar um sujeito junto a um objeto

● Responsabilizar individualmente por ações no sistema

● Identificar por: username, PIN

• Autenticação
● Confirma a identidade

● Tecnologias:

● Algo que o usuário sabe (senha)

● Algo que o usuário tem (token, smart card, certificado digital)

● Alguma característica do indivíduo (traço físico/comportamento)

(biometria)
IDENTIFICAÇÃO, AUTENTICAÇÃO, AUTORIZAÇÃO

• Autorização
● Determina se o sujeito está autorizado a acessar um recurso
particular
● Faz parte de qualquer sistema operacional e é desejável em
aplicações
● Exemplo: Usuário autenticado no Active Directory ou no Servidor
LDAP, tem acesso a uma página ou a um arquivo no servidor Web
local

• Sistema Operacional verifica permissões com base em critérios de


acesso
● Horário, tipo, localização física
MECANISMOS DE AUTENTICAÇÃO
• Senhas Estáticas
● String de caracteres para autenticação de usuários
● É um dos mais utilizados
● Problemas: Senha fraca pode ser quebrada

• Senhas Dinâmicas
● On Time Password
● Válida uma única vez

● Usada como segundo fator de autenticação e pode ser implementada em

hardware/software
• Chaves Criptográficas
● Usada para comprovar a identidade do emissor
● Assinatura digital: tecnologia que utiliza chave privada para encriptar um hash
MECANISMOS DE AUTENTICAÇÃO
• Smart Cards
● Armazena e processa informações

● Contém circuitos

● Realiza operações criptográficas

● Tipos

● Sem contato: antena em forma de bobina enrolada

● Com contato: leitor transmite energia com contato

• Biometria
● Valida um comportamento ou traço físico do usuário (impressão

digital, geometria da mão, reconhecimento facial, voz, íris, retina)


● Fácil de usar
MECANISMOS DE CONTROLE DE ACESSO

• Criam normatizações de como o sujeito/usuário acessa os


objetos

• Tecnologias são usadas para reforçar objetivos do modelo

• Exemplos:
● DAC – Discretionary Access Control

● RBAC – Role Base Access Control


MECANISMOS DE CONTROLE DE ACESSO

• DAC – Discretionary Access Control


● O proprietário do recurso é responsável por atribuir permissões

● Tipos

● ACL – Access Control List

● Tabelas de Capacidades

• RBAC – Role Base Access Control


● Todas as permissões são atribuídas a papéis

● Os papéis representam funções

● Usuários são atribuídos aos papéis


MECANISMOS DE CONTROLE DE ACESSO

• Controle Centralizado
● Ponto central de controle
● Radius
● Mais usado em autenticação simples
● Encripta somente a senha
● Autenticação baseada em EAP, PAP, CHAP
GERÊNCIA DE IDENTIDADES

• O objetivo é automatizar as tecnologias de identificação, autenticação


e autorização

• Questões envolvidas
● O que cada usuário pode acessar?
● Quem aprova o acesso?
● Como o acesso é controlado de forma centralizada?
● Como utilizar controle de acesso para diferentes sistemas
operacionais e aplicações?
GERÊNCIA DE IDENTIDADES

• Ferramentas para a gerência

● Diretórios

● Gerência de senhas

● Gerência de contas

● SSO
GERÊNCIA DE IDENTIDADES

• Diretórios
● É um catálogo que possui informações centralizadas de usuários e

recursos
● O formato de dados é hierárquico (protocolo X.500)

● Protocolo de acesso é o LDAP


● Nele os usuários requisitam informações de recursos e as

aplicações requisitam informações dos usuários

● Objetos são gerenciados pelos serviços de diretório


● O administrador pode configurar e gerenciar (identificar,

autenticação e autorizar recursos)


GERÊNCIA DE IDENTIDADES
• Diretórios
● LDAP

● Uma das principais utilidades é a de centralizar as informações

do usuários
● A base é um serviço de diretórios, que é um banco de dados,
otimizado para leitura e que suporta sofisticados métodos de
busca
● É ajustado para dar respostas rápidas a grandes volumes de
dados
● É oriundo do modelo X.500 que:
● É mais conhecido como DAP (Directory Access Protocol)

● Dita como as transações, ocorrem em um serviço de diretórios


GERÊNCIA DE IDENTIDADES
• Diretórios
● OpenLDAP

● Inicialmente desenvolvido pela Univ. of Michigan


● Baseado no X.500
● Executa na pilha de protocolos TCP/IP
● Pode guardar informações como:
● Nome
● UserID
● Passwords
● Emails
● Fotos
● Local de trabalho
● Etc.
GERÊNCIA DE IDENTIDADES
• Diretórios
● OpenLDAP

● As informações são organizadas em um estrutura hierárquica em


árvore
● Elas são referenciadas segundo o RFC 2253 – LDAPv3
● Exemplo: dn: uuid=jcezar, ou=Laboratorio, o=USP, c=BR

● Segundo o RFC (algumas infos apenas):

● CN – commonName

● L – locality name

● ST – state or province name

● O - organizationName
GERÊNCIA DE IDENTIDADES
• Diretórios
● OpenLDAP

● A busca é feita em determinadas áreas ou na árvore toda

● As informações são protegidas para acessos não autorizados por

meio de:
● Autenticação

● Controle de listas de acessos

● Suporta IPV4 e IPV6


● Pode atender a múltiplos bancos de dados simultaneamente
● Faz replicação de base de usuários
● Alto desempenho para diversas chamadas ao diretório (buscas)
REFERÊNCIAS
● https://pt.wikipedia.org/wiki/OpenLDAP

● https://www.linux.ime.usp.br/~cef/mac499-
06/monografias/erich/html/ch01s09.html

● https://www.openldap.org/
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Controle de Acesso e Mecanismos


de Autenticação
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Servidores Web
ROTEIRO

• História

• O que é e o que faz?

• Características

• Funcionamento básico

• Exemplos
Servidores Web
• História
● 1980 – 1989: Tim Berners-Lee (CERN) propõe um projeto
● Objetivo: facilitar o compartilhamento de documentos de
pesquisa entre os colegas pesquisadores. Foram criados dois
programas:

• Um browser chamado World Wide Web

• Um servidor HTTP chamado CERN HTTPd que foi hospedado


em um computador neXTcube
Servidores Web
Servidores Web

• Programa de computador responsável por aceitar requisições HTTP

• Necessita de clientes (Navegadores)

• As respostas podem ser compostas de:

● Arquivos (Vídeos, imagens, etc) Documentos HTML


Servidores Web

• O HyperText Transport Protocol é um protocolo no nível de


aplicação para sistemas distribuídos, colaborativos, que trocam
informações por hipermídia (HTML, Links, etc)

• O protocolo HTTP tem sido utilizado desde 1990 e atualmente


está na versão 1.1 (HTTP/1.1) – RFC 2616 com atualização
recente para a versão 2.0 (RFC 7540)
Servidores Web
• A resposta de uma requisição deve ter um código e uma frase de
razão:
● 1xx: Informational – Requisição recebida continuando o processo
● 2xx: Success – A ação foi recebida com sucesso, entendida e
aceita
● 3xx: Redirection – Outras ações devem ser tomadas a fim de
completar o pedido
● 4xx: Client error – O pedido contém sintaxe inválida ou não pode
ser completada
● 5xx: Server error – O servidor não conseguiu atender uma
solicitação aparentemente válida
Servidores Web

• Características
● Troca de informações: Request e Response

• Formato genérico
● L1: Linha inicial (request-line ou status-line)

● L2: Cabeçalho da mensagem (opcional)

● L3: Linha vazia (CRFL)

● L4: Corpo da mensagem


Servidores Web

• Características
● Pode ter informações a respeito do recurso no corpo da
mensagem

• Exemplos:
● Last-modified: data da última modificação; Content-length:
tamanho;
● Content-type – MIME (Multipurpose Internet Mail Extensions):
tipo de formato.
Servidores Web

• Características
● Alguns métodos

● GET: solicita um recurso no servidor

● POST: Envia dados para serem processados no servidor

● PUT: Substitui todas as atuais representações de recursos de


destino pela carga de dados da requisição

● DELETE: Usado para excluir o recurso da requisição


Servidores Web

• Programa de computador responsável por aceitar requisições HTTP

• Necessita de clientes (Navegadores)

• As respostas podem ser compostas de:

● Arquivos (Vídeos, imagens, etc) Documentos HTML


Servidores Web

• O que o servidor web faz?


Servidores Web

• O que o servidor web faz?


Servidores Web

• O que o servidor web faz?


Servidores Web
• Funcionamento Básico

● Cliente requisita recurso

● HTML

● Arquivos: Vídeos, imagens, etc

• Servidor
● Verifica se ele contém o que foi requisitado
● Ou encaminha a requisição para outro servidor (proxy)
● Devolve a resposta ao cliente
Servidores Web
• Provisão de conteúdo
Servidores Web
• Provisão de conteúdo
Servidores Web
• Exemplo

● https://www.univesp.br/cursos/
● Navegador quebra a URL em 3 partes
● O protocolo: HTTP/HTTPS
● Nome do servidor: www.univesp.br
● O nome do arquivo: /cursos/
● Navegador se comunica com servidor de nomes
● Traduz o nome do servidor www.univesp.br para um IP
(104.24.124.188)
Servidores Web
• Exemplo:
● http://www.univesp.br/cursos
• É criada então uma conexão entre o navegador e o servidor
na porta 80
• Porta 80 é padrão para os Servidores Web
• De acordo com o protocolo HTTP, o navegador envia uma
solicitação para obter o arquivo desejado
• O servidor então envia o texto da página para o navegador
• O navegador lê o arquivo e formata a página na tela
Servidores Web

• Todos os sites da Web, sejam eles estáticos ou dinâmicos


(conteúdo multimídia), fornecem conteúdo aos clientes por meio
dos servidores Web

• Um dos mais utilizados e mais conhecidos no mundo é o Apache


Web Server (da Apache Software Foundation)

• Acesso aos servidores de compartilhamento de arquivos, e-


mails, jogos online, entre outros, só é possível com a
implantação de Web Servers
Referências

∙ ESTRELA, J. C; Notas de Aula – Sistemas Computacionais


Distribuídos - 2017/2018
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Servidores Web
04/10/2022 17:46 Conteúdo

Pergunta 1 1,67 em 1,67 pontos


O servidor web não funciona apenas como um armazenador de aplicações ou recursos, ele também é
responsável por fazer a comunicação entre as URLs e os navegantes, que seriam os clientes. Para que tudo
isso fique ativo, é preciso fazer um gerenciamento para manter o serviço com a maior disponibilidade
possível, utilizando algumas técnicas, como, por exemplo, a redundância.

Sobre o tema, analise as asserções a seguir e a relação proposta entre elas.

I. Todos os sites da web, sejam eles estáticos ou dinâmicos (conteúdo multimídia), fornecem conteúdo
aos clientes por meio dos servidores web.

PORQUE

II. O acesso aos servidores de compartilhamento de arquivos, e-mails, jogos on-line, entre outros, só é


possível com a implantação de web servers.

Com base na análise das asserções, conclui-se que:

Resposta d. 
Selecionada: as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

Respostas: a. ambas as asserções são falsas.

b.  a primeira asserção é falsa, e a segunda asserção é verdadeira;


a primeira asserção é verdadeira, e a segunda asserção é falsa;
c. 
d. 
as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

e. 
as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

Comentário JUSTIFICATIVA
da
resposta: A primeira asserção é verdadeira porque, de fato, todos os sites da web precisam de um
hospedeiro, no caso, servidores web, para que seja possível apresentar os recursos fornecidos
pela página. A segunda asserção, também, é verdadeira e justifica, corretamente, a primeira,
pois, para o funcionamento de aplicações que estão na internet, a utilização do servidor web é
primordial para disponibilização de arquivos do jogo, da página (site), dentre outros.

Pergunta 2 1,66 em 1,66 pontos


O firewall pode trabalhar de diversas formas, mas sempre com o objetivo de proteger o fluxo de requisições
de entrada e saída da rede. Algumas formas de segurança são os bloqueios por meio das ACL (access
control) ou o controle de acesso através da implementação do proxy squid, que bloqueia ou libera o acesso a
determinados conteúdos.

Com relação ao comando que instala o proxy squid na versão do ubuntu ou derivados, assinale a
alternativa CORRETA:

Resposta Selecionada:  # apt-get install squid;


e. 

Respostas: # pwd install squid;


a. 

b.  # cmd install squid.

c. # dnf install squid;


# yum install squid;
d. 

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/4
04/10/2022 17:46 Conteúdo
 # apt-get install squid;
e. 

Comentário JUSTIFICATIVA
da
resposta: Para a instalação de pacotes ou aplicações na versão do ubuntu ou derivados, é necessária a
utilização do comando # apt-get install squid (“o nome do pacote”). Os comandos # yum install
squid e # dnf install squid executam a instalação de pacotes em outras distribuições Linux. Por
sua vez, os comandos # pwd install squid e # cmd install squid executam outras tarefas.

Pergunta 3 1,66 em 1,66 pontos


Para o controle de dados e requisições, tanto da entrada quanto da saída, é preciso ter uma aplicação que
funcione como um filtro para a rede, possibilitando criar uma barreira de proteção. O ____________ de
conexões indesejadas e o recebimento de dados com base em uma fonte de destino e em conteúdos são as
principais características do firewall. O firewall, além de realizar bloqueios para a proteção da rede, é
responsável por ____________ todo o tráfego (requisições) que passou por ele.

Preencha as lacunas assinalando a alternativa CORRETA.

Resposta Selecionada: Bloqueio e gravar.


a. 

Respostas: Bloqueio e gravar.


a. 

Protocolo e gravar.
b. 

c. Pilar e liberar.

d. Firewall e gravar.
Firewall e permitir.
e. 

Comentário JUSTIFICATIVA
da
resposta: Na primeira lacuna, o termo correto é BLOQUEIO. Nesse sentido, a principal “arma”
do firewall é realizar o bloqueio de conexões indesejadas, para uma melhor segurança da rede.
O termo que preenche corretamente a segunda lacuna é GRAVAR. Nesse sentido, todo o
tráfego que passa pelo firewall pode ser armazenado, possibilitando entender o funcionamento
das requisições internas e externas. Os termos “firewall”, “pilar”, “permitir” e “protocolo” não se
enquadram no contexto apresentado pela questão, tendo em vista os conceitos mencionados.

Pergunta 4 1,67 em 1,67 pontos


O nmap é um varredor de portas de rede, e sua principal função é verificar um conjunto de hosts de destino
para saber quais portas TCP e UDP possuem servidores executando nelas, já que a maioria dos serviços de
rede está associada a um número de portas “bem conhecidas”. O comando utilizado no nmap é o seguinte: #
nmap -sT host1.example.com.

Com relação ao comando utilizado no nmap e sua função, assinale a alternativa CORRETA.

Resposta Selecionada: Executa uma varredura de portas (conexão) TCP.


d. 

Respostas: Executa uma varredura de portas (conexão) SMB.


a. 

Executa uma varredura de portas (conexão) UDP.


b. 

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/4
04/10/2022 17:46 Conteúdo
Executa uma varredura de portas (conexão) SNMP.
c. 
Executa uma varredura de portas (conexão) TCP.
d. 

Executa uma varredura de portas (conexão) P2P.


e. 

Comentário JUSTIFICATIVA
da
resposta: Com o comando indicado, o nmap fará a varredura de portas, principalmente de portas TCP.
Por conta da variável -sT, a varredura dos protocolos SNMP, SMB e UDP necessita de outras
variáveis. Sobre o P2P, ele é um tipo de rede. Por fim, o NMAP não executa varreduras nesse
tipo de tecnologia.

Pergunta 5 1,67 em 1,67 pontos


O desenvolvedor de aplicações precisa se preocupar com a arquitetura da aplicação, pois é ela que determina
o funcionamento da aplicação nos sistemas finais, o que é bem diferente da arquitetura de rede
(infraestrutura), que determina o modelo de comunicação que vai ser utilizado entre
aplicações/cliente/servidor.

Considerando a arquitetura de rede e seus modelos, correlacione os termos a seguir aos seus
principais conceitos.

1 – Cliente-servidor.

2 – P2P.

3 – Data center.

I – A aplicação ou serviço utiliza a comunicação direta entre dois ou mais hospedeiros conectados
alternadamente para disponibilizar um recurso.

II – Detém um grande número de hospedeiros e é usado com frequência pelas empresas (instituições) para
criar um servidor virtual que disponibilize algum serviço.

III – Há sempre um hospedeiro em funcionamento, conhecido pelo nome de servidor, que atende às
requisições de muitos outros hospedeiros, denominados clientes.

Agora, assinale a alternativa que apresenta a sequência correta.

Resposta Selecionada: 1-III; 2-I; 3-II.


d. 

Respostas: 1-III; 2-II; 3-I.


a. 

1-I; 2-III; 3-II.


b. 

1-II; 2-I; 3-III.


c. 
1-III; 2-I; 3-II.
d. 

1-I; 2-II; 3-III.


e. 

Comentário JUSTIFICATIVA
da
resposta: A opção 1 se enquadra na afirmativa III, que justifica as características de uma rede cliente
servidor. A opção 2 se enquadra na afirmativa I, que afirma que a função da rede P2P é o
compartilhamento de dados sem a necessidade de um servidor central de dados. A opção 3 se
enquadra na afirmativa II, que apresenta o datacenter, amplamente utilizado para a
disponibilização de algum serviço.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/4
04/10/2022 17:46 Conteúdo

Pergunta 6 1,67 em 1,67 pontos


O servidor web é responsável por aceitar requisições HTTP, local em que ele armazena os arquivos, podendo
ser imagens, vídeos ou documentos HTML, e os exibe para o cliente (navegador). Atualmente, ao acessar
uma página na web, a requisição realizada no site é respondida por um servidor web.

Considerando as características do servidor web, julgue se são (V) verdadeiras ou (F) falsas as


afirmativas a seguir.

I. (  ) O HyperText Transport Protocol (HTTP) é um protocolo no nível de aplicação para sistemas


distribuídos e colaborativos que trocam informações por hipermídia (HTML, links etc.).

II. (  ) Uma das características do servidor web é a troca de informações (request e response) entre o


cliente e o servidor.

III. (  ) O servidor web espera, trata e responde as requisições.

IV. (  ) Os servidores web, atualmente, são os menos utilizados nas aplicações na internet, pois
apresentam muitos erros e tendem a não disponibilizar aplicações variadas.

Agora, assinale a alternativa que apresenta a sequência CORRETA.

Resposta Selecionada: V - V - V - F.
b. 

Respostas: V - V - F - F.
a. 

V - V - V - F.
b. 

c. F - F - F - V.
V - F - F - V.
d. 

F - V - V - V.
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I é verdadeira, pois apresenta corretamente, na íntegra, o conceito de protocolo
HTTP, que é um dos principais protocolos para servidores web. A afirmativa II também é
verdadeira, já que apresenta uma das principais características do servidor web. A afirmativa
III, igualmente, é verdadeira, pois mostra corretamente como funciona o servidor web. Por fim,
a afirmativa IV é falsa, já que, atualmente, os servidores web são os mais utilizados nas
aplicações na internet.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 4/4
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Computação em Nuvem –
Contextualização e Definições
ROTEIRO
• O que é Computação em Nuvem?

• História

• Componentes

• Modelos de Serviços

• Implantação de Serviços na Nuvem

• Aplicações
O que é computação em nuvem

• Computação distribuída sobre a Internet ou entrega de serviços


computacionais sobre a Internet
• Exemplo: Gmail, Yahoo, Hotmail
• Ao invés de executar um serviço de e-mail local (em seu
computador)
● Você loga em uma conta de e-mail via Web
● O software que gerencia os seus e-mails não reside localmente
na sua máquina, mas é disponibilizado como serviço
● Você envia e-mail, apaga e-mail, restaura e-mail, etc.
O que é computação em nuvem

• É uma tecnologia de computação que utiliza a Internet e servidores


remotos interligados via uma estrutura de comunicação para
armazenar dados e hospedar aplicações que podem ser
acessíveis, utilizando protocolos e padrão da WWW (World Wide
Web)
História

• As primeiras iniciativas a respeito do escopo de computação como


serviços é oriunda do que se chamava na época de RJE

● RJE → Remote Job Entry Process

• Em 2006, a Amazon disponibilizou a primeira nuvem pública para


processar jobs (aplicações) para o público em geral

● Mediante pagamento do uso de recursos computacionais (rede,


disco, memória, CPU) como serviços
Evolução das tecnologias

• Computação em Grade
● Resolução de problemas complexos com processamento paralelo

• Computação Utilitária
● Oferecimento de recursos computacionais como serviços medidos

• Computação como Serviço


● Assinaturas baseadas em rede para aplicativos
Componentes da Computação em Nuvem
• Clientes
● Dispositivos que são usados pelos usuários para interagir com os

servidores presentes do Data Center


● Tipos: Thin Client / Móveis

• Servidores Distribuídos
● São os hardwares (compostos de CPU, Memória, Discos) que em geral

estão geograficamente distribuídos para permitir escalar aplicações para


diferentes clientes e países.

• Data Centers
● Coleção de servidores distribuídos, em que a aplicação é armazenada

e pode ser acessada por meio de protocolos padronizados da WWW


Modelos de Serviços
• SaaS
● De uma forma transparente, o software/aplicação que o usuário

utiliza ou deseja implantar, faz uso dos sistemas operacionais


virtualizados e de toda a infraestrutura de comunicação e de
processamento
• PaaS
● Middlewares e sistemas operacionais, em conjunto com a

infraestrutura de comunicação
• IaaS
● Provisão em geral de rede de comunicação e hardware para

processamento e armazenamento de dados


Implantação de Serviços na Nuvem

• Nuvem Pública
● Permite que os sistemas e os serviços sejam acessados pelo
público em geral, o que tende a deixá-la menos segura por conta
da abertura ao público

• Nuvem Privada
● Permite que os sistemas e os serviços sejam acessados dentro de
uma organização, o que faz dela, a princípio, um ambiente mais
seguro para executar e acessar os serviços
Implantação de Serviços na Nuvem

• Nuvem Comunitária
● Permite que os sistemas e os serviços sejam acessados por um
grupo de organizações

• Nuvem Híbrida
● É um misto de nuvem pública e privada. No entanto, as atividades
críticas são feitas utilizando a nuvem privada enquanto as não
críticas são realizadas utilizando a nuvem pública
Características Importantes
• Faz uso de APIs (Application Programming Interfaces)
• Independente de localização e de dispositivos
• Faz uso de tecnologias de virtualização
• Confiabilidade
• Manutenção
• Segurança
• Desempenho
• Agilidade para propor novas soluções
• Serviço sob demanda
• Pagamento pelo serviço utilizado (recursos alocados)
Fatores que reforçam a Computação em Nuvem

• Aumento da capacidade de processamento dos processadores


modernos
• Tecnologia de virtualização
• Armazenamento distribuído de dados
• Gerenciamento automatizado de aplicações e da infraestrutura
• Acesso mais barato à conexão de Internet
• Servidores mais baratos e acessíveis para serem utilizados para
executar aplicações
Aplicações na Nuvem

• Por que o conceito de Nuvem Computacional é tão utilizado e


popular atualmente?

● Reduz a complexidade da rede de comunicação


● Reduz a compra de licenças de software
● Possibilidade de customização de hardware
● Aumenta a escalabilidade, confiabilidade
● Diminui as chances de se ter dados perdidos/corrompidos, pois
eles são armazenados em grandes conglomerados que focam na
segurança do armazenamento, na replicação dos dados, no
armazenamento eficiente e em políticas eficientes de backup
Aplicações na Nuvem

• SaaS
● Office365, Dropbox, Google Drive, OneDrive, etc

• PaaS
● Google App Engine
● Amazon EC2
● Microsoft Azure

• IaaS
● Rackspace
● Amazon EC2
Computação em Nuvem – Visão do Usuário

• SaaS
● Aplicação

● Vantagens:Utilizar um software específico sem se preocupar com

manutenção de servidores e custos de desenvolvimento

• PaaS
● Sistemas operacionais, linguagens de programação, ambientes de

execução, bancos de dados, servidores Web.


● Vantagens: Utilizar uma plataforma de nuvem segura e executar

sua aplicação sem o custo e a complexidade de comprar e


gerenciar hardware e software
Computação em Nuvem – Visão do Usuário

• IaaS
● Hardware, máquinas virtuais, storages e rede
● Vantagens: Utilizar uma infraestrutura segura por um período de
tempo. Sem custo de manutenção de hardware. Possibilidade de
escalar o hardware para mais ou menos recursos desejáveis.
Computação em Nuvem – Visão do Desenvolvedor
• É uma extensão de modelos distribuídos de desenvolvimento
de software

● O software é composto de componentes de terceiros, que se ligam


por meio de APIs
● A execução do software ocorre de maneira distribuída em diversos
hosts/computadores/servidores

● A propriedade é distribuída entre diversas organizações

● Geralmente, o código fonte não está disponível para componentes


de terceiros
REFERÊNCIAS

∙ https://www.nist.gov/programs-projects/nist-cloud-computing-
program-nccp
∙ https://www.oracle.com/us/dm/powering-generation-278787.pdf
∙ https://www.vmware.com/pdf/virtualization.pdf
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Computação em Nuvem –
Contextualização e Definições
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Modelos de Serviços em Computação


em Nuvem
ROTEIRO

• Introdução

• Características Principais

• Visão Estrutural

• Fornecedores no ecossistema de computação em nuvem


INTRODUÇÃO

• A computação na nuvem vem ganhando cada vez mais espaço


entre empresas de todos os setores.
• Há vantagens para alavancar os negócios

• As soluções se dividem em três principais categorias:


● IaaS (Infraestrutura como Serviço)

● PaaS (Plataforma como Serviço)

● SaaS (Software como Serviço).


INTRODUÇÃO

• SaaS, PaaS e SaaS são modelos de serviços oferecidos na


nuvem, tornando-se populares pela sua disponibilização em
plataformas das gigantes da tecnologia, como Google, Microsoft e
Amazon.

• Nos próximos slides vamos apresentar as principais características


de cada um
CARACTERÍSTICAS PRINCIPAIS
• IaaS
● A Infraestrutura como Serviço (IaaS) é a mais simples das três

categorias, já que funciona praticamente da mesma forma,


independentemente do fornecedor de nuvem escolhido.
● De forma geral, a IaaS oferece uma infraestrutura de TI automatizada

e escalonável de:
● armazenamento, hospedagem, redes de seus próprios servidores

globais, cobrando apenas pelo que o usuário consome.


• Em vez de adquirir licenças de software, ou servidores próprios, as
empresas podem simplesmente alocar recursos de forma flexível a
partir das suas necessidades
CARACTERÍSTICAS PRINCIPAIS
PaaS
● A Plataforma como Serviço (PaaS) é o modelo de maior

dificuldade para ser definido.

● A ideia é fornecer todos os conceitos básicos da IaaS, assim como


as ferramentas e recursos necessários para desenvolver e
gerenciar aplicativos com segurança sem precisar se preocupar
com a infraestrutura.

● Os servidores que hospedam sites são exemplos de PaaS


CARACTERÍSTICAS PRINCIPAIS
SaaS
• O Software como Serviço (SaaS) é o local onde um software é
hospedado por terceiros e pode ser acessado pela web, geralmente
bastando um login.

• Neste caso, a empresa ou usuário contrata um plano de assinatura


e utiliza os programas necessários para os negócios.

• Assim, o SaaS é muito mais interessante para o uso de aplicativos


específicos, como os de gestão de relacionamento com o cliente
(CRM).
VISÃO ESTRUTURAL
Diagramação

● O NIST, que de fato apresenta o conceito adequado de Cloud,


usa uma visualização de quatro pilhas de software para descrever
as diferenças entre os modelos de infraestrutura, plataforma e
software "como serviço”

● A seguir, vamos mostrar uma versão do diagrama que compara


os modelos de serviços de computação em nuvem (IaaS, PaaS,
SaaS) e ambientes locais, em algum momento nos últimos anos
VISÃO ESTRUTURAL
Diagramação
VISÃO ESTRUTURAL
Diagramação
VISÃO ESTRUTURAL
Diagramação
• O primeiro diagrama, anteriormente apresentado, destacou
sucintamente as principais diferenças e ajudou as pessoas a
reconhecerem que o PaaS é diferente da hospedagem terceirizada
e da TI local.

Desvantagens
● Abordou apenas o tópico em uma camada superficial;

● Passávamos mais tempo discutindo como e por que o PaaS é

diferente - não apenas no local, mas também no IaaS. Assim,


precisávamos de uma visualização diferente para uma melhor
explicação
VISÃO ESTRUTURAL
Diagramação

● Necessidade de um novo diagrama ou representação visual que:


● é simples e fácil de entender (basicamente à primeira vista)

● destaca as diferenças em um contexto que é familiar (em relação às


semelhanças)
● transmite o valor dos serviços "gerenciados" (nos preocupamos com
algumas coisas, para que você não precise se preocupar)
● articula o grau de diferenças (que é mais diferente que o mesmo)
VISÃO ESTRUTURAL
Diagramação
VISÃO ESTRUTURAL
Diagramação
● Uma análise do diagrama anterior implica que:
● Privado: é como nós o entendemos: temos controle total sobre toda
a pilha à medida que o possuímos e o gerenciamos
● O IaaS é diferente do privado (embora seja tecnicamente executado
na mesma pilha), mas também é diferente da hospedagem
gerenciada terceirizada
● PaaS é realmente diferente!
● O aspecto de dependência entre camadas e separação de
preocupação geralmente é perdido ao tentar usar outros modelos
para visualizar esse relacionamento de pilha, como pizza como
serviço e carro como serviço.
VISÃO ESTRUTURAL
Diagramação
VISÃO ESTRUTURAL
Diagramação
• A analogia com o carro é interessante de ser feita:
● Privado: é como possuir seus carros - você pode ir para onde quiser, a qualquer

momento (controle total), em uma marca / modelo / cor / acabamento de carro


de sua escolha, mas você é o proprietário e é responsável por sua manutenção.

● IaaS: é como um serviço de aluguel de carro - você ainda pode ir a qualquer


lugar a qualquer momento, com alguns limites de opções de carro, mas não
precisa manter os veículos; basta pegar as chaves e ir.

● PaaS: é como transporte público - você pode ir a lugares definidos / limitados


pelas rotas e horários disponíveis, mas é fácil de usar e pagar por uso
(economia de escala completa)
VISÃO ESTRUTURAL
● Diagramação
VISÃO ESTRUTURAL

Diagramação
• A adição de SaaS exigiu que modificássemos um pouco o modelo,
especialmente porque precisávamos diferenciar PaaS e SaaS, porque
não funcionava para ter apenas uma camada de diferença entre as duas,
e ainda era necessário manter as escalas de diferenças entre as
variáveis;

• Segurança e Integração foram removidas porque há preocupações de


segurança em todas as camadas e adicionados Dados abaixo de
Aplicativos;

• Em seguida, Databases, Servers e Server HW" foram alterados para


Middleware, O/S e Server, respectivamente.
VISÃO ESTRUTURAL

Diagramação
• A visão da figura anterior foi criada (15 de janeiro de 2010), com uma
diferença consistente de duas camadas entre SaaS, PaaS e IaaS; e
uma diferença de 5 camadas entre IaaS e local para expressar que os
ambientes em nuvem são mais diferentes dos ambientes locais.

• Depois de algumas atualizações chegamos à versão final que vale


repetir no próximo slide, que é de fato a visão atual que os mais
variados players tem do que é a nuvem e como ela está estruturada.
VISÃO ESTRUTURAL
Diagramação de PaaS, SaaS e IaaS
FORNECEDORES NO ECOSSISTEMA DE COMPUTAÇÃO
EM NUVEM

IaaS
• Desde o início, o setor é dominado pela AWS (Amazon Web Services),
líder global em receita, com 38% de participação no mercado. Em
seguida, aparece a Microsoft com 18%, a Google com 9% e o Alibaba
com 6%.

PaaS
● As gigantes da tecnologia, que têm capacidade para oferecer uma ampla

gama de recursos para os clientes em uma mesma plataforma. Alguns


dos principais são o Google App Engine, Oracle Cloud Platform, Cloud
Fondry, da Pivotal, e o Heroku, da Salesforce.
FORNECEDORES NO ECOSSISTEMA DE COMPUTAÇÃO
EM NUVEM

SaaS
• Qualquer pessoa que tenha utilizado apps da Google, como Gmail ou
Google Docs, ou serviços de armazenamento na nuvem, como o
Dropbox, já desfrutou de partes do SaaS.

• Os principais fornecedores de SaaS incluem a Microsoft, com o Office


365, assim como pioneiros de programas corporativos como a
Salesforce.
Referências

• https://csrc.nist.gov/publications/detail/sp/800-145/final
• https://dachou.github.io/2018/09/28/cloud-service-models.html
• https://www.linkedin.com/pulse/20140730172610-9679881-pizza-
as-a-service/
• https://dachou.github.io/2011/03/16/cloud-ecosystems.html
• https://dachou.github.io/2009/01/13/cloud-computing-and-microsoft-
platform.html
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Modelos de Serviços em Computação


em Nuvem
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Middlewares para IaaS


ROTEIRO
• O que é middleware?
● O papel do middleware no desenvolvimento de aplicações

● Tipos

• Exemplos de middlewares para gerenciar infraestruturas


de Nuvem
● OpenStack

● CloudStack
MIDDLEWARE

• O middleware é o software que se situa entre o SO e as


aplicações nele executadas.

• Permite a comunicação e o gerenciamento de dados para


aplicações distribuídas.

• Permite que os usuários executem solicitações como enviar


formulários em um navegador da Web ou que o servidor Web
apresente páginas dinâmicas da web com base no perfil de um
usuário.
MIDDLEWARE

• O papel do middleware

● As aplicações modernas são desenvolvidas para serem executadas em


escala, seja em ambientes on-premises (locais) ou em nuvem pública.
● Para criá-las, os desenvolvedores precisam de um ambiente de
aplicações com recursos fundamentais unificados. O middleware é esse
elemento-chave para montar tal ambiente.
● Também pode ser utilizado para processamento distribuído e paralelo
com ações que ocorrem em tempo real, ao invés de funcionar somente
como emissor e recebedor de dados das aplicações
MIDDLEWARE

• O papel do middleware

● Embora todos os tipos de middleware executem funções de


comunicação, a escolha depende de qual serviço será utilizado
e qual informação deve ser utilizada na comunicação

● Isso pode incluir:


● Autenticação

● Gerenciamento de transações

● Consulta de mensagens

● Servidores de Aplicativos

● Servidores Web
MIDDLEWARE

• Tipos
● Banco de dados
● Servidor de aplicativos
● Orientado a mensagens
● Para monitorar e processar transações
MIDDLEWARE
• Usos do Middleware
● Otimizar aplicações

● Possibilidade de transformar aplicações legadas em aplicações

atuais, em especial aquelas implantadas em nuvens


computacionais
● Melhora o desempenho e também a portabilidade de aplicações

● Desenvolver novas aplicações


● Trabalhar com plataformas considerando padronizar ambientes de:
● Execução

● Linguagens de programação

● Frameworks de apoio
MIDDLEWARE
• Usos do Middleware
● Integração

● Permite integrar sistemas internos aos sistemas externos (bem

comum estarem na Nuvem)


● Os desenvolvedores conseguem facilmente estender recursos dos

sistemas internos a aplicações externas


● Interfaces
● Muitos middlewares podem ser seus serviços/funcionalidades

acessados por meio de uma API


● Isso permite conectar serviços distintos utilizando uma camada

comum
MIDDLEWARE
• Usos do Middleware
● Transmissão de dados
● Possibilidade de trocar informações de forma assíncrona com um

intermediador de dados, em que estes podem ser


compartilhados entre várias aplicações
● Exemplo: Apache Kafka
● Middleware para a transmissão de dados em tempo real

● Automação Inteligente
● Profissionais de TI podem automatizar decisões manuais

● Ajuda a gerenciar melhor os recursos e também aumentar a

eficiência do ecossistema
EXEMPLOS

• OpenStack e CloudStack

● Ambos têm como objetivo fornecer um conjunto de componentes


de código aberto que, juntos, oferecem as funções necessárias
para gerenciar nuvens que possuem até milhares de servidores
individuais.

● Ambos são voltados para provedores de serviços que criam


nuvens públicas e para empresas que consolidam seus recursos
em nuvens privadas.
EXEMPLOS
• OpenStack e CloudStack
● São softwares de código aberto para criar nuvens de
infraestrutura como serviço (IaaS).
● Ambos estão sob a Licença Apache, que permite a criação de
projetos derivados e até mesmo o fechamento de sua fonte,
desde que você mantenha os avisos de direitos autorais.
● Eles representam uma nova onda de software aberto, onde as
empresas abrem seu código para agrupar recursos para outras
partes interessadas (outro exemplo relevante dessa tendência é
CloudFoundry para criar PaaS).
EXEMPLOS
• OpenStack e CloudStack

● Possuem funções para:


● alocar máquinas virtuais para servidores individuais
● gerenciar switches
● criar e gerenciar redes virtuais, sistemas de armazenamento de
objetos e blocos
● uma interface de gerenciamento de computação em nuvem
para dar suporte a todos esses componentes
EXEMPLOS
EXEMPLOS
• OpenStack
● O OpenStack começou como um projeto de código aberto em

2010 pela Rackspace Hosting Inc. e NASA.


EXEMPLOS
• OpenStack
● Apresenta uma arquitetura modular que atualmente possui onze
componentes:
● Nova - fornece máquinas virtuais (VMs) sob demanda.
● Swift - fornece um sistema de armazenamento escalonável que
oferece suporte ao armazenamento de objetos.
● Cinder - fornece armazenamento de bloco persistente para VMs
convidadas.
● Glance - fornece um catálogo e repositório para imagens de disco
virtual.
● Keystone - fornece autenticação e autorização para todos os
serviços OpenStack.
EXEMPLOS
• OpenStack
● Horizon - fornece uma interface de usuário (IU) modular baseada na web
para serviços OpenStack.
● Neutron - fornece conectividade de rede como serviço entre dispositivos
de interface gerenciados por serviços OpenStack.
● Ceilometer - fornece um único ponto de contato para sistemas de
faturamento.
● Heat - fornece serviços de orquestração para vários aplicativos de
nuvem compostos.
● Trove - fornece provisionamento de banco de dados como serviço para
mecanismos de banco de dados relacionais e não relacionais.
● Sahara - fornece serviços de processamento de dados para recursos
gerenciados pelo OpenStack.
EXEMPLOS
• CloudStack
● CloudStack começou na Cloud.com.

● O objetivo era permitir que provedores de serviços e empresas


criassem e operassem nuvens públicas ou privadas com recursos
equivalentes ao Elastic Compute Cloud da Amazon.

● Em 2010, a Cloud.com lançou uma versão para download gratuito


sob a licença GPLv3 e, posteriormente, lançou duas versões com
suporte. Mais tarde, o CloudStack foi adquirido pela Citrix, que
então doou o CloudStack para a Apache Software Foundation
EXEMPLOS
• CloudStack
EXEMPLOS
• CloudStack
● Os recursos e funcionalidades fornecidos pelo CloudStack
● Funciona com hosts executando XenServer / XCP, KVM, Hyper-V
e / ou VMware ESXi com vSphere
● Fornece uma interface de usuário amigável baseada na Web
para gerenciar a nuvem
● Fornece uma API nativa
● Pode fornecer uma API compatível com Amazon S3 / EC2
(opcional)
● Gerencia o armazenamento para instâncias em execução nos
hipervisores (armazenamento primário), bem como modelos,
instantâneos e imagens ISO (armazenamento secundário)
CONCLUSÃO

• Middlewares

● Facilitam desenvolver novas soluções


● Ocultam a complexidade relacionada à comunicação com
dispositivos e protocolos
● Fornecem APIs para integrar aplicações de terceiros
● Ajudam a criar soluções de forma mais rápida e escalável.
CONCLUSÃO

• Middlewares

● Apache CloudStack apresenta sinergia com as nuvens públicas da


Amazon, pois oferece um tradutor de API para que os aplicativos
escritos para o CloudStack também possam ser executados na
AWS.
● Uma implementação do OpenStack usa componentes do
OpenStack para suportar cada função de nuvem necessária. Uma
implantação incluirá muitos componentes, incluindo Swift e Cinder
para armazenamento de objetos e blocos.
REFERÊNCIAS
ESTRELA, J. C; Notas de Aula – Sistemas Computacionais Distribuídos
https://cloudstack.apache.org/
https://www.redhat.com/pt-br/topics/middleware/what-is-middleware
https://azure.microsoft.com/pt-br/overview/what-is-middleware/
https://www.kaaproject.org/
https://www.kaaproject.org/overview
https://github.com/openremote/openremote
https://dojotdocs.readthedocs.io/en/latest/architecture.html
https://www.openhab.org/docs/
https://en.wikipedia.org/wiki/OpenRemote
http://www.dojot.com.br/
http://www.openremote.com/community/
https://ahmedbanafa.blogspot.com/2014/09/openstack-or-cloudstack.html
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Middlewares para IaaS


04/10/2022 17:46 Conteúdo

Pergunta 1 1,42 em 1,42 pontos


As nuvens, no geral, podem ser governamentais ou particulares, públicas, privadas ou híbridas,
compartilhadas ou dedicadas, locais ou globais.

Sobre o tema, analise as asserções a seguir e a relação proposta entre elas.

I. As nuvens podem ser governamentais, criadas e mantidas pelo poder público em diversas instâncias,
ou particulares, criadas e mantidas por empresas do mercado corporativo.

PORQUE

II. A segurança de acesso dos usuários, a conectividade com os data centers e a garantia da
disponibilidade dos servidores são aspectos a serem considerados nas infraestruturas.

Com base na análise das asserções, conclui-se que:

Resposta d. 
Selecionada: as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

Respostas: a. 
as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

a primeira asserção é falsa, e a segunda asserção é verdadeira;


b. 

a primeira asserção é verdadeira, e a segunda asserção é falsa;


c. 
d. 
as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

 ambas as asserções são falsas.


e. 

Comentário JUSTIFICATIVA
da
resposta: A primeira asserção é verdadeira, pois, de fato, as nuvens podem ser governamentais, quando
são criadas e mantidas pelo poder público em diversas instâncias, ou particulares, quando são
criadas e mantidas por empresas do mercado corporativo. A segunda asserção também é
verdadeira, mas não justifica corretamente a primeira, pois os aspectos elencados têm relação
com as necessidades para o ambiente em nuvem, e não com as características necessárias à
sua infraestrutura subjacente.

Pergunta 2 1,43 em 1,43 pontos


A computação em nuvem é uma tecnologia que utiliza a ____________ e ____________ remotos interligados
por meio de uma estrutura de comunicação para armazenar dados e hospedar aplicações acessíveis por
protocolos e pelo padrão da WWW (World Wide Web).

Preencha as lacunas assinalando a alternativa CORRETA.

Resposta Selecionada: Internet e servidores.


e. 

Respostas:  Tecnologia e acessos.


a. 

 Internet e protocolos.
b. 

Tecnologia e servidores.
c. 

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/5
04/10/2022 17:46 Conteúdo
Segurança e protocolos.
d. 

Internet e servidores.
e. 

Comentário JUSTIFICATIVA
da
resposta: Na primeira lacuna, o termo correto é INTERNET, mecanismo utilizado para a conexão com a
computação em nuvem. Já o termo que preenche corretamente a segunda lacuna é
SERVIDORES, recursos necessários às aplicações. Os termos “tecnologia”, “acessos” e
“protocolos” não se enquadram no contexto apresentado pela questão, tendo em vista os
conceitos mencionados.

Pergunta 3 1,43 em 1,43 pontos


Os modelos de serviços oferecidos na nuvem para armazenamento, infraestrutura e virtualização de
aplicações tornaram-se populares, principalmente pela sua disponibilização nas plataformas de grandes
empresas de tecnologia, como Google, Microsoft e Amazon. Esses modelos disponibilizam a nuvem como
uma infraestrutura, uma plataforma ou um software para o cliente final.

Quais são os principais modelos de computação em nuvem? Assinale a alternativa CORRETA.

Resposta Selecionada: SAAS, PAAS, IAAS.


e. 

Respostas: a. LAN, WAN, VLAN.


VPN, LAN e WAN.
b. 

POP, IMAP, HTTPS.


c. 
SMTP, SSH, HTTP.
d. 

SAAS, PAAS, IAAS.


e. 

Comentário JUSTIFICATIVA
da
resposta: SAAS, PAAS e IAAS, de fato, são os principais modelos de computação em nuvem da
atualidade. LAN, WAN e VLAN representam os tipos de redes quanto à abrangência, ou seja,
quanto ao tamanho da rede. SMTP, SSH, HTTP, POP e IMAP representam os protocolos de
rede em variados tipos de serviços.

Pergunta 4 1,43 em 1,43 pontos


Os acordos de nível de serviço, mais conhecidos por sua sigla em inglês (SLA, Service Level Agreement), têm
por objetivo garantir às empresas qualidade e diminuição dos riscos pertinentes à adoção de novas
tecnologias.

Considerando as características do SLA, julgue se são (V) verdadeiras ou (F) falsas as afirmativas a
seguir.

I. (  ) O SLA é um documento que representa o nível de serviço que uma empresa oferece a outra, com
relação à garantia do atendimento às suas necessidades.

II. (  ) O SLA é um documento que estabelece as missões da empresa, bem como seus objetivos e sua
visão comercial.

III. (  ) O SLA também pode ser considerado uma forma de melhorar o relacionamento entre o contratante
e o prestador do serviço.

IV. (  ) O SLA é uma necessidade imprescindível em contratos de prestação de serviços na área da


tecnologia da informação.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/5
04/10/2022 17:46 Conteúdo
Agora, assinale a alternativa que apresenta a sequência CORRETA.

Resposta Selecionada: d. V - F - V - V.

Respostas: F-V-V-V.
a. 

F - F - F - V.
b. 

V - V - V - V.
c. 

d. V - F - V - V.

e. V - V - F - F.
Comentário JUSTIFICATIVA
da
resposta: A afirmativa I é verdadeira, já que mostra uma das principais características do SLA. A
afirmativa II, por sua vez, é falsa, pois o SLA não estabelece a visão comercial da empresa,
principalmente em termos de tecnologia. A afirmativa III é verdadeira, já que, de fato, o SLA
pode ser considerado uma forma de melhorar o relacionamento entre o contratante e o
prestador do serviço. Por fim, a afirmativa IV também é verdadeira, pois, na atualidade,
realmente, o SLA é muito necessário nos contratos de prestação de serviços na área da
tecnologia da informação.

Pergunta 5 1,43 em 1,43 pontos


O middleware é o software situado entre o SO e as aplicações nele executadas. Ele permite a comunicação e
o gerenciamento de dados para aplicações distribuídas e, também, que os usuários executem solicitações
como enviar formulários em um navegador da web ou que o servidor web exiba páginas dinâmicas
da web baseadas no perfil de um usuário específico.

Com relação ao papel do middleware, avalie as afirmativas a seguir.

I. Pode ser utilizado para processamento dividido e paralelo com ações que ocorrem em tempo real,
permitindo melhor desempenho das aplicações.

II. Atualmente, com a utilização do middleware, as integrações entre API e ambientes foram otimizadas.

III. Para a criação de aplicações modernas e atuais, os desenvolvedores necessitam de um ecossistema


de aplicações com recursos fundamentais unidos. O middleware é esse elemento-chave para montar
tal ambiente.

IV. As aplicações modernas e atuais são programadas para serem executadas em escala, seja em
ambientes locais ou em nuvem pública.

Está correto o que se afirma em:

Resposta Selecionada: I, II, III e IV.


c. 

Respostas:  I, III e IV, apenas.


a. 

 II, apenas.
b. 

I, II, III e IV.


c. 

I e II, apenas.
d. 

 I e III, apenas.
e. 

Comentário JUSTIFICATIVA
da

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/5
04/10/2022 17:46 Conteúdo
resposta: A afirmativa I está correta, pois uma das principais características do middleware é o uso do
processamento dividido ou distribuído. A afirmativa II também está correta, já que uma das
vantagens do middleware é a integração otimizada entre API e ambientes. A afirmativa III,
igualmente, está correta, pois os desenvolvedores precisam unificar recursos, e
o middleware facilita bastante a produção das aplicações. Por fim, a afirmativa IV também está
correta, já que, atualmente, quando uma aplicação é desenvolvida, uma premissa fundamental
é pensar na expansão que pode ocorrer com o uso da aplicação.

Pergunta 6 1,43 em 1,43 pontos


São três os principais tipos de computação em nuvem, cada um com suas características e soluções.

Considerando os principais tipos de computação em nuvem, correlacione os termos a seguir aos seus
principais conceitos.

1 – SAAS.

2 – PAAS.

3 – IAAS.

I – Middlewares e sistemas operacionais, em conjunto com a infraestrutura de comunicação.

II – De forma transparente, o software/aplicação que o usuário utiliza ou deseja implantar faz uso dos
sistemas operacionais virtualizados e de toda a infraestrutura de comunicação e processamento.

III – Provisão em geral de rede de comunicação e hardware para processamento e armazenamento de dados.

Agora, assinale a alternativa que apresenta a sequência correta.

Resposta Selecionada: 1-II; 2-I; 3-III.


a. 

Respostas: 1-II; 2-I; 3-III.


a. 

b. 1-III; 2-II; 3-I.


1-III; 2-I; 3-II.
c. 
1-I; 2-II; 3-III.
d. 

e. 1-I; 2-III; 3-II.


Comentário JUSTIFICATIVA
da
resposta: SAAS (nuvem) é o software como serviço, portanto, a afirmativa II equivale à opção 1. O PAAS
é a plataforma como serviço, portanto, a afirmativa I equivale à opção 2. Por fim, o IAAS é a
infraestrutura como serviço, portanto, a afirmativa III equivale à opção 3.

Pergunta 7 1,43 em 1,43 pontos


A atividade de busca do melhor fornecedor para um SLA é denominada benchmark. Em relação ao SLA, há
um conjunto de palavras-chaves utilizadas para a elaboração do documento (contrato).

Sobre o tema, assinale a alternativa que corresponde corretamente a um pilar (palavra-chave) do SLA.

Resposta Selecionada: b. Disponibilidade.

Respostas: Financeiro.
a. 

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 4/5
04/10/2022 17:46 Conteúdo

b. Disponibilidade.

Individual.
c. 
Estático.
d. 

Comercial.
e. 

Comentário JUSTIFICATIVA
da
resposta: O SLA tem como principal pilar a DISPONIBILIDADE, principalmente dos serviços prestados.
Esse documento não é algo estático, ou seja, está sempre sendo atualizado. Objetivos
comerciais, financeiros e individuais não estão no foco do SLA, tendo em vista o contexto
apresentado na questão.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 5/5
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Virtualização – Contexto e Conceitos


ROTEIRO

• Origens da Virtualização

• Introdução

• Multiprogramação

• Virtualização
ORIGENS DA VIRTUALIZAÇÃO

• Surgimento em meados da década de 60

• Grandes computadores ficam mais velozes ao processar dados,


mas eram ineficientes em aproveitar o tempo de cálculo devido
ao gerenciamento manual de processos feitos por um operador

• Surge o conceito de tempo compartilhado (Time Sharing)


ORIGENS DA VIRTUALIZAÇÃO

• Robert P. Goldberg em 1972


●Dissertação na Universidade de Harvard
●Base teórica da arquitetura para sistemas computacionais
virtuais

• IBM lança um mainframe capaz de executar de forma simultânea


diferentes Sos
●Sob a supervisão de um controlador
●Hypervisor
INTRODUÇÃO

• Motivação
●Organizar vários servidores virtuais em um conjunto reduzido
de servidores físicos.
●Consolidação de aplicações
●Ambientes de teste e homologação de sistemas
●Execução de aplicações que utilizam diferentes SO´s
●Migração de sistemas
●Provisionamento de servidores
●Recuperação de desastres
INTRODUÇÃO

• Motivação
●Diminuir custos com TI (hardware e software).
●Diminuir custos com energia elétrica.
●Diminuir lixo tecnológico.
●Flexibilidade e agilidade para criação de ambientes.
●Administrar e gerenciar melhor os ambientes de testes ou
produção.
INTRODUÇÃO

• Benefícios

●Instalações: Espaço, resfriamento, energia

●Hardware: Servidores, switches, roteadores, armazenamento

●Software: Suporte, licenças, manutenção

●Administração de Servidores: Servidores, site, dados,


software, servidores, aplicações
MULTIPROGRAMAÇÃO

• Sistemas tradicionais funcionam com Multiprogramação

• Simulação de um ambiente operacional no qual cada aplicação


possui um processador

• Sistemas operacionais multiprogramados

• Criação da abstração de processo

• Cada processo possui a disposição uma máquina virtual de alto


nível
MULTIPROGRAMAÇÃO

Fonte: 4
MULTIPROGRAMAÇÃO

Fonte: 4
VIRTUALIZAÇÃO

• Capacidade de se executar simultaneamente, mais de um


sistema operacional em um único servidor físico

SO01 SO02 SO03 SO04


...

Servidor Físico
VIRTUALIZAÇÃO

• A virtualização pode ocorrer em diferentes níveis:

●Nível da linguagem de programação


●Nível de biblioteca
●Nível do sistema operacional
●Nível de abstração de hardware
●Nível do conjunto de instruções
VIRTUALIZAÇÃO

• Nível do Hardware Abstraction Layer (HAL)


●Tem uma VM que corresponde ao ISA (Instruction Set
Architecture) e virtualização de dispositivos, processos e memória
●Host hospedeiro e hóspede utilizam o mesmo ISA
●Mapeamento de recursos virtuais sob os recursos físicos
VIRTUALIZAÇÃO

• Tipos de sistemas de virtualização


●Hardware Partitioning: técnica usual quando temos que configurar
um servidor físico, um desktop, ou notebook, etc.

●Hosted: virtualização é realizada com o auxílio de um sistema


operacional hospedeiro

●Stand alone/Bare Metal: A virtualização é realizada sem auxílio de


um sistema operacional hospedeiro
VIRTUALIZAÇÃO

Servidor Servidor Servidor


Sistema Sistema
Sistema Sistema Sistema Sistema
Operacional Operacional
Operacional Operacional Operacional Operacional

Hypervisor
Controlador Hypervisor
de partição
Sistema Operacional

SMP SMP SMP

VMware GSX,
VMware ESC Server, Microsoft Virtual Server,
System z LPAR System z, Linux KVM, HP Integrity VM User Mode Linux,
MS Hyper-v) z/VM e Xen Hypervisor

Hardware Partitioning Bare Metal Hypervisor Hosted Hypervisor


Fonte: 3
REFERÊNCIAS

●https://www.redhat.com/pt-br/topics/virtualization/what-is-KVM
●https://www.virtualbox.org/
●https://www.ic.unicamp.br/~ducatte/mo401/1s2010/T2/Apresentacoes/
●https://edisciplinas.usp.br/mod/resource/view.php?id=2844150
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Virtualização – Contexto e Conceitos


INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Tipos de Virtualização
ROTEIRO
• Virtualização x Emulação

• Máquinas Virtuais de Processos

• Monitores de Máquinas Virtuais

• Suporte de Hardware para Virtualização

• Softwares para Virtualização

• Containers
VIRTUALIZAÇÃO X EMULAÇÃO

• Virtualização
● As instruções do sistema operacional em uma VM são repassadas

para uma máquina real executar


● O desempenho tende a ser melhor

• Emulação
● Todas as instruções são executadas via software

● O desempenho tende a cair


Tipos de Virtualização
• Há várias formas de implementar a virtualização, mas a
implementação delas em geral é feita de duas maneiras

● Máquina Virtual (ou Domínio)


● É o ambiente que é virtualizado e que corresponde ao sistema
operacional e aplicações deste SO

● Monitor de Máquina Virtual ( Hypervisor )


● Faz o gerenciamento dos recursos da máquina virtual
● Trata-se de uma aplicação que implementa uma camada de
virtualização, o que permite que diversos SOs funcionem sobre um
mesmo hardware de forma simultânea
Tipos de Virtualização

• Entre as diferenças entre os modos de implementação está a forma


como ambos são executados

● O hypervisor sempre estará presente enquanto o host/computador


estiver ligado

● A máquina virtual de processo somente existirá enquanto o


processo correspondente a ela estiver em execução
Máquina Virtual de Processo

• Uma aplicação de um SO que executa em modo usuário

● As instruções são executadas em modo não privilegiado

● Exemplo: VMWare Player (máquina virtual de processo)


Monitores de Máquinas Virtuais

• Monitor de Máquinas Virtuais (MV) lida com:

● Processamento (aplicações e sistema operacional ) é realizado


diretamente sobre o processador físico
● Instruções privilegiadas: são tratadas pelo sistema de virtualização
● Acesso a dispositivos: intermediado pelo sistema de virtualização
● Também atua para alterar o modo de execução do SO convidado de
privilegiado para não privilegiado
● Também intermedia as chamadas de sistemas e controle de acesso a
dispositivos como USB, rede, etc.
Monitores de Máquinas Virtuais
• Monitor de Máquinas Virtuais

● Destaque para três características


● Integridade

● Tudo que é requisitado para acessar o hardware deve ser alocado

de forma explícita pelo monitor


● Eficiência
● Que muitas instruções do processador virtual possam ser

executadas diretamente pelo processador real


● Equivalência
● O comportamento de execução deve ser semelhante ao da

máquina real
Monitores de Máquinas Virtuais

• Monitor de Máquinas Virtuais

● Pode ser implementado por meio de dois métodos


● Virtualização Total
● Para-Virtualização
Monitores de Máquinas Virtuais
• Virtualização total
● Ocorre sem a inclusão de otimizações ao SO para virtualização

● Apresenta sobrecarga, pois o Monitor de Máquina virtual deve oferecer à

Máquina Virtual uma imagem semelhante a um sistema real, com:


● BIOS virtual

● Espaço de memória virtual

● Gerenciamento de memória virtual

● Dispositivos virtuais

● Desvantagem
● Prover um conjunto de dispositivos genéricos, o que pode causar

subutilização de recursos disponíveis


● Como o SO hóspede não precisa ser modificado, cada instrução gerada

por este deve ser testada pelo monitor de máquinas virtuais (sobrecarga)
Monitores de Máquinas Virtuais

• Para-virtualização

● Técnica de virtualização em que o SO hóspede é modificado para


otimizar o desempenho. O SO pode chama o monitor de máquinas
virtuais para executar uma instrução específica (recursos usados
de forma apropriada)
Suporte de Hardware para Virtualização

• Intel e AMD desenvolveram chips com extensões que dão suporte


a virtualização
● Lida com informações sensíveis de modo apropriado

● Embora com o mesmo propósito as soluções da AMD e Intel não

são compatíveis

• AMD
● AMD-V – para arquiteturas x86 e 64 bits

• Intel
● Intel VT – para arquiteturas x86 e 64 bits
Softwares para Virtualização

• Tabela descritiva de ferramentas de virtualização

Nome Tipo
VirtualBox Virtualização Total
Xen Para-Virtualização
VMWare Virtualização Total
QEMU Emulação
Linux VServer Virtualização no nível do SO
OpenVZ Virtualização Total
Containers

• O que é?
● Container é um ambiente isolado.
● Docker: é uma plataforma open source escrita na linguagem de
programação Go
● Ele agrupa partes de softwares de um sistema de arquivo
completo e que abrange todos os recursos necessários para a
sua execução.
● Desta forma, é uma plataforma de containers.
Containers

• Diferenças para ambientes virtualizados


● Docker é uma implementação de virtualização de containers
● É uma proposta que segue paralela à ideia de Hypervisores
● O container exclui a virtualização pelo hypervisor e o host entra em contato
direto com as bibliotecas

● Utiliza o Linux Container (LXC) como backend


● Não fornece uma VM, mas um ambiente virtual semelhante ao que
denominamos de chroot jail, com maior isolamento
● Permite definir limites de recursos por containers (CPU, memória, I/O)
Containers
• Diferenças para ambientes virtualizados
● Virtualização

Fonte: 3
Containers
• Diferenças para ambientes virtualizados
● Container/Docker

Fonte: 3
Containers
• Diferenças para ambientes virtualizados

● Itens compartilhados servem apenas para leitura

● Container fica mais leve se comparado a VM

● São mais rápidos no boot

● Economiza recursos
Containers
Vantagens
● Tudo pode ser instalado no servidor e é armazenado nos containers.
Dessa forma, os mesmos softwares e as suas versões podem ter uma
execução facilitada em qualquer ambiente de desenvolvimento.
● Usa bibliotecas de kernel do SO em comum.
● Pacotes e até mesmo um ambiente inteiro são dispostos no container
e se tornam portáveis.
● Torna o trabalho conjunto mais eficiente.
● Simplifica a metodologia DevOps facilitando o desenvolvimento ágil.
● Permite o escalonamento de aplicações e o deploy de maneira mais
simples.
Containers
Vantagens
● Economia de recursos
● Maior disponibilidade dos sistemas
● Compartilhamento
● Os arquivos podem ser compartilhados entre o host e o
container ou um volume pode ser distribuído para outros
● Facilita o gerenciamento
● Aplicação como pacote completo
● Replicação e padronização
REFERÊNCIAS

● https://www.vmware.com/pdf/virtualization.pdf

● https://www.meupositivo.com.br/panoramapositivo/container-docker/

● https://www.mav.com.br/o-que-e-docker/
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Tipos de Virtualização
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Exemplos de Virtualizadores e
Ferramentas de Gerenciamento
ROTEIRO

• VirtualBox

• KVM/QEMU

• Docker
VirtualBox

• Site
● http://virtualbox.org

● Solução multiplataforma (Windows, Linux)

● Atualmente desenvolvida e mantida pela Oracle

● Fácil de utilizar e instalar

● É gratuita!
VirtualBox

• Hosted Hypervisor
● Código aberto (open-source) para arquiteturas x86. Roda em
Windows, macOS, Linux

● Suporta a criação e gerenciamento de máquinas virtuais hóspedes


executando os sistemas Windows, Linux, BSD

● Fornece um pacote de device drivers denominado "Guest


Additions" para melhorar o desempenho
VirtualBox

Fonte: 7
VirtualBox

Fonte: 7
VirtualBox

Fonte: 7
KVM/QEMU
• Sites
● https://www.linux-kvm.org/page/Main_Page

● https://www.qemu.org/

• KVM (Kernel-Based Virtual Machine)


● Tecnologia de virtualização open source baseada no Linux®.

● Com a KVM, você pode transformar o Linux em um hipervisor,


permitindo que uma máquina host execute vários ambientes virtuais
isolados, chamados máquinas guest ou máquinas virtuais.
• QEMU (Machine Emulator)
● Software open source que serve para emular um processador
KVM/QEMU

• Bare-Metal
● KVM (Kernel-Based Virtual Machine):

● Converte o Linux em um hipervisor tipo-1 (bare-metal).

● Para executar VMs, todos os hipervisores precisam de alguns


componentes em nível de sistema operacional, como
gerenciador de memória, agendador de processos, stack de
entrada/saída (E/S), drivers de dispositivo, etc.
KVM/QEMU

Fonte: 3
KVM/QEMU

Fonte: 2
KVM/QEMU

Fonte: 2
Docker
• Site
● https://www.docker.com/

● Documentação
● https://docs.docker.com/

Fonte: 4
Docker
• Arquitetura Docker

Fonte: 4
Docker

Fonte: 6
Referências

https://www.oracle.com/us/technologies/virtualization/oraclevm/oracle-vm-virtualbox-ds-
1655169.pdf
https://sempreupdate.com.br/criar-vm-e-instalar-o-windows-10-no-virt-manager/
https://www.qemu.org/
https://fedorabr.org/discussion/176/tutorial-instalacao-e-uso-basico-do-qemu-kvm-virt-
manager
https://pt.wikiversity.org/wiki/Docker
https://www.alura.com.br/artigos/desvendando-o-dockerfile
https://www.virtualbox.org/manual/UserManual.html
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Exemplos de Virtualizadores e
Ferramentas de Gerenciamento
04/10/2022 17:47 Conteúdo

Pergunta 1 1,42 em 1,42 pontos


A tecnologia que fundamenta a computação em nuvem é a virtualização. O componente essencial é a noção
de máquina virtual, que possibilita a definição de servidores para executar aplicações em geral. Os servidores
virtuais são desenvolvidos com base em capacidade de processamento (número de processadores),
memória, armazenamento, interfaces de rede e software que executam.

Sobre o tema, analise as asserções a seguir e a relação proposta entre elas.

I. Uma máquina virtual nada mais é do que a imagem de um sistema operacional e o software necessário
instalado para executar em determinado hypervisor.

PORQUE

II. É possível ter uma imagem do sistema operacional Windows 7, do Ubuntu, do Mac com vários
aplicativos, para executar em uma máquina virtual definida no VirtualBox, por exemplo.

Com base na análise das asserções, conclui-se que:

Resposta a. 
Selecionada: as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

Respostas: a. 
as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

a primeira asserção é falsa, e a segunda asserção é verdadeira;


b. 

c. 
as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

a primeira asserção é verdadeira, e a segunda asserção é falsa;


d. 

ambas as asserções são falsas.


e. 

Comentário JUSTIFICATIVA
da
resposta: A primeira proposição está correta, pois uma máquina virtual tem todos os recursos que uma
máquina física precisa para ser executada. A segunda proposição está correta e justifica a
primeira, pois apresenta um hypervisor, no caso, o virtualbox, e as possibilidades de sistemas
operacionais que podem ser virtualizados por meio de uma imagem iso.

Pergunta 2 1,43 em 1,43 pontos


A virtualização, de forma prática, trabalha em diferentes níveis. Cada nível é responsável por um tipo de
serviço, que pode virtualizar um servidor inteiro, parte dele ou somente um banco de dados, por exemplo.

Com relação aos níveis da virtualização, assinale a alternativa CORRETA.

Resposta a. 
Selecionada: Nível do SO, biblioteca, linguagem de programação e nível do conjunto de instruções,
atualmente, são considerados os principais níveis de virtualização.

Respostas: a. 

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/5
04/10/2022 17:47 Conteúdo
Nível do SO, biblioteca, linguagem de programação e nível do conjunto de instruções,
atualmente, são considerados os principais níveis de virtualização.

b. 
Baixo, médio e alto representam os níveis atuais da virtualização nos data centers como
Google e Amazon.

c. 
Nível de programação, banco de dados e nível alto representam os níveis da virtualização de
servidores.
d. 
O nível de sistema operacional, o nível de protocolo, o nível baixo e o nível alto são os
principais níveis atualmente utilizados.

e. 
Acesso à rede, apresentação, enlace de dados são, atualmente, os 3 principais níveis da
virtualização.

Comentário JUSTIFICATIVA
da
resposta: Os níveis da virtualização são baseados na tecnologia que o cenário necessita; virtualizar um
sistema operacional, uma linguagem de programação, uma biblioteca ou o servidor completo
com todos os recursos necessários é possível nos dias atuais. Níveis como alto, baixo, acesso
a rede, representam outros aspectos da infraestrutura de redes.

Pergunta 3 1,43 em 1,43 pontos


A virtualização foi motivada por várias questões envolvendo a administração e o melhor gerenciamento do
ambiente de produção e teste. Organizar vários servidores virtuais em um conjunto reduzido de servidores
____________ e efetivar a recuperação de ____________ foram aspectos que alavancaram a computação
em nuvem.

Preencha as lacunas assinalando a alternativa CORRETA.

Resposta Selecionada: Físicos e desastres.


d. 

Respostas:  Analógicos e redes de computadores.


a. 

Analógicos e desastres.
b. 

c. Físicos e configurações.
Físicos e desastres.
d. 

Físicos e protocolos.
e. 

Comentário JUSTIFICATIVA
da
resposta: As vantagens da computação em nuvem são inúmeras, principalmente a recuperação de
desastres e a possibilidade de reduzir vários servidores físicos e transformá-los em servidores
virtuais, conforme os termos que preenchem corretamente as lacunas da questão. Os demais
termos não guardam relação com o texto apresentado no enunciado.

Pergunta 4 1,43 em 1,43 pontos


Na virtualização, existe a figura do hypervisor, que faz todo o gerenciamento dos recursos da máquina virtual
e permite que diversos sistemas operacionais funcionem por meio de um mesmo hardware.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/5
04/10/2022 17:47 Conteúdo
Com relação às características da virtualização, avalie as afirmativas a seguir.

I. O hypervisor sempre estará presente quando o host/computador estiver ligado, disponibilizando os


recursos necessários.

II. A virtualização é encontrada nas redes locais das empresas, podendo estar presente somente em uma
LAN ou WLAN.

III. As principais características do monitor de máquinas virtuais são a integridade, a eficiência e a


equivalência.

IV. A máquina virtual é uma imagem semelhante a um sistema real, com memória, disco, entre outros
recursos.

Está correto o que se afirma em:

Resposta Selecionada: I, III e IV, apenas.


a. 

Respostas: I, III e IV, apenas.


a. 

I e III, apenas;
b. 

I, II, III e IV;


c. 
II, apenas;
d. 

 I e II, apenas;
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I está correta, pois o gerenciador de máquinas virtuais (hypervisor) sempre estará
ativo quando o servidor ou máquina em que ele está instalado estiver ligado. A afirmativa II
está incorreta, pois a virtualização pode ser encontrada em qualquer cenário de rede: pequena,
média ou grande. A afirmativa III está correta, já que apresenta as principais características do
monitor de máquinas virtuais. A afirmativa IV também está correta, pois a máquina virtual é
uma cópia do servidor real, com todos os recursos de hardware disponíveis para que ela
funcione.

Pergunta 5 1,43 em 1,43 pontos


A virtualização reduz custos com energia e gastos com vários servidores físicos, além de facilitar a migração
de ambientes de forma otimizada.

Considerando as características da virtualização, correlacione os termos a seguir aos seus principais


conceitos.

1 – Virtualização.

2 – Emulação.

3 – Máquina virtual.

I – É o ambiente virtualizado que corresponde ao sistema operacional e suas aplicações.

II – As instruções do sistema operacional em uma VM são repassadas para uma máquina real executar. O
desempenho tende a ser melhor.

III – Todas as instruções são executadas via software. O desempenho tende a cair.

Agora, assinale a alternativa que apresenta a sequência correta.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/5
04/10/2022 17:47 Conteúdo

Resposta Selecionada:  1-II; 2-III; 3-I.


a. 

Respostas:  1-II; 2-III; 3-I.


a. 

1-III; 2-II; 3-I.


b. 

1-III; 2-I; 3-II.


c. 

d. 1-I; 2-III; 3-II.


1-I; 2-II; 3-III.
e. 

Comentário JUSTIFICATIVA
da
resposta: A opção 1 equivale à afirmativa II, pois a virtualização possibilita que uma máquina tenha todos
os recursos físicos e lógicos necessários para o seu funcionamento. A opção 2 equivale à
afirmativa III, em que a grande diferença da virtualização para a emulação é por conta do
desempenho. A opção 3 equivale à afirmativa I, pois a máquina virtual (VM) é a copia de uma
máquina real, com todos os recursos necessários para o funcionamento da aplicação
desejada. 

Pergunta 6 1,43 em 1,43 pontos


O conceito de virtualização surgiu na década de 1960, quando a IBM introduziu no mercado
o mainframe S/370, por meio do qual foi possível a criação de máquinas virtuais logicamente separadas,
dando ao usuário a ilusão de estar acessando diretamente uma máquina física.

Com relação aos conceitos e às características da virtualização, avalie as afirmações a seguir.

I. A virtualização tem alguns objetivos fundamentais, tais como implementar a consolidação de


servidores, reduzir custos e prover alta disponibilidade.

II. Os serviços oferecidos pelos data centers incluem segurança, economia e produtividade para


empresas que necessitam de infraestrutura atualizada para seus servidores.

III. A camada de virtualização de servidores é conhecida também por hypervisor ou monitor de máquina


virtual.

IV. Alguns exemplos de virtualização são: virtualização completa, paravirtualização e virtualização


incompleta.

Está correto o que se afirma em:

Resposta Selecionada: I, II e III, apenas;


a. 

Respostas: I, II e III, apenas;


a. 

I e II, apenas;
b. 

II e IV, apenas;
c. 

d.  I, III e IV, apenas.


 III e IV, apenas;
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I está correta, pois apresenta os principais objetivos da virtualização. A afirmativa II
também está correta, tendo em vista que os provedores (data centers) espalhados pelo mundo
têm como premissas a segurança, a economia e a produtividade. A afirmativa III, igualmente,
está correta, pois a camada de virtualização de servidores também pode ser chamada

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 4/5
04/10/2022 17:47 Conteúdo
de hypervisor ou monitor de máquina virtual. Por fim, a afirmativa IV está incorreta, pois
virtualização completa e virtualização incompleta não são exemplos de virtualização.

Pergunta 7 1,43 em 1,43 pontos


Atualmente, existem vários softwares que podem virtualizar máquinas, aplicações, linguagens de
programação etc. São inúmeras ferramentas, gratuitas ou pagas, criando ambientes simples e a infraestrutura
desejável para que as necessidades de tecnologia das instituições sejam atendidas.

Considerando os virtualizadores e as ferramentas de gerenciamento, julgue se são (V) verdadeiras ou


(F) falsas as afirmativas a seguir.

I. (  ) O VirtualBox é uma solução multiplataforma, fácil de utilizar e instalar, atualmente desenvolvida e


mantida pela Oracle.

II. (  ) O Kernel-based Virtual Machine (KVM) é uma tecnologia open source baseada em Windows Server.

III. (  ) O Docker é uma tecnologia para a virtualização de contêineres. Ele virtualiza somente a aplicação
que a tecnologia necessita.

IV. (  ) Com o KVM, é possível transformar o Linux em um hypervisor, permitindo que uma
máquina host execute vários ambientes virtuais isolados.

Agora, assinale a alternativa que apresenta a sequência CORRETA.

Resposta Selecionada: V - F - V - V.
e. 

Respostas: F - V - V - V.
a. 

V - F - F - V.
b. 

V - V - F - F.
c. 
F - F - F - V.
d. 

V - F - V - V.
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I é verdadeira, pois o VirtualBox, de fato, é uma solução multiplataforma,
funcionando, principalmente, em Linux, Windows e macOS. A afirmativa II é falsa, já que o
KVM é baseado em Linux. A afirmativa III é verdadeira, pois relaciona as principais
características do Docker, como a virtualização da aplicação que a tecnologia vai utilizar. A
afirmativa IV também é verdadeira, pois apresenta a principal característica do KVM, que é o
isolamento dos ambientes.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 5/5
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

SOA e Web Services


ROTEIRO

•Introdução
•Evolução dos Negócios
•Problemas
•Evolução das Tecnologias
•SOA
•Serviços Web
INTRODUÇÃO

• A Internet mudou a maneira de se fazer negócios

• Facilidade para acesso às aplicações

• HTML e HTTP –> Padrão de troca de informação

• Navegadores web tornaram a comunicação simples e possível


EVOLUÇÃO DOS NEGÓCIOS

• Evolução dos negócios

• Necessidade de novas soluções

• Transações e trocas de informações tornaram-se


essenciais para os negócios

• Automatização nos dias atuais é mais que fundamental


EVOLUÇÃO DOS NEGÓCIOS

Fonte: 3
EVOLUÇÃO DOS NEGÓCIOS

Fonte: 3
PROBLEMAS

• Problemas a serem resolvidos


● Dificuldades para integrar sistemas heterogêneos;
● Diferentes empresas utilizam diferentes tecnologias e soluções
● Variados domínios;
● Muitos fabricantes;
● Como integrar todas essas soluções de forma automatizada?
● Uma solução para cada tecnologia é inviável!
● Mudar de provedor de serviços pede nova implementação
● Crescente demanda por manutenção (evolutiva, adaptativa,
corretiva, …)
● Novos requisitos ⇒ mudanças constantes;
● Novas tecnologias ⇒ reimplementação;
● Problemas como --> desempenho, composição de serviços;
EVOLUÇÃO DAS TECNOLOGIAS

• RSH (Remote Shell): Executar comandos de shell em máquinas


remotas
• RPC (Remote Procedure Call): Executar funções em máquinas
remotas
• RMI (Remote Method Invocation): API Java para acesso remoto
de métodos
• Java RMI: Somente Java
• Microsoft DCOM (Distributed Component Object Model): Uma
única implementação e padrão proprietário
SOA (SERVICE-ORIENTED ARCHITECTURE)

• “SOA é um estilo arquitetural para construção de aplicações de


software que utilizam serviços disponíveis em uma rede como a
Web” [Endrei et al., 2004].

● Objetivos:
● Integração de sistemas heterogêneos (interoperabilidade);
● Facilitar manutenções
SOA

• As SOAs são caracterizadas por serem:


● Fracamente acopladas;
● Transparentes em localização;
● Independentes de protocolo.
SOA

• Clientes não tem conhecimento de detalhes técnicos da


implementação dos serviços.

• Uma infraestrutura subjacente encarrega-se de tratar esses


detalhes.
ESTRUTURA E TERMINOLOGIA BÁSICA

Fonte: 2 (Adaptado)
ESTRUTURA E TERMINOLOGIA BÁSICA

Fonte: 2 (Adaptado)
SERVIÇOS WEB

• Um sistema de software projetado para suportar


interoperabilidade entre máquinas sobre uma rede.

• Web Services caracterizam-se por ser uma tecnologia para


computação distribuída baseada na Web.

• Características:
● Independente de linguagem ou plataforma
● Troca de mensagens XML
● Descreve uma operação a ser executada ou dados a serem
trocados
SERVIÇOS WEB

• Vantagens
● Permite diferentes serviços distribuídos executarem em uma
variedade de plataformas e arquiteturas.
● Integração com sistemas existentes.
● Integrar processos de negócios com clientes e fornecedores com
um custo menor.
● Web services permitem compartilhamento de processos sem
compartilhar tecnologias.
SERVIÇOS WEB

• Vantagens
● Oferecer serviços de negócios através da Web.
● Liberdade de escolha de ferramentas, produtos e tecnologias.
Usam padrões e protocolos abertos.
● Não fica preso a um middleware específico.
● Não importa se está utilizando Java ou Microsoft DCOM, etc.
● Permite o reúso de serviços e componentes.
SERVIÇOS WEB

• Como as vantagens são oferecidas


● Utilização de XML

● Utilização de protocolos padrão amplamente utilizados pela


indústria (HTTP, HTTPS, SOAP)

● A descrição dos serviços é disponibilizada através de um arquivo


WSDL (formato XML)
SERVIÇOS WEB

• Desvantagens

● Integrar serviços web, dinamicamente, requer que o conteúdo de


registros de dados seja confiável.
● Problemas de desempenho.
● Custo maior para processar documentos XML.
● Padrões para integração de processos de negócio e
gerenciamento de transações podem ser complexos em alguns
casos.
SERVIÇOS WEB

• Arquitetura Básica
SERVIÇOS WEB

• Processamento

Fonte: 3
SERVIÇOS WEB

• Tecnologias envolvidas
● XML
● SOAP
● UDDI
● WSDL
SERVIÇOS WEB

• XML
● eXtensible Markup Language
● Padrão para descrição de dados para serem trocados pela Web.
● Base para todos os demais.
● Mensagens baseadas no protocolo SOAP.
● Descrições de serviços escritas em WSDL.
● Descrições de localização como entradas UDDI.
SERVIÇOS WEB

• SOAP
• Simple Object Access Protocol
• Formato de dados comum para troca de dados cliente–servidor.
• Utilizado para troca de informações em ambientes distribuídos.

Mensagem SOAP, formada por:


• Envelope;
• Cabeçalho (header);
• Corpo principal (mandatory body);
SERVIÇOS WEB

• SOAP

Fonte: 3
SERVIÇOS WEB
<SOAP−ENV: E n v e l o p e
xmlns:SOAP−ENV=
” h t t p : // schemas . xmlsoap . org / soap / e n v e l o p e / ” SOAP−E N V : e n c o d i n
g S t y l e=
” h t t p : // schemas . xmlsoap . org / soap / e n c o d i n g / ”>
<SOAP−ENV: Header >
< t : T r a n s a c t i o n x m l n s : t=”some−URI ” SOAP−E NV: must Understand=”1
”>
</ t : T r a n s a c t i o n>
</SOAP−ENV:Header>
<SOAP−ENV: Body >
<m: Get Book Price xmlns: m=”some−URI ”>
< t i t l e >My L i f e and Times</ t i t l e >
<a u t h o r> F e l i x H a r r i s o n</ a u t h o r>
</ m: Get Book Price>
</SOAP−ENV:Body>
</SOAP−E NV: Envelope>
SERVIÇOS WEB

• WSDL

● Web Service Description Language


● Linguagem para composição de documentos que descrevem a
interface de um WS.
● É um documento XML que descreve um conjunto de mensagens
SOAP e como essas mensagens são trocadas.
● Especifica o que uma mensagem de requisição deve conter e
como será a mensagem de resposta.
● Define a localização do WS e qual protocolo de comunicação é
utilizado para conversar como serviço.
SERVIÇOS WEB
<? xml v e r s i o n=” 1 . 0 ” e n c o d i n g=”UTF−8”?>
< d e f i n i t i o n s name=”Book Search ”
target Namespace=” h t t p : // myexample . com/ b o o k s e a r c h . wsdl ” x m l n s : . . .
<t y p e s>
...
</ t y p e s>
< message name=”Boo k Se arch Input ”>
<p a r t name=”body ” e l e m e n t : ” x s d l : B o o k R e q u e s t ”/>
</ message>
< message name=”Book Search Output ”>
<p a r t name=”body ” t y p e=” x s d l : B o o k R e s p o n s e ”/>
</ message>
<port Type name=”Books Port Type ”>
< o p e r a t i o n name=”get Books ”
< i n p u t message=”t n s : B o o k R e q u e s t ”/>
<o u t p u t message=”t n s : B o o k R e s p o n s e ”/>
</ o p e r a t i o n>
</ port Type>
< b i n d i n g name=”B o o k s S e a r c h B i n d i n g ” t y p e=”t n s : B o o k s P o r t T y p e ”>
...
</ b i n d i n g>
< s e r v i c e name=” B o o k S e a r c h S e r v i c e ”>
<p o r t name=”Books Search Port ” b i n d i n g=” t n s : B o o k s S e a r c h B i n d i n g ”>
< s o a p : a d d r e s s l o c a t i o n=” h t t p : // example . com/ b o o k s e a r c h ”/>
</ p o r t>
</ s e r v i c e>
</ d e f i n i t i o n s>
SERVIÇOS WEB

• UDDI

Universal Description, Discovery and Integration

Repositório/registro/diretório de WS
● Constitui as “páginas amarelas” dos WS
● Localização de WS
● Obtenção de informações sobre os serviços
● Modo de utilizar o serviço (interface)
● Fornece todos os detalhes de como utilizar os serviços
SERVIÇOS WEB
< b u s i n e s s E n t i t y b u s i n e s s K e y=”35 AF7F00−1419−11D6−A0DC−000C0E00ACDD ”
authorized Name=”0100002CAL ” o p e r a t o r=”www−3. ibm . com/ s e r v i c e s / u d d i ”>
<name>BooksToGo</ name>
< d e s c r i p t i o n x m l : l a n g=”en ”>
The s o u r c e f o r a l l p r o f e s s i o n a l books
</ d e s c r i p t i o n>
< c o n t a c t s>
<c o n t a c t>
<personName>Benjamin Boss</ personName>
<phone>( 877 ) 1111111</ phone>
</ c o n t a c t>
</ c o n t a c t s>
REFERÊNCIAS

• Abstração

Fonte: 3
REFERÊNCIAS

1. Endrei, M., Ang, J., Arsanjani, A., Chua, S., Comte, P., Krogdahl, P., Luo, M., and
Newling, T. (2004). Patterns: Service-Oriented Architecture and Web Services. IBM
Redbooks Series. IBM Corporation. Disponível em:
http://www.redbooks.ibm.com/abstracts/sg246303.html

2. Web services and soap. Alonso, G., Casati, F., Kuno, H., and Machiraju, V. (2003).
Web services: Concepts, architectures, and applications. Springer

3. Notas de Aula – Computação Distribuída – ICMC/USP, 2017 – Júlio Cezar Estrella

4. SOA: Princípios de Design de Serviços

5. Rotas & REST


INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

SOA e Web Services


INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

RESTFul Services
ROTEIRO
• Conceitos
• O que é REST
• Descrição de uma URI
• Implicação de uma Interface Uniforme
• Por que REST?
• A ideia por trás de REST
• Serviços RESTFul
CONCEITOS

• É como os clientes acessam um determinado serviço.


Normalmente, um serviço usará SOAP, mas se você criar um
serviço REST, os clientes acessarão seu serviço com um estilo
arquitetural diferente (chamadas, serialização como JSON etc.).
CONCEITOS

O REST usa alguns métodos HTTP comuns para inserir / excluir /


atualizar / recuperar as informações como descrevemos abaixo:

GET - Solicita uma representação específica de um recurso


PUT - Cria ou atualiza um recurso com a representação fornecida
DELETE - Exclui o recurso especificado
POST - Envia dados a serem processados pelo recurso identificado
O QUE É REST?

REpresentational State Transfer


▫ Doutorado de Roy Fielding

A Web é a aplicação de maior sucesso na Internet

▫ O que torna a Web tão bem-sucedida?


Recursos Endereçáveis
REST

• O Representational State Transfer visa evocar uma imagem de


como um aplicativo Web bem projetado se comporta: uma rede de
páginas da Web (uma máquina de estado virtual), onde o usuário
progride através de um aplicativo selecionando links (transições de
estado), resultando na próxima página (representando o próximo
estado do aplicativo) sendo transferida para o usuário e renderizada
para uso.
REST

•Toda “coisa” deve ter um ID


•Toda “coisa” deve ter um URI (Uniform Resource Identifier)

• Interface restrita
● Usa os métodos padrão do protocolo
● HTTP: GET, POST, PUT, DELETE

• Recursos com várias representações


● Aplicações diferentes precisam de formatos diferentes
● Plataformas diferentes precisam de representações diferentes
(XML + JSON)
REST

•Todo objeto possui uma URI

•De um URI, sabemos:


• O protocolo (como nos comunicamos)
• O host / porta (onde está na rede)
• O caminho do recurso (com que recurso estamos nos comunicando)
DESCRIÇÃO DE UMA URI

•http://sales.com/customers/323421/customers/{customer-id}
•Leitura por humanos: Desejado, mas não mandatório
•Parâmetros da URI
•http://sales.com/customers?zip=49009
•Parâmetros de consulta para encontrar outros recursos

•http://sales.com/cars/mercedes/amg/e55;color=black

•Parâmetros da matriz para definir atributos de recursos


IMPLICAÇÃO DE UMA INTERFACE UNIFORME

• Intuitivo
• Você sabe quais operações o recurso suportará
• Comportamento previsível
• GET - somente leitura e idempotente. Nunca altera o estado do recurso.
• PUT - uma inserção ou atualização idempotente de um recurso. Idempotente
porque é repetível sem efeitos colaterais.
• DELETE - remoção de recurso e idempotente.
• POST - não idempotente, operação "vale tudo“.
• Clientes, desenvolvedores, administradores, operações sabem o que esperar
• Muito mais fácil para os administradores atribuírem funções de segurança
• Para mensagens idempotentes, os clientes não precisam se preocupar com
mensagens duplicadas.
POR QUE REST?

•Menos sobrecarga (sem envelope SOAP para encerrar todas as


chamadas)

•Menos duplicação (o HTTP já representa operações como


DELETE, PUT, GET, etc., que precisam ser representados em
um envelope SOAP).

•Mais padronizado - as operações HTTP são bem compreendidas


e operam de forma consistente. Algumas implementações de
SOAP podem ficar complicadas.
POR QUE REST?

• Mais legível e testável por humanos

• Não é necessário usar XML

• Tem o protocolo HTTP como base para transportar as mensagens


A IDEIA POR TRÁS DO REST

∙ Simplicidade é melhor
∙ A Web funciona e muito bem
∙ Os serviços web devem seguir o estilo da Web
SERVIÇOS RESTFUL

• Recursos como URI


● Utilize URI exclusivo para referenciar todos os recursos em sua API
• Operações como métodos HTTP
● GET – Consultas
● POST – Consultas
● PUT, DELETE - Inserir, atualizar e excluir

• Conexão e descoberta
∙ Como a Web, as respostas HTTP contêm links para outros recursos
EXEMPLO DE REST API

URL http://del.icio.us/api/[username]/book marks/

Method GET
Querystring tag= Filter by tag
dt= Filter by date
Start = The number of the first
bookmark to return
end= The number of the last
bookmark to return
Returns 200 OK & XML
(delicious/bookmarks+xml)
401 Unauthorized
404 Not Found
EXEMPLO DE REST API

URL http://del.icio.us/api/[username]/bookmarks/

Method POST
Request XML
Body (delicious/bookmark+xml)

Returns 201 Created & Location


401 Unauthorized
415 Unsupported Media Type
EXEMPLO DE REST API

URL http://del.icio.us/api/[usern ame]/bookmarks/[hash]

Method DELETE

Returns 204 No Content


401 Unauthorized
404 Not Found
DESENHO DO RECURSO COM INTERFACE UNIFORME

• Na dúvida, defina um novo recurso


/orders
▫ GET - list all orders
▫ POST - submit a new order
/orders/{order-id}
▫ GET - get an order representation
▫ PUT - update an order
▫ DELETE - cancel an order
/orders/average-sale
▫ GET - calculate average sale
/customers
▫ GET - list all customers
▫ POST - create a new customer
/customers/{cust-id}
▫ GET - get a customer representation
▫ DELETE- remove a customer
/customers/{cust-id}/orders
▫ GET - get the orders of a customer
JSON

• Notação de Objeto JavaScript


• Sintaxe leve para representar dados
• Mais fácil de analisar o código do cliente JavaScript
• Alternativa ao XML em aplicativos AJAX

[{"Email":"bob@example.com","Name":"Bob"},{"Email
":"mark@example.com","Name":"Mark"},{"Email":"j
ohn@example.com","Name":"John"}]
RECURSOS COM MÚLTIPLAS REPRESENTAÇÕES

∙ Cabeçalhos HTTP gerenciam essa negociação


∙ CONTENT-TYPE: especifica o tipo MIME do corpo da mensagem
∙ ACCEPT: lista delimitada por vírgula de um ou mais tipos MIME,
que o cliente gostaria de receber como resposta
∙ No exemplo a seguir, o cliente está solicitando uma representação
do cliente no formato xml ou json
GET /customers/33323
ACCEPT: application/xml,application/json
RECURSOS COM MÚLTIPLAS REPRESENTAÇÕES

• Preferências são suportadas e definidas pela especificação do


protocolo HTTP

GET /customers/33323 ACCEPT: text/html;q=1.0,


application/json;q=0.5;application/xml;q=0.7
CONSUMIR RECURSOS REST

• Facebook Graph API


• Google Drive API
• Twitter API
ARQUITETURA

• Os serviços da Web baseados em SOAP e REST permitem que a


arquitetura de três camadas seja estendida em n camadas.

Fonte: 4
REFERÊNCIAS

1. https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
2. Rotas & REST
3. Avaliação de manutenibilidade entre as abordagens de web services
RESTful e SOAP-WSDL
4. Three-Tier Architecture Overview
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

RESTFul Services
04/10/2022 17:48 Conteúdo

Pergunta 1 1,42 em 1,42 pontos


A arquitetura orientada a serviços (SOA) define um modelo arquitetônico para melhorar a eficiência, a
agilidade e a produtividade de uma empresa. Para isso, define os serviços como os principais meios pelos
quais a solução lógica será representada no suporte à concretização dos objetivos estratégicos relacionados
à computação orientada a serviços.

Sobre o tema, analise as asserções a seguir e a relação proposta entre elas.

I. A face real de uma arquitetura orientada a serviços implementada é exclusiva para cada empresa ou
organização, sendo definida pela introdução de novas tecnologias, plataformas e serviços que
suportam, particularmente, a criação, execução e evolução de soluções voltadas a serviços.

PORQUE

II. Clientes têm conhecimento de todos os detalhes técnicos da implementação dos serviços, e uma
infraestrutura completa é encarregada de tratar desses detalhes.

Com base na análise das asserções, conclui-se que:

Resposta a primeira asserção é verdadeira, e a segunda asserção é falsa.


Selecionada: c. 

Respostas: a. 
 as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

a primeira asserção é falsa, e a segunda asserção é verdadeira;


b. 

a primeira asserção é verdadeira, e a segunda asserção é falsa.


c. 

ambas as asserções são falsas;


d. 

e. 
as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

Comentário JUSTIFICATIVA
da
resposta: A primeira asserção é verdadeira, pois a arquitetura orientada a serviços preza pela
disponibilidade do serviço, sempre visando a mudanças nas aplicações. A segunda asserção,
por sua vez, é falsa, pois os clientes visualizam a arquitetura pronta para uso, não tendo
conhecimento de todos os detalhes técnicos relativos à implementação dos serviços.

Pergunta 2 1,43 em 1,43 pontos


A arquitetura orientada a serviços representa uma forma distinta de arquitetura da tecnologia, sendo projetada
com base no suporte à lógica orientada a serviços. Ela é composta por serviços modulados e projetados em
conformidade com a orientação a serviços.

Com relação aos elementos da arquitetura orientada a serviços, assinale a alternativa CORRETA.

Resposta d. 
Selecionada: A orientação a serviços é um paradigma que abrange os princípios do design orientado a
serviços.

Respostas: a. 
Acesso à rede, apresentação e enlace de dados são elementos relacionados à arquitetura
orientada a serviços.

b. 
Aplicação, física, transporte e cabeamento são as funções principais da arquitetura
orientada a serviços.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/5
04/10/2022 17:48 Conteúdo

Aplicação e transporte são elementos da arquitetura orientada a serviços.


c. 
d. 
A orientação a serviços é um paradigma que abrange os princípios do design orientado a
serviços.

e. 
Aplicativo, enlace de dados, protocolos e física são os principais elementos da arquitetura
orientada a serviços.

Comentário JUSTIFICATIVA
da
resposta: De fato, a orientação a serviços é um paradigma que abrange os princípios do design orientado
a serviços. Nesse sentido, a arquitetura orientada a serviços, na computação, envolve
o design orientado a serviços. Os elementos denominados aplicação, transporte e física
representam as camadas do modelo OSI.

Pergunta 3 1,43 em 1,43 pontos


Os web services são tecnologias para computação ____________ baseada na web. Eles permitem que
diferentes serviços distribuídos executem uma variedade de plataformas e ____________.

Preencha as lacunas assinalando a alternativa CORRETA.

Resposta Selecionada: Distribuída e arquiteturas.


e. 

Respostas: Local e memória.


a. 

 Local e configurações.
b. 

Estática e arquiteturas.
c. 
 Distribuída e memória.
d. 

Distribuída e arquiteturas.
e. 

Comentário JUSTIFICATIVA
da
resposta: O termo que preenche corretamente a primeira lacuna é DISTRIBUÍDA, e essa é a principal
característica dos web services, ou seja, trata-se de uma tecnologia estática e local. O termo
que preenche corretamente a segunda lacuna é ARQUITETURAS, o que demonstra que as
aplicações web podem ser executadas em diferentes cenários, não se tratando apenas de
configurações que referenciam os settings das aplicações.

Pergunta 4 1,43 em 1,43 pontos


Um web service é composto por duas estruturas: o serviço e a descrição do serviço. O serviço consiste em
um módulo de software instalado em uma plataforma computacional com acesso à rede e oferecido pelo
provedor de serviços. Já a descrição do serviço contém detalhes da interface e da implementação do serviço,
o que inclui os tipos de dados, as operações, as informações de ligação e a localização da rede.

Com relação às características do web service e sua arquitetura, avalie as afirmativas a seguir.

I. A comunicação entre clientes e provedores (servidores) utiliza o protocolo de mensagens SOAP.

II. As operações de publicação, resolução e descoberta de serviços são definidas pela especificação UD.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/5
04/10/2022 17:48 Conteúdo
III. Os serviços da web têm especificações do protocolo MIB, considerado um dos principais protocolos
disponíveis.

IV. A arquitetura dos web services é baseada em barramento, padrão bastante utilizado nos dias atuais.

Está correto o que se afirma em:

Resposta Selecionada: I, apenas;


e. 

Respostas: I e III, apenas;


a. 

I, III e IV, apenas.


b. 

I e II, apenas;
c. 
I, II, III e IV;
d. 

I, apenas;
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I está correta, pois apresenta um dos protocolos utilizados na comunicação entre
clientes e provedores (servidores). A afirmativa II está incorreta, já que as operações de
publicação e descoberta de serviços são realizadas por meio das especificações de UDDI. A
afirmativa III também está incorreta, pois MIB é um conjunto para armazenamento de
informações para gerência de redes. A afirmativa IV, igualmente, está incorreta, já que a
arquitetura em barramento não é utilizada atualmente.

Pergunta 5 1,43 em 1,43 pontos


A arquitetura REST é considerada simples e não está limitada a solicitações e respostas de registros. Ela
utiliza alguns métodos HTTP comuns para inserir/excluir/atualizar/recuperar informações.

Com relação à arquitetura REST, assinale a alternativa CORRETA.

Resposta Selecionada: O PUT cria ou atualiza um recurso com a representação fornecida.


d. 

Respostas: O SHIFT solicita uma informação do cliente para a base de dados.


a. 

O POST recolhe os dados a serem processados pelo recurso identificado.


b. 

O DELETE inviabiliza o recurso especificado por um tempo determinado.


c. 
O PUT cria ou atualiza um recurso com a representação fornecida.
d. 

O GET solicita uma representação inespecífica de determinado recurso.


e. 

Comentário JUSTIFICATIVA
da
resposta: Com relação aos métodos HTTP para ações na web, temos que, de fato, o PUT cria ou atualiza
um recurso com base na representação fornecida. Por sua vez, o DELETE remove um recurso
específico por tempo indeterminado, e o POST, o GET e o SHIFT representam outras funções
relativas ao método REST HTTP.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/5
04/10/2022 17:48 Conteúdo

Pergunta 6 1,43 em 1,43 pontos


Leia o trecho a seguir:

“A arquitetura orientada a serviços (SOA) é um conjunto de funcionalidades bem definidas em forma de


serviços disponibilizados na rede. É importante destacar que a arquitetura SOA estabelece a implantação de
componentes como serviços modulares que podem ser descobertos e utilizados pelos clientes [...]”
(OLIVEIRA, 2012, p. 5-6).

OLIVEIRA, R. R. Avaliação de manutenibilidade entre as abordagens de web services RESTful e SOAP-


WSDL. 2012. Dissertação (Mestrado em Ciências) - Universidade de São Paulo, São Carlos, 2012. Disponível
em: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-24072012-164751/publico/RRrevisada.pdf.
Acesso em: 5 jul. 2022.

Considerando os princípios fundamentais da arquitetura orientada a serviços (SOA), correlacione os


termos a seguir aos seus principais conceitos.

1 – Acoplamento fraco.

2 – Reusabilidade.

3 – Autonomia.

I – Os serviços têm controle sobre a lógica que encapsulam.

II –  A lógica é dividida em serviços com a intenção de promover a reutilização.

III – Os serviços mantêm uma relação que minimiza as dependências, exigindo, apenas, o conhecimento um
do outro.

Agora, assinale a alternativa que apresenta a sequência correta.

Resposta Selecionada: 1-III; 2-II; 3-I.


e. 

Respostas: 1-III; 2-I; 3-II.


a. 

1-I; 2-III; 3-II.


b. 

1-II; 2-I; 3-III.


c. 
1-I; 2-II; 3-III.
d. 

1-III; 2-II; 3-I.


e. 

Comentário JUSTIFICATIVA
da
resposta: A opção 1 se enquadra na afirmativa III, pois esta apresenta o conceito de que os componentes
de um sistema utilizam muito pouco o conhecimento de outros componentes separados. A
opção 2 se enquadra na afirmativa II, que apresenta a lógica de que uma aplicação pode servir
de base para uma outra. A opção 3 se enquadra na afirmativa I, pois esta apresenta uma
característica dos serviços, isto é, cada serviço tem sua autonomia, pelo fato de reconhecer
suas próprias funções. Nesse sentido, os oito princípios fundamentais da SOA são:
acoplamento fraco, reusabilidade, contrato de serviço, autonomia, abstração, composição,
descoberta e sem estado.

Pergunta 7 1,43 em 1,43 pontos


Os web services são, essencialmente, baseados em três padrões fundamentais: SOAP, WSDL e UDDI. Os
protocolos são muito importantes para o funcionamento dos padrões em web services.

Considerando as características dos protocolos de web services, julgue se são (V) verdadeiras ou (F)
falsas as afirmativas a seguir.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 4/5
04/10/2022 17:48 Conteúdo
I. ( ) O XML-RPC é um protocolo de web service utilizado para chamadas de procedimentos remotos.

II. ( ) O JSON é um mecanismo de decodificação/codificação de valores para intercâmbio de dados.

III. ( ) O SOAP é um dos principais componentes da tecnologia web service, já que especifica o formato
dos dados.

IV. ( ) Outras linguagens (protocolos) proveem funcionalidades similares às do SOAP, como o CORBA, por
exemplo.

Agora, assinale a alternativa que apresenta a sequência CORRETA.

Resposta Selecionada: V - V - V - V.
b. 

Respostas: a. V - V - F - F.
V - V - V - V.
b. 

c. V - F - F - V.

d. F - V - V - V.
F - F - F - V.
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I é verdadeira, tendo em vista que o XML-RPC utiliza o HTTP como mecanismo de
transporte. A afirmativa II também é verdadeira, pois a forma compacta de
decodificação/codificação é uma das vantagens do JSON. A afirmativa III, igualmente, é
verdadeira, já que o SOAP permite a interoperabilidade entre os sistemas. A afirmativa IV, por
fim, também é verdadeira, pois apresenta uma alternativa ao protocolo SOAP.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 5/5
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Arquitetura de Microsserviços para o


Desenvolvimento de Aplicações
ROTEIRO

•Definição
•Características
•Benefícios e Complexidades
•Monolítico x Microsserviços
•O que preciso para MSA?
•Boas práticas
•Conclusão
DEFINIÇÃO

• Micros Services Architecture (MSA) é um padrão para


construção de aplicações distribuídas

• Um conjunto de serviços, cada um executando em seu


próprio processo, cada um explorando uma API
• Desenvolvido de forma independente
• Independentemente implantável
• Cada serviço está focado em fazer determinada tarefa de
forma bem feita
DEFINIÇÃO

• Uma MSA não é:

• Monolítica
• Em camadas e multifuncional
• Integrada de forma inteligente
• Integrada de forma centralizada
CARACTERÍSTICAS

• Em relação a outras arquiteturas de software:


• Domínio da aplicação com granularidade fina
• Aumentam a disponibilidade geral da aplicação
• Desenvolvimento da solução com equipes menores e mais
autônomas

• São mais produtivos


• Melhor utilização de recursos
BENEFÍCIOS E COMPLEXIDADES

• Valores e Princípios
• Autonomia
• Velocidade de Mudança
• Escala
• Compossibilidade
• Diversidade Tecnológica
BENEFÍCIOS E COMPLEXIDADES

• Valores e Princípios

• O isolamento traz melhor disponibilidade


• Velocidade de entrega independente (por diferentes times)
• Governança descentralizada (DevOps)
BENEFÍCIOS E COMPLEXIDADES

• Complexidades
• Comunicação
• Execução
• Resiliência
• Manutenção
• Operacionalização
BENEFÍCIOS E COMPLEXIDADES

• Complexidades
• Sistemas distribuídos são complexos
• Sobrecarga operacional (centenas de milhares de serviços)
• modelo DevOps extremamente necessário
• Controle de versões da interface de serviço
• É necessário que todo o ecossistema seja testado
• Aumenta o tráfego de mensagens trocadas entre os componentes
de uma aplicação
BENEFÍCIOS E COMPLEXIDADES

• Complexidades
• Utilizar MSA não significa automaticamente melhorar a
disponibilidade da aplicação
• É preciso ter uma arquitetura tolerante a falhas
• Apenas um componente distribuído de um conjunto
de centenas deles, pode levar à indisponibilidade
da aplicação
MONOLÍTICO X MICROSSERVIÇOS

• Monolítico
• Mais simples de testar e desenvolver
• Mais simples para implantar (deploy)
• Não pode implantar algum componente se não implanta
tudo
• Mais complexo para aprender e entender o código
(centenas de milhares de linhas de código)
MONOLÍTICO X MICROSSERVIÇOS

• Monolítico
• Mais complexo para adaptar novas tecnologias
• É preciso escalar tudo da aplicação, para escalar um
dos seus componentes
MONOLÍTICO X MICROSSERVIÇOS

• A MSA não é uma solução para todos os problemas de desenvolvimento


de aplicações distribuídas modernas
• Se você já possui um ambiente de teste e implantação
automatizados e deseja escalar seu ambiente, sim, a MSA pode
ser uma boa opção
• Se você não tem testes automatizados, primeiro essa questão
precisa ser resolvida
• É preciso ter amplos conhecimentos em implantação
automatizada, teste e monitoramento dos serviços para colher os
benefícios da MSA
O QUE PRECISO PARA MSA?

• Se está apenas começando, fique monolítico até que você


entenda o problema melhor
• Ser bom em infraestrutura de provisionamento
• Ser rápido na implantação de aplicações
• Ter noções sobre monitoramento de serviços
• Ter um bom domínio do sistema e compreender se há
necessidade de modificação no estilo de desenvolvimento
BOAS PRÁTICAS

• Qual o tamanho de um microsserviço?


• Acoplamento solto
• Uma mudança no serviço X não deve exigir uma mudança no serviço
Y
• API pequena e bem focada
• Alta coesão
• Cada serviço deve ter uma responsabilidade específica
• O comportamento específico do domínio deve estar em um só lugar
• Se você precisa mudar um comportamento, você não deveria ter que
mudar múltiplos serviços
BOAS PRÁTICAS

• Qual o tamanho de um microsserviço?


• Quanto menor o serviço, maior é o benefício com o
desacoplamento
• Você deve ser capaz de reescrever um serviço de forma
rápida
• Se você não puder fazer uma alteração em um serviço e
implantá-lo sem modificar outras partes, então há um
grande problema
BOAS PRÁTICAS

• Mantenha seus ambientes tão próximos da produção quanto


da prática
• Um serviço por host
• Minimize o impacto de um serviço sobre os outros
• Minimize o impacto de uma interrupção do host
• Utilize contêineres / vms para tornar o processo mais fácil
e simples
• Os contêineres mapeiam muito bem para microsserviços
BOAS PRÁTICAS

• Automatize tudo o que puder!


• Ferramentas populares de automação de configurações
• Chef e Puppet
• Utilizar descoberta de serviços (service registry)
• Utilizar balanceadores de carga (load balancers)
CONCLUSÃO

• A arquitetura de microsserviços é melhor que a arquitetura


monolítica, mas deve-se levar em consideração:
• Os desafios em relação à granularidade muito fina das
aplicações
• Utilizar as melhores práticas de testes considerando os
componentes dos sistemas de suporte operacionais
(OSS – Operations Support System)
REFERÊNCIAS

1. Estilo de arquitetura de micro serviços


2. Introdução aos micro serviços
3. O que são micro serviços
4. Operations Support System
5. Chef x Puppet
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Arquitetura de Microsserviços para o


Desenvolvimento de Aplicações
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Plataforma e Operação
ROTEIRO
•O que é Docker?
•O que são Containers
•Dockers x VMs
•Componentes do Docker
•Elementos do Docker
•Plataforma Docker
•Quem usa Docker?
O QUE É DOCKER?

• Tecnologia Open Source que permite:


• Criar, executar, testar e implantar aplicações distribuídas
dentro de containers de software

• Empacotar uma aplicação de forma padronizada para o


desenvolvimento de software, contendo: código, runtime,
ferramentas, bibliotecas, etc.

• Possibilita a implantação de aplicações de forma mais ágil,


confiável e estável, em qualquer ambiente
POR QUE DOCKER?

• Oferece:
• Isolamento
• Simplicidade
• Leve
• Ampla utilização pela comunidade
• Definição de fluxos de trabalho
O QUE SÃO CONTAINERS?

• Maneira de virtualizar recursos em nível do SO que permite executar


uma aplicação e suas dependências em processos com recursos
isolados.
• Códigos, configurações de uma aplicação podem ser empacotados
em elementos que oferecem mais produtividade para os
desenvolvedores e controle de versões.
• Vantagens:
• Confiabilidade
• consistência de implantação
• Controle mais granular dos recursos --> Melhora aumentando a
eficiência da infraestrutura.
DOCKERS X VMS

• É importante discutir algumas diferenças


• Dockers
• Atua no nível do SO e não tem a visão da máquina toda (host)
• É um processo em execução em um kernel compartilhado
entre todos os containers
• Tem a visão de utilizar um SO dedicado
• VMs
• Compartilha recursos físicos entre vários ambientes isolados
• Cada um desses ambientes tem sob seu poder uma máquina
inteira, com recursos (memória, disco, CPU, etc)
DOCKERS X VMS
COMPONENTES PRINCIPAIS DO DOCKER

• Utiliza uma arquitetura cliente-servidor


• Cliente conversa com o daemon docker
• Execução e distribuição de containers e imagens
• Controle dos recursos executados
• Cliente e daemon docker podem executar no mesmo sistema
• Cliente docker pode ser conectar a um daemon remoto
• Cliente docker e daemon docker se comunicam por meio de
REST API, sockets, etc.
COMPONENTES PRINCIPAIS DO DOCKER
ELEMENTOS DO DOCKER

• Containers docker
• Imagens docker
• Dockerfile
• Docker Registry
ELEMENTOS DO DOCKER

• Containers docker
• Tem como base uma imagem docker
• Analogia: imagem é uma classe java e container é uma
instância desta classe

• Características dos containers


• Gerencia o consumo dos recursos
• Previne de violação externa
• Isolamento de processos
• Portabilidade de aplicações
ELEMENTOS DO DOCKER

• Imagens docker
• Templates para criação de containers
• São imutáveis, pois para executá-las é necessário criar uma
instância da mesma (container)
• São construídas em camadas
• Facilita a reutilização e manutenção
• Resumindo:
• É um ambiente encapsulado pronto para ser replicado
ELEMENTOS DO DOCKER

• Docker Registry
• Uma espécie de repositório Git
• Imagens podem ser versionadas

• Docker Hub é o repositório oficial do docker, que possibilita


versionar e hospedar imagens privadas e públicas
ELEMENTOS DO DOCKER

• Dockerfile
• Scripts com comandos para
• Criar imagens
• Executar comandos
• Criar variáveis de ambiente
• Copiar arquivos e pastas do host para a imagem
ARQUITETURA DOCKER

• Visão simplificada
ARQUITETURA DOCKER

• Visão Completa

Cliente Docker host docker registry


docker CLI REST API

docker daemon
docker build

docker pull Containers Images

docker run
PLATAFORMA DOCKER

• A plataforma Docker nada mais é que:


• Docker Engine + Docker Hub = Docker Plataforma

• Docker Engine
• Docker Daemon + Docker CLI
PLATAFORMA DOCKER

• Docker Daemon

• Constrói imagens
• Executa e gerencia containers
• Interage via REST API
PLATAFORMA DOCKER

• Docker CLI
• docker build
• constrói uma imagem a partir do dockerfile

• docker images
• lista todas as imagens de um docker hosts

• docker run
• Executa uma imagem
PLATAFORMA DOCKER

• DOCKER CLI
• docker os
• lista todas as instâncias paradas e em execução
• docker
• stop para uma instância do docker
• docker rm
• remove uma instância
• docker rmi
• remove uma imagem
PLATAFORMA DOCKER

• Docker Hub
• Provê serviços docker
• Ampla biblioteca de imagens públicas
• Armazenamento para as imagens
• Sem custo para imagens públicas
• Pagamento para ter acesso às imagens privadas
• Build automatizados
• Github, Gitlab, Bitbucket repositórios
PLATAFORMA DOCKER

• Workflow
• Encontra uma imagem no docker hub
• Extrair uma imagem do docker hub
• Executar uma imagem no host docker
• Para uma instância
• Remover uma instância
• Remover uma imagem
QUEM USA DOCKER?
REFERÊNCIAS

1. Documentação oficial Docker


2. Mundo Docker
3. Descomplicando o Docker
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Plataforma e Operação
04/10/2022 17:48 Conteúdo

Pergunta 1 1,42 em 1,42 pontos


Os microsserviços são pequenos, independentes e facilmente acoplados. Uma única equipe pequena de
desenvolvedores é capaz de escrever e manter um serviço. Cada serviço é uma base de código separado, o
qual pode ser gerenciado por uma equipe de desenvolvimento pequena. Os serviços podem ser
implementados de forma independente. Uma equipe pode atualizar um serviço que já existe sem precisar
recompilar e reimplantar o aplicativo inteiro.

Sobre o tema, analise as asserções a seguir e a relação proposta entre elas.

I. Os serviços são responsáveis por manter seus próprios dados, informações ou estado externo. Isso
diverge do modelo tradicional que conhecemos, em que uma camada de dados separada lida com a
persistência de dados.

PORQUE

II. Os serviços estabelecem comunicação entre si por meio de APIs bem definidas, que dinamizam a
conexão entre aplicações. Detalhes da implementação interna de cada serviço ficam ocultos para
outros serviços.

Com base na análise das asserções, conclui-se que:

Resposta d. 
Selecionada: as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

Respostas:  a primeira asserção é falsa, e a segunda asserção é verdadeira;


a. 

a primeira asserção é verdadeira, e a segunda asserção é falsa;


b. 

ambas as asserções são falsas.


c. 
d. 
as duas asserções são verdadeiras, e a segunda justifica corretamente a primeira;

e. 
as duas asserções são verdadeiras, mas a segunda não justifica corretamente a
primeira;

Comentário JUSTIFICATIVA
da
resposta: A primeira proposição está correta, pois nas características dos microsserviços estão a
independência das aplicações, onde conectado ao serviço é de função o armazenamento das
suas informações. A segunda proposição está correta e justifica a primeira, pois essa
comunicação entre os serviços é possível por meio da API.

Pergunta 2 1,43 em 1,43 pontos


Os microsserviços estabelecem comunicação entre si, geralmente de forma ___________. Assim, as
aplicações desenvolvidas desse modo podem ser mais tolerantes a falhas e depender menos de um único
ESB. Ademais, as equipes de desenvolvimento podem escolher as ___________ que desejarem, já que os
microsserviços são capazes de se comunicar por meio de interfaces de programação de aplicações (APIs)
independentes em termos de linguagem.

Preencha as lacunas assinalando a alternativa CORRETA.

Resposta Selecionada: Stateless e ferramentas.


b. 

Respostas: Padronizada e circunstâncias.


a. 

Stateless e ferramentas.
b. 

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/5
04/10/2022 17:48 Conteúdo

Regular e condições.
c. 
 Automática e interfaces.
d. 

 Independente e implementações.
e. 

Comentário JUSTIFICATIVA
da
resposta: Na primeira lacuna, o termo correto é STATELESS, pois uma aplicação que trabalha nesse
modo tende a não necessitar tanto da consulta a um dado solicitado já armazenado no
servidor, apresentando, portanto, menos falhas. O termo que preenche, corretamente, a
segunda lacuna é FERRAMENTAS, sendo que  cada desenvolvedor utiliza as que satisfazerem
as suas necessidades, independentemente do microsserviço. 

Pergunta 3 1,43 em 1,43 pontos


Os microsserviços são concebidos por meio de uma arquitetura e de uma abordagem para escrever
programas de software. Com eles, as aplicações são desmembradas em componentes mínimos e
independentes. Esse processo se distingue da abordagem tradicional monolítica, em que toda a aplicação é
criada como um único bloco. Os microsserviços são componentes separados que trabalham juntos para
desenvolverem as mesmas tarefas.

Assinale a alternativa correta que demonstra as técnicas das aplicações monolíticas.

Resposta Selecionada: Criar, testar, implantar e atualizar.


a. 

Respostas: Criar, testar, implantar e atualizar.


a. 

Delay, gerenciar, componente único e cabeamento.


b. 

Rapidez, cabeamento, infraestrutura e acesso à rede.


c. 
Hardware, gerenciar, improvisar e manusear.
d. 

Gerenciar, modelo OSI, delay e dinâmica.


e. 

Comentário JUSTIFICATIVA
da
resposta: Em relação às aplicações monolíticas, temos as caracterísitcas de: CRIAR, TESTAR,
IMPLANTAR e ATUALIZAR, que, no contexto geral, são as principais citadas. Os conceitos de
Cabeamento, delay, hardware, improvisar e manusear estão em contextos diferentes do
proposto.

Pergunta 4 1,43 em 1,43 pontos


O Docker é uma tecnologia (plataforma) que propicia criar, executar, testar e implantar aplicações distribuídas
dentro de containers de software, tornando portátil a aplicação desenvolvida. Além disso, facilita o
empacotamento da aplicação de forma padronizada para o desenvolvimento de software, contendo
código, runtime, ferramentas, bibliotecas etc.

Considerando os elementos do Docker, correlacione os termos a seguir aos seus principais conceitos.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/5
04/10/2022 17:48 Conteúdo
1 – Docker registry.

2 – Imagens Docker.

3 – Containers Docker.

I – É uma espécie de repositório Git, em que imagens podem ser versionadas.

II – Têm como base uma imagem Docker.

III – Ambiente encapsulado pronto para ser replicado.

Agora, assinale a alternativa que apresenta a sequência correta.

Resposta Selecionada: 1-I; 2-III; 3-II.


a. 

Respostas: 1-I; 2-III; 3-II.


a. 

 1-III; 2-I; 3-II.


b. 

1-I; 2-II; 3-III.


c. 
1-II; 2-III; 3-I.
d. 

1-III; 2-I; 3-II.


e. 

Comentário JUSTIFICATIVA
da
resposta: A opção 1 se enquadra na afirmativa I, pois o Docker registry é uma espécie de pasta na web,
por meio da qual o desenvolvedor pode subir ou baixar uma imagem. A opção 2 se enquadra
na afirmativa III, pois, uma vez pronto e configurado, o contêiner pode ser revestido em imagem
para ser replicado e utilizado por outras aplicações. A opção 3 se enquadra na afirmativa II,
pois um contêiner é o local em que está o serviço para que a aplicação seja executada.

Pergunta 5 1,43 em 1,43 pontos


A arquitetura monolítica é um sistema único, não dividido, que roda em um único processo. Trata-se de uma
aplicação de software em que diferentes componentes estão ligados a um único programa, dentro de uma
única plataforma.

Considerando as diferenças entre arquitetura monolítica e arquitetura de microsserviços, julgue se


são (V) verdadeiras ou (F) falsas as afirmativas a seguir.

I. (  ) A arquitetura monolítica é mais acessível para se adaptar a novas tecnologias.

II. (  ) Na arquitetura monolítica, é mais simples de implantar (deploy), aprender e entender o código.

III. (  ) Na arquitetura monolítica, é  preciso escalar tudo da aplicação para escalar um de seus componentes.

IV. (  ) A arquitetura de Microsserviços é uma arquitetura tolerante a falhas, facilitando a correção de qualquer
código.

Agora, assinale a alternativa que apresenta a sequência CORRETA.

Resposta Selecionada:  F - F - V - F.
a. 

Respostas:

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/5
04/10/2022 17:48 Conteúdo
 F - F - V - F.
a. 

V - F - V - F.
b. 

F - V - F - F.
c. 

d. V - V - V - F.
 F - V - V - F.
e. 

Comentário JUSTIFICATIVA
da
resposta: A afirmativa I é falsa, pois, na arquitetura monolítica, a adesão de novas tecnologias depende
dos recursos disponibilizados. A afirmativa II é falsa, pois são inúmeras linhas de código para
serem interpretadas e entendidas. A afirmativa III é verdadeira, visto que, na arquitetura
monolítica, as necessidades de expansão de uma aplicação, toda a sua estrutura precisa
acompanhar esse crescimento. A afirmativa IV é falsa, pois falhas precisam ser corrigidas
constantemente e independe de aplicação ou arquitetura.

Pergunta 6 1,43 em 1,43 pontos


Padrão arquitetural é um conjunto de decisões de projeto de software que define utilidade, tipos de elementos,
tipos de relações, propriedades de elementos e restrições de como os elementos se relacionam. Por exemplo,
o padrão Layers (camadas) agrupa entidades de softwares em camadas de funcionalidades e permite o seu
uso entre elas.

Quais são as principais arquiteturas padrões no âmbito de um projeto de software?

Assinale a alternativa CORRETA, a seguir.

Resposta Selecionada: Cliente-servidor, peer-to-peer e data-model.


a. 

Respostas: Cliente-servidor, peer-to-peer e data-model.


a. 

Blackdash, piper-data e cliente data-model.


b. 

Pipers-filtro, servidor-data e peer-to-pipe.


c. 
 Servidor-data, peer-to-peer e pipes-and-filters.
d. 

 Data-model, blackdash e cliente data-model.


e. 

Comentário JUSTIFICATIVA
da
resposta: No âmbito de um projeto de software, as principais arquiteturas padrões são: cliente-servidor
(cumpre o papel de solicitante), peer-to-peer (permite que cada componente se torne um
servidor) e data-model (que define o padrão dos dados para todo o sistema de dados).

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 4/5
04/10/2022 17:48 Conteúdo

Pergunta 7 1,43 em 1,43 pontos


Microservices Architecture (MSA) é um padrão para a construção de aplicações distribuídas. Um conjunto de
serviços, onde cada um executatando em seu próprio processo, cada um explorando uma AP eI, é
desenvolvido de forma independente. Cada serviço está focado em fazer determinada tarefa de maneira
excelente.

Com relação às complexidades dos microsserviços, avalie as afirmativas a seguir.

I. No MSA, é necessário que todo o ecossistema seja testado.

II. Elas aumentam o tráfego de mensagens trocadas entre os componentes de uma aplicação.

III. Utilizar o MSA significa, automaticamente, melhorar a disponibilidade da aplicação.

IV. Alguns componentes distribuídos de um conjunto podem levar à indisponibilidade da aplicação.

Está correto o que se afirma em:

Resposta Selecionada:  I e II, apenas;


b. 

Respostas: I, apenas;
a. 

 I e II, apenas;
b. 

II, apenas;
c. 

d. I, III e IV, apenas.

e. I, II, e III, apenas;


Comentário JUSTIFICATIVA
da
resposta: A afirmativa I está correta, já que, quando a implementação da aplicação estiver em processo,
todo o ecossistema precisará, de fato, ser testado. A afirmativa II, também, está correta, pois,
com a comunicação das aplicações, o fluxo (tráfego) das informações aumenta bastante,  por
conta da troca de resposta de cliente e servidor.  A afirmativa III está incorreta, já que outras
tecnologias e recursos podem contribuir para a disponibilidade da aplicação. Por fim, a
afirmativa IV também está incorreta, pois distribuir os recursos e criar uma redundância entre
eles são ações que permitem que a aplicação fique o máximo de tempo disponível.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 5/5
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Introdução – Google Cloud,


Azure e AWS
ROTEIRO
•O que é o Google Cloud Plataform (GCP)
● Como funciona a GCP
● Preços da GCP
•O que é a Microsoft Azure
● Como funciona a Microsoft Azure
● Preços da Azure
•O que é a Amazon Web Services (AWS)
● Como funciona a AWS
● Preços da AWS
O QUE É A GOOGLE CLOUD PLATFORM?
• Ambiente que oferece serviços de infraestrutura para criar
máquinas virtuais, de diversas configurações do ambiente, para
executar aplicações
• Possui serviços que fazem com que o deploy de uma aplicação
seja mais simples, fácil e rápido
• Permite o armazenamento de grandes quantidades de dados em
tempo real
• Possibilidade de incorporar Machine Learning e treinar modelos
para tomar decisões de forma rápida
COMO FUNCIONA A GCP?
• Permite executar suas aplicações na mesma infraestrutura em que
o Google utiliza seus sistemas
• Fornece segurança para o deploy de aplicações, pois tudo que é
armazenado na GCP é criptografado
• Fornece tolerância a falhas e possui sistemas e políticas de
backups, além de disponibilizar serviços de infraestrutura de big
data e machine learning
• Opera com edge caching, onde os dados podem ser cacheados em
zonas próximas ao usuário (menor custo e melhor desempenho)
FORMA DE COBRANÇA DA GCP
• Novos clientes ganham 300 dólares para executar suas
aplicações por um período
• Você paga apenas pelo que utiliza dos recursos, sem taxas
antecipadas e nem mesmo políticas de rescisão
• Permite o controle dos gastos com orçamentos, alertas, limites de
cota e outras ferramentas gratuitas de gerenciamento de custos
• Permite otimizar os custos com recomendações usando IA
• Possui painéis personalizáveis baseados em IA, que mostram
tendências e previsões de custos
PREÇOS DA GCP
• Os preços para os serviços da GCP podem ser consultados nos
links a seguir
Preços do Google Cloud
https://cloud.google.com/pricing?hl=pt-br
Também é possível utilizar uma Calculadora de Preços do Google
Cloud
https://cloud.google.com/products/calculator?skip_cache=true&hl=pt-br
O QUE É A MICROSOFT AZURE?

• É uma plataforma de nuvem da Microsoft que consiste em mais


de 200 produtos e serviços de nuvem projetados para ajudar a
criar novas soluções de TI

• O Azure oferece suporte a tecnologias de software livre para


que você possa usar as ferramentas e as tecnologias que
deseja
O QUE É A MICROSOFT AZURE?
• O Microsoft Azure funciona em dois modelos flexíveis de
assinatura: pré-pago e pós-pago.

● Você paga apenas pelos serviços que precisa, baseado na


sua demanda e na sua capacidade de investimento naquele
momento

• Alguns desses módulos, inclusive (como a capacidade de


computação e armazenamento), são elásticos em tempo real.
PREÇOS DA AZURE

• Pague por apenas aquilo que utiliza, podendo cancelar a


qualquer momento

• Fornece uma calculadora de custos para diversos serviços


● https://azure.microsoft.com/pt-br/pricing/#product-pricing

• Possui preços correspondentes aos da AWS em serviços


comparáveis
O QUE É A AMAZON WEB SERVICES (AWS)?

• É a plataforma de nuvem mais adotada no mundo, que oferece


diversos serviços de tecnologia da informação

• Iniciou em 1994 com venda de livros

• Percebeu na época que vender recursos computacionais como


serviços poderia ser muito lucrativo
COMO FUNCIONA A AWS?
• Disponibiliza serviços a partir de diversos data centers, espalhados
por zonas de disponibilidade (locais que abrigam os data centers),
em diversas áreas do mundo.

• Áreas onde as zonas de disponibilidade estão situadas são


próximas geograficamente e conectadas por links de rede de baixa
latência.

• Clientes podem acionar máquinas virtuais e replicar dados em


diferentes zonas para obter uma infraestrutura confiável e tolerante
a falhas.
FORMAS DE COBRANÇA DA AWS

• Formas de cobrança
● On-demand: cálculo feito relação às horas ou segundos
utilizados
● Instâncias spot: possui preço atrativo por ser instância de
capacidade extra, e notifica o usuário antes que as instâncias
sejam interrompidas
● Instâncias reservadas: O preço por hora é fixo, independente
da utilização
PREÇOS DA AWS

• Como há diversos tipos de serviços, eles são precificados de


maneiras diferentes
• Você pode verificar os preços dos serviços oferecidos no link

Definição de preço da AWS


https://aws.amazon.com/pt/pricing/?nc2=h_ql_pr_ln
ANÁLISE - AZURE

• Vantagens da Azure
● Integração com as aplicações da Microsoft
● Empresas que usam soluções da Microsoft acham que faz
sentido também usar a Azure

• Desvantagens da Azure
● Integração com aplicações de código aberto (ainda pequena
se comparada com AWS e GCP)
ANÁLISE - AWS

• Vantagens da Amazon
● Focado no mercado de nuvem pública (tem o domínio)
● É líder em IaaS no mundo

● Possui uma enorme variedade de serviços

● Possui alto nível de regulamentação e conformidade com normas


internacionais

● Oferece armazenamento de alto nível de segurança e


confiabilidade
ANÁLISE - AWS

Desvantagem
● Custo

● Empresas acham difícil entender a estrutura de custos e fazer o


gerenciamento efetivo desses custos quando executam um
grande volume de carga de trabalho nas aplicações hospedadas
ANÁLISE - GCP

• Vantagens da GCP
● Permite que instâncias se conectem com GPUs
● Permite que usuários criem suas instâncias personalizadas
(CPU, memória)
● É um dos mais baratos

• Desvantagens da GCP
● É pequeno na participação de nuvens públicas
REFERÊNCIAS
1. https://br.claranet.com/aws-entenda-como-funciona-o-servico-de-nuvem-da-
amazon
2. https://blog.tivit.com/aws-ou-microsoft-azure-qual-a-melhor-opcao-para-a-mi
nha-empresa
3. https://blog.centralserver.com.br/aws-ou-azure-qual-e-melhor-nuvem/
4. https://docs.microsoft.com/pt-br/azure/azure-portal/azure-portal-overview
5. https://lgertel.medium.com/fundamentos-do-google-cloud-platform-56d0b3c1
836a
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Introdução – Google Cloud,


Azure e AWS
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Criação de Contas - Google


Cloud e Microsoft Azure
ROTEIRO
•Criação de Conta na GCP
•O Console da GCP
•Gcloud SDK no Ubuntu 20.04
•Criação de Conta na Azure
•O Console da Azure
•Azure-Cli no Ubuntu 20.04
CRIAÇÃO DE CONTA NA GCP
• É preciso ter uma conta de e-mail do Google/Gmail e seguir os
passos:
● Acesse o site https://cloud.google.com/

● Clique em “Get started for free”

● Selecione o país e concorde com os termos de serviços

● Preencha os campos com suas informações

● Preencha os campos com dados de pagamento

● Não se preocupe porque você não será cobrado nesta etapa –

Somente ocorre se os créditos acabarem


● Para finalizar, clique em “Iniciar minha avaliação gratuita” e

aproveite os benefícios do GCP


O CONSOLE DA GCP

• O Console do Cloud auxilia na implantação, escalonamento e


diagnóstico de problemas de produção em uma interface
baseada na Web

● Encontrar recursos

● Conexão de instâncias via ssh

● Possui uma interface administrativa que garante mais


segurança para executar as aplicações, etc.
GOOGLE CLOUD SDK - UBUNTU 20.04
• Podemos usar um terminal para acessar o Google Cloud. Trata-se
de um kit de ferramentas para criação que apresenta muitos
comandos que ajudam a gerenciar recursos no ambiente do
Google Cloud.

• O SDK (Software Development Kit) do Gcloud requer python


instalado

• É preciso fazer o download e prosseguir com a instalação e


configuração conforme indicado em
● https://cloud.google.com/sdk/docs/install ou

● https://linuxhint.com/install-google-cloud-sdk-ubuntu/
CRIAÇÃO DE CONTA NA AZURE

• O que é a conta gratuita na Azure?

● A conta gratuita do Azure inclui acesso gratuito a produtos


populares do Azure por 12 meses, USD 200 de crédito para
gastar nos primeiros 30 dias e acesso a mais de 25 produtos
que são sempre gratuitos
CRIAÇÃO DE CONTA NA AZURE
• Abra o navegador e acesse o link
● https://azure.microsoft.com/free
• Selecione iniciar gratuitamente
• Caso tenha uma conta Microsoft utilize-a. Caso contrário, crie uma
conta na Microsoft
• Em uma das etapas é necessário vincular um cartão de crédito,
embora nesta conta não ocorram pagamentos no período da
assinatura free
• Preencha todos os dados solicitados
● Quando tiver esta conta criada, será possível utilizar os recursos da

Azure
O CONSOLE DA AZURE

• O Azure CLI permite utilizar todos os serviços disponíveis no Portal


do Azure via linha de comando do nosso desktop/notebook

• Para aprender a usar a CLI do Azure, execute comandos em um


ambiente do Azure Cloud Shell por meio do seu navegador

• Utilize o comando az login para lidar com os recursos da Azure


● Somente após o login é que poderemos interagir com o ambiente
AZURE-CLI UBUNTU 20.04
• O gerenciamento de recursos no Azure a partir da linha de comando pode
ser feito nativamente no Ubuntu, usando a CLI do Azure.

• Os procedimentos envolvem:
● Baixar e instalar a chave de assinatura da Microsoft no Ubuntu

● Adicionar repositório “apt” da CLI do Azure no Ubuntu

● Instalar a CLI do Azure no Ubuntu 20.04

● Verificar Azure Versão CLI no Ubuntu

• Utilize um dos links a seguir para proceder com a instalação:


● https://fabianlee.org/2021/05/29/azure-installing-the-azure-cli-on-ubuntu/

● https://www.devopshint.com/how-to-install-azure-cli-on-ubuntu/
REFERÊNCIAS

https://www.dadosaleatorios.com.br/post/como-criar-uma-conta-na-gcp/

https://programadriano.medium.com/primeiros-passos-com-o-azure-cli-8e
37529e54fe

https://docs.microsoft.com/pt-br/cli/azure/get-started-with-azure-cli

https://fabianlee.org/2021/05/29/azure-installing-the-azure-cli-on-ubuntu/
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Criação de Contas - Google


Cloud e Microsoft Azure
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Criação de Contas - AWS


ROTEIRO

•Criação de Conta na AWS


•O Console da AWS
•AWS CLI no Ubuntu 20.04
CRIAÇÃO DE CONTA NA AWS

• AWS é hoje a plataforma de nuvem mais utilizada no mundo, com


milhões de clientes que usam os seus serviços para ter uma
infraestrutura mais barata e ágil.

• Possuir uma conta na AWS permite a criação de servidores que


podem ser contratados por hora

• Podemos escolher entre vários tipos de instâncias, com a


capacidade que melhor se encaixa às necessidades do usuário
CRIAÇÃO DE CONTA NA AWS
• Como criar a conta (Passo a Passo)
1) Acesse o site https://aws.amazon.com/pt e clique em “Criar uma
conta da AWS”

2) A nova tela pede apenas algumas informações padrões para


criação de contas. Para o nome da sua conta:
● Forneça um endereço de e-mail
● Forneça e repita uma senha
● Escolha um nome para a sua conta
CRIAÇÃO DE CONTA NA AWS
• Como criar a conta (continuação)
1. 3) Preenchidas as informações, você será redirecionado para uma
tela em que deve:
● Fornecer informações de contato da conta.
● A sua conta pode ser pessoal ou profissional e o tipo de
informação que será pedido irá depender disso. Escolha uma
conta pessoal
• 4) Preencha as suas informações de contato e ao final concorde
com os termos de serviço, e depois siga para “Criar conta e
continuar”
CRIAÇÃO DE CONTA NA AWS
• Como criar a conta (continuação)
• 5) A seguir, será necessário cadastrar um cartão de crédito para ativar
a conta.
● Você apenas será cobrado caso exceda a cota gratuita. Após inserir

as informações do cartão, clique em “Verificar e adicionar”. Após esse


passo, você receberá uma pequena cobrança de validação do cartão,
algo como $ 1 USD.

• 6) Após o cadastro do cartão, será necessário verificar a sua


identidade. Colocar o DDD na frente no campo “Número de telefone
celular”
CRIAÇÃO DE CONTA NA AWS
• Como criar a conta (continuação)

• 7) Se escolher validar por SMS, assim que ela chegar, insira no pop-up
que está na tela e aguarde a mensagem de
● “Sua identidade foi verificada com sucesso” para clicar em

Continuar
• 8) A seguir, quando for pedido para selecionar o plano de suporte, você
pode apenas clicar em Gratuito

• A sua conta estará criada!


• Faça login no console
O CONSOLE DA AWS

• O AWS Management Console fornece uma interface de usuário


baseada na Web, que pode ser usada para criar e gerenciar
recursos da AWS.

• O que pode ser feito?


● iniciar e interromper instâncias do Amazon EC2
● criar tabelas do Amazon DynamoDB, etc.
O CONSOLE DA AWS
• Para usar o AWS Management Console é necessário fazer login na conta
da AWS.
• O processo a ser usado para entrar na conta da AWS depende do tipo de
usuário da AWS que você é.

• Há dois tipos diferentes de usuários na AWS.


● Você é o proprietário da conta (usuário raiz) ou

● É um usuário do IAM.

● O usuário raiz é criado quando a conta da AWS é criada usando o


endereço de e-mail e a senha que foram usados para criar a conta. Os
usuários do IAM são criados pelo usuário raiz ou por um administrador
do IAM na conta da AWS.
O CONSOLE DA AWS
• Iniciar sessão com usuário raiz

• Antes de fazer login, em uma conta da AWS como o usuário


raiz, verifique se tem as informações necessárias a seguir.
● Requisitos
● O endereço de e-mail usado para criar a conta da AWS.
● A senha para o usuário raiz.
O CONSOLE DA AWS
• Como fazer login em uma conta da AWS como usuário raiz
● Abra https://console.aws.amazon.com/.

• Escolha usuário raiz, digite o endereço de e-mail associado à


conta e selecione Próximo.

• Insira a senha e selecione Fazer Login


O CONSOLE DA AWS
• Fazer login com o usuário do IAM
• Antes de fazer login, em uma conta da AWS como usuário do IAM,
verifique se tem as informações necessárias a seguir.
• Caso não tenha essas informações, entre em contato com o
administrador da conta da AWS.
• Requisitos (um dos seguintes)
● O alias da conta.
● O ID da conta da AWS de 12 dígitos.
● O nome do usuário do IAM.
● A senha do usuário do IAM.
AWS CLI NO UBUNTU 20.04

• A AWS CLI é um conjuntos de pacotes para lidar com a AWS por


meio de linha de comando a partir do seu sistema operacional

• Utilizaremos a versão 2 da AWS CLI


● Versão 2: É a versão principal da AWS CLI, pois oferece suporte
a todos os recursos mais recentes.
AWS CLI NO UBUNTU 20.04
• Pré-requisitos para Linux
● Você deve ser capaz de extrair ou "descompactar" o pacote obtido
por download. Se o sistema operacional não tiver o comando unzip
integrado, use um equivalente.
● A AWS CLI Versão 2 usa as bibliotecas glibc e groff, as quais já são
incluídas por padrão na maioria das principais distribuições Linux.

● NOTA: A AWS não mantém repositórios de terceiros, e por isso não


podemos garantir que eles contenham a versão mais recente da
AWS CLI. Use sempre a disponível no site da Amazon.
AWS CLI NO UBUNTU 20.04
• Siga estes passos na linha de comando do Linux para instalar a AWS
CLI 2
1) Para obter a versão mais recente da AWS CLI,Use o seguinte bloco:
● curl
"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o
"awscliv2.zip"
2) Descompactar o arquivo
● unzip awscliv2.zip
3)Instalar
● sudo ./aws/install
REFERÊNCIAS

1. https://docs.aws.amazon.com/pt_br/cli/latest/userguide/install-cliv2-linux.html
2. https://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/console.html
3. https://aws.amazon.com/pt/account/
4. https://celsokitamura.com.br/como-abrir-uma-conta-na-aws/
5. https://comunidadecloud.com/post/como-criar-uma-conta-na-aws/
INFRAESTRUTURA PARA
SISTEMAS DE SOFTWARE

Criação de Contas - AWS


04/10/2022 17:43 Conteúdo

Revisão
Infraestrutura para Sistemas de Software: Redes e Nuvem
Nesta revisão abordaremos os principais tópicos relativos ao conteúdo da disciplina de Infraestrutura para

Sistemas de Software: Redes e Nuvem, para cada semana de aula que foi ministrada. Esta revisão deve

ser utilizada para ser um guia para ajudá-lo a rever os principais assuntos discutidos na disciplina. Espera-se

que você tenha realizado as leituras sugeridas como textos-base, feito as atividades propostas no decorrer de

cada aula, também, sempre que possível, ter assistido aos vídeos de apoio e colocado em prática os

conceitos aprendidos com o material prático disponibilizado semanalmente. Com os guias práticos, creio que

você, ainda que pela primeira vez, tenha colocado em prática diversos conceitos acerca da instalação,

configuração e desenvolvimento de códigos utilizando uma infraestrutura computacional, seja ela local, seja
em grandes nuvens como a Google Cloud, Azure e AWS. O sucesso na avaliação final da disciplina está

relacionado ao seu comprometimento em estudar o conteúdo organizado semanalmente.


Na primeira semana, o objetivo foi apresentar as bases da infraestrutura computacional necessária para que
clientes, servidores, aplicações e usuários possam utilizar recursos computacionais como serviços usando a
WWW e a Internet. Neste caso, fizemos uma revisão das redes de computadores, tipos, protocolos e como a

comunicação de dados, ainda que tenha toda a complexidade abstraída, é fundamental para e economia
mundial, pois dela dependemos para usarmos bancos on-line, acessar lojas na web e aprender os mais
variados assuntos utilizando de ferramentas on-line de ensino.
Na segunda semana, apresentamos os elementos que fazem parte de uma infraestrutura computacional e

como eles variam em relação a tipos de hardware, elementos de armazenamento de dados, segurança física
e lógica, filtros de pacotes, autenticação e consumo de dados por meio de protocolos padronizados da WWW.
Conhecemos um pouco sobre servidores web, firewalls e proxies, bem como alguns mecanismos para
autenticação de usuários. Vimos também que todos esses componentes fazem parte de grandes
infraestruturas de data centers.

Na  terceira semana,  discutimos sobre o fornecimento de serviços de computação, incluindo servidores,
armazenamento, bancos de dados, rede, software, análise e inteligência pela Internet, com o intuito de
oferecer inovações mais rápidas, recursos flexíveis e economias de escala. Aprendemos que a importância
da computação em nuvem para as empresas está na agilidade e na praticidade que ela confere, com

vantagens como: redução de custos pois há menos gasto com hardware e mão de obra para instalar e
manter softwares e servidores. Vimos também que a infraestrutura interconectada pode melhorar a
estabilidade dos negócios e acelerar o processo de transformação digital, para tornar-se flexível e escalável.
Reconhecemos os conceitos e características da computação em nuvem, os modelos de serviço, atores,

exemplos de provedores e modelos de implantação e as principais ferramentas/middlewares para IaaS, SaaS


e PaaS no contexto atual e suas características.

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 1/3
04/10/2022 17:43 Conteúdo

Na quarta semana, o assunto proposto foi sobre a virtualização que é a tecnologia que permite que diversas
aplicações e sistemas operacionais sejam processados em uma mesma máquina (hardware). Além disso, ela
permite de forma eficiente, acessar recursos utilizando o máximo que o hardware disponibiliza. Destacamos

também os ambientes especializados para hospedagem de recursos computacionais e identificamos algumas


tecnologias de virtualização, as quais permitem abstrair um conjunto de recursos (por exemplo,
computacionais ou de comunicação). Compreendemos também os fundamentos, tipos e capacidades da
virtualização e abordamos as diferenças entre emulação x virtualização, além de conceitos básicos de

containers. 
As máquinas virtuais e hipervisores  abstraem o hardware e permitem que você execute sistemas
operacionais. Containers (tecnicamente mecanismos de container) abstraem os sistemas operacionais e
permitem que você execute aplicações.

Agora que estabelecemos o que são as máquinas virtuais (VMs), podemos mergulhar nos benefícios. Em um
alto nível, os principais benefícios da virtualização (em relação à execução em bare metal, ou seja, direta no

hardware) são:

Uso mais eficiente de hardware: ser capaz de virtualizar servidores significa ser capaz de executar
mais sistemas operacionais em seu hardware. Isso leva a eficiências em tudo, desde a manutenção até

os custos de energia e espaço no data center até o resfriamento. Em grande escala, as eficiências da

virtualização ajudaram a contribuir para as economias de escala associadas à nuvem.


Gerenciamento e provisionamento mais fáceis e rápidos:  é muito mais fácil e rápido ativar e

desativar servidores virtuais do que provisionar novo hardware. Criar backups instantâneos de servidor
também é muito mais simples.

Recuperação de desastres aprimorada: como é fácil criar backups e recuperar imagens instantâneas,

a recuperação de desastres é mais fácil e rápida.


Teste simplificado:  testar em produção não é uma boa ideia. Dedicar um servidor para teste não é

muito eficiente se você tiver que testar muitos sistemas operacionais diferentes. Com as VMs, você

pode executar um sistema operacional isolado logicamente que permite fazer testes com mais
liberdade.

Os containers cresceram em popularidade porque eles habilitam as metodologias de DevOps. As principais


vantagens dos containers (em relação às VMs) incluem:

Os containers são leves:  eles usam apenas os binários e as bibliotecas de que precisam. Isso

significa que eles inicializam significativamente mais rápido do que as VMs. Nas aplicações web, o
tempo de inicialização em segundos  versus  o tempo de inicialização em minutos pode fazer uma

grande diferença. Ser mais leve também significa menos hardware e menos sistemas operacionais

necessários.
Os recipientes são portáteis:  em qualquer lugar em que você possa executar um mecanismo de

container, você pode executar um container. Isso significa que as discussões sobre um ambiente ser a

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 2/3
04/10/2022 17:43 Conteúdo

causa de um problema com uma aplicação devem ser reduzidas. Se ela foi executada para

desenvolvimento no container, ela deve ser executada para controle de qualidade e na produção.
Os contêineres permitem microsserviços: resumindo, microsserviços são pequenos serviços que se

comunicam entre si para criar uma aplicação ou serviço maior. Ao desacoplar o teste de microsserviços
individuais torna-se mais fácil, pontos únicos de falha são reduzidos e a velocidade de desenvolvimento

é aumentada.

Na quinta semana, aprendemos o que é uma Service Oriented Architectures (SOA), isto é, um conceito de


arquitetura que busca disponibilizar as funcionalidades de um sistema como um serviço, de tal forma que

essas funcionalidades podem ser compartilhadas e reutilizadas entre aplicações. Aprendemos que as

soluções baseadas em SOA possuem uma arquitetura baseada em padrões para a criação de uma
infraestrutura de tecnologia, com o objetivo de simplificar as relações entre diferentes sistemas o que permite

que estes possam ser aperfeiçoados e novos elementos possam ser incorporados. Discutimos também as
vantagens e desvantagens, semelhanças e diferenças entre SOA e REST.

Na  sexta  semana,  o assunto foi sobre a arquitetura de microsserviços e como ela é utilizada para

desenvolver uma aplicação como um conjunto de pequenos serviços. Aprendemos que cada serviço é
desenvolvido em torno de um conjunto de regras de negócio específicas, sendo implementado de forma

independente. Entendemos o funcionamento da arquitetura de microsserviços e o ambiente operacional para

executar os pacotes de software em containers, bem como um conjunto de produtos de plataforma como
serviço que utiliza virtualização no nível do sistema operacional, ou seja, os dockers. 

Para finalizar, chegamos à última semana do curso, em que discutimos sobre os principais provedores de
serviços em nuvem: AWS, Microsoft Azure e Google Cloud Platform. Entendemos que eles oferecem serviços

de infraestrutura de TI para empresas por meio da Internet e apresentam como vantagem inicial a redução de

gastos com infraestrutura, além de permitir escolher serviços, como selecionar um sistema operacional, a
linguagem de programação, a plataforma de aplicativos da web, banco de dados etc. Organizamos a
aplicação desenvolvida nas semanas anteriores e implantamos nossa imagem com Ubuntu em um

container docker nas nuvens discutidas anteriormente. 


De modo geral, sugiro que você revise as Atividades Avaliativas, bem como os textos-base, códigos
disponibilizados, vídeos e ferramentas que foram solicitadas que você interagisse durante as semanas. Tais

materiais contêm informações importantes cujo entendimento é primordial e que podem aparecer na prova.
Como o docente responsável pela disciplina, espero que os assuntos tratados possam complementar a sua
formação profissional e que você tenha sucesso no decorrer da sua carreira, que está apenas começando.

Acredite na educação, pois todo o esforço que teve para aprender o conteúdo disponibilizado nesta
importante disciplina muito em breve trará a você benefícios profissionais.
Desejo sucesso e uma boa prova!
 
 
Prof. Dr. Julio Cezar Estrella

https://ava.univesp.br/ultra/courses/_6965_1/cl/outline 3/3

Você também pode gostar