Loading…
Transcript

Cluster de Servidores

Cluster de Três Camadas

Roteador

Servidor Web

Processamento

Dados

Armazenamento

O que é um cluster?

Cluster de Tres camadas

Camadas Escondidas

End point único

Resposta

Head ip do roteador

Clientes MultiThread

Servidores

Exemplo o Browser

Como o Browser Carrega uma página?

Múltiplas conexões?

É realmente mais rápido?

Servidores Iterativos

Cuida da requisição sozinho

Retorna a resposta

Servidores Concorrentes

Divide as requisições

Requisições encaminhadas para Threads

Exemplo:

Servidor Web

Servidores esperam requisições

Servidores Iterativos

Servidores Concorrentes

End Point

Interrupção

Stateless e Statefull

End Point

Cada servidor uma porta

Ponto de acesso

Agrupamentos de Servidores

Determinar End Points

Determinação de End Point

Serviços comuns recebem portas

HTTP 80

SSH 22

FTP 21

Determinadas por uma associação

Interrupção

Por que desligar

Download gigante

Como desligar?

Como Desligar?

Serviço extra de shutdown

Out Of Band

Mesmo serviço

Shutdown do cliente

Stateless e Statefull

Servidores MultiThread

O que são?

Diferenças

Aplicações

Steteless

HTML estático

Statefull

Email

Principal aplicação, por que?

Maior poder de processamento

Exemplos:

Servidor de Arquivos

IO operação demorada

Multiplas requisições

Thread de leitura de dados

Threads

Processos em Sistema Distribuído

Processos

O que são?

Memória

Permissões

Como eles são administrados?

Custo da Troca

Swap - Quando e por que?

Threads vs Processos

  • Processos

  • Threads

Diferensas?

Processo é mais lento

Mais pesado

Thread mais independente

Thread menos memória

Thread dead lock

Processo execução indep.

Thread melhor em SD

public class Deadlock {

static class Amigo {

private final String nome;

public Amigo(String nome) {

this.nome = nome;

}

public String getNome() {

return this.nome;

}

public synchronized void passar(Amigo passador) {

System.out.format("%s: %s"

+ " me passou a bola!%n",

this.nome, passador.getNome());

passador.passaDeVolta(this);

}

public synchronized void passaDeVolta(Amigo passador) {

System.out.format("%s: %s"

+ " voltou a bola pra mim!%n",

this.nome, passador.getNome());

}

}

public static v

oid main(String[] args) {

final Amigo gabigol =

new Amigo("Gabigol");

final Amigo bh =

new Amigo("Bruno Henrique");

new Thread(new Runnable() {

public void run() { gabigol.passar(bh); }

}).start();

new Thread(new Runnable() {

public void run() { bh.passar(gabigol); }

}).start();

}

}

Clientes

Threads

O que são?

Como usá-los?

Pra que usá-los?

Prove acesso aos dados

Cliente como um terminal

Thin Client

Virtualização

XServer

Threads e processos

Ilusão de múltiplas tarefas

Virtualização como ilusão

XServer Kernel

Visualizador de Janelas

Dependente de hardware

Xlib

Controle hardware, vídeo, teclado e mouse

Pode ser executado remotamente

Cliente Servidor

Window Managers

KDE -> Windows

Gnome -> Mac OS

Cinamon

Conceitos

Diferenças

Containers

Virtualização

Arquitetura

Intefaces de Virtualização

Hardware e Software

Qualquer programa

Hardware e Software

Privilegiados

System calls

Sistema Operacional

Biblioteca ou API

De onde surgiu

Pra que serve?

Hardwares mudam Softwares não

Compartilhamento de recursos

O que sao?

Como funcionam?

Virtualizam SO.

Nova tendencia.

Sao leves.

Exemplos:

Docker, spring boot

Interfaces

Emular comportamento

JVM

Wine

Emular Hardware

Virtualbox, VMWare