apresentação do curso

19
Introdução a Sistemas Distribuídos Introdução ao Curso Eduardo de Lucena Falcão

Upload: eduardo-de-lucena-falcao

Post on 17-Dec-2014

103 views

Category:

Education


1 download

DESCRIPTION

Apresentação do Curso Introdução a Sistemas Distribuídos da Estácio.

TRANSCRIPT

Page 1: Apresentação do Curso

Introdução a Sistemas Distribuídos

Introdução ao CursoEduardo de Lucena Falcão

Page 2: Apresentação do Curso

Apresentações

● Eduardo de Lucena Falcão

– Lattes - http://lattes.cnpq.br/8335184809043358

– Blog - http://edufalcao.com

● Sobre vocês

– Formação?

– O que esperam do curso?

Page 3: Apresentação do Curso

Visão geral do curso

● Sistemas Distribuídos– “Um sistema distribuído é um conjunto de

computadores independentes entre si que se apresenta a seus usuários como um sistema único e coerente.” Tanembaum, A.

– “Coleção de computadores autônomos interligados através de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados.” Coulouris, G.

Page 4: Apresentação do Curso

Visão geral do curso

● Qual a importância dos Sistemas Distribuídos?

1. Otimização de nossos programas;

2. A população mundial cresce exponencialmente;

3. No mercado só há (ou pelo menos só deveria haver) espaço para quem trabalha de maneira escalável;

4. Arquitetura modularizada/segmentada;

5. Maior tolerância a falhas.

Page 5: Apresentação do Curso

Visão geral do curso

● Objetivos:1.Apresentar os conceitos fundamentais de Sistemas

Distribuídos;

2.Apresentar os principais conceitos úteis para o desenvolvimento prático de uma aplicação que envolve técnicas de Sistemas Distribuídos, mais especificamente técnicas de Cloud Computing;

3.Apresentar de forma conceitual e prática os principais componentes da Amazon Web Services (AWS), que permitirá a construção de um sistema escalável e tolerante a falhas;

Page 6: Apresentação do Curso

Visão geral do curso

● Objetivos:4. Apresentar técnicas e ferramentas para monitoramento

do sistema na nuvem AWS;

5. Com o decorrer do curso, o aluno deverá aplicar as técnicas aprendidas na disciplina em um projeto individual.

Page 7: Apresentação do Curso

● Ementa:– Introdução a Sistemas Distribuídos. Introdução a AWS. Configuração

do Ambiente de Desenvolvimento. Elastic Cloud Computing (EC2). Amazon Machine Images (AMI). Elastic Block Storage (EBS). Elastic Ips. Relational Database Service (RDS) – apenas o conceito. Simple Storage Service (S3). Amazon Cloud Front. Como tornar o sistema escalável. Elastic Load Balancing (ELB). Auto Scaling. Elastic Beanstalk. Como desacoplar os componentes do sistema. Simple Queue Service (SQS). SimpleDB. Simple Notification Service (SNS). Como detectar e lidar com falhas. Como tornar o sistema menos suscetível a falhas. Como gerenciar os componentes de seu sistema.

Visão geral do curso

Page 8: Apresentação do Curso

Pré-requisitos

● Programação (C, C++, Java, etc.)

● Conhecimentos básicos de Sistemas Operacionais (Linux, Windows Server)

● Conhecimentos básicos de Redes

Page 9: Apresentação do Curso

Tópicos abordados no curso

● Analisando o problema a ser resolvido;

● Sistemas Distribuídos: Clusters, Supercomputadores, Grids, Cloud Computing;

● Introdução à Cloud Computing;

● Introdução à AWS;

● Configuração do Ambiente de Desenvolvimento;

● EC2: como criar e configurar uma nova instância;

● Tornando o sistema escalável;

● Desacoplamento entre os componentes do sistema;

● Como detectar e lidar com falhas;

● Tornando o sistema menos suscetível a falhas;

● Gerenciando os componentes do seus sistema.

Page 10: Apresentação do Curso

Recursos Computacionais

● AWS

– Opção 1: crie sua conta AWS e usufrua do AWS Fee Usage Tier● Vantagem: você terá acesso ao AWS Management Console :)● Desvantagem: você pode ter custos adicionais - poucos mais

pode :(– Opção 2: requisite sua chave de acesso ao professor

● Vantagem: você não terá nenhum custo adicional :)● Desvantagem: você não terá acesso ao AWS Management

Console :(– Opção 3: use as 2 opções anteriores =D

Page 11: Apresentação do Curso

Recursos Computacionais

● AWS Free Usage Tier - http://aws.amazon.com/pt/free/

● EC2:

– 750 horas do Amazon EC2 para Linux Uso de Microinstância (613 MB de memória e suporte à plataforma de 32 e 64 bits) – horas suficientes para executar continuamente todos os meses

– 750 horas do Amazon EC2 para Microsoft Windows Server Uso de Microinstância (613 MB de memória e suporte à plataforma de 32 e 64 bits) – horas suficientes para executar continuamente todos os meses

– 750 horas de Elastic Load Balancer além de 15 GB de processamento de dados

– 30 GB de Amazon Elastic Block Storage, além de 2 milhões de E/S e 1 GB de armazenamento de snapshot

Page 12: Apresentação do Curso

Recursos Computacionais

● AWS Free Usage Tier - http://aws.amazon.com/pt/free/

● Simple Storage Service - S3:

– 5 GB de armazenamento padrão do Amazon S3, 20.000 solicitações GET e 2.000 solicitações PUT*

● Simple Queue Service (SQS) e Simple Notification Service (SNS)

– 1.000.000 de solicitações de Amazon SQS

– 1.000.000 de solicitações, 100.000 notificações de HTTP e mil notificações de e-mail para Amazon SNS

● CloudWatch

– 10 métricas do Amazon Cloudwatch, 10 alarmes e 1.000.000 solicitações de API● Transferência de dados

– 15 GB de largura de banda para fora agregado em todos os serviços AWS*

Page 13: Apresentação do Curso

Avaliação

As seguintes atividades serão utilizadas para avaliação:

– Participação (PART.) das aulas;

– Apresentação inicial da proposta de projeto (PROP. I) do sistema distribuído (25/05);

– Apresentação final do projeto (PROP. II) do sistema distribuído (08/06);

– Implementação do projeto (PROJ.) de sistema escalável implantado no AWS (15/06);

– Relatório (REL.) contendo a descrição do projeto e as melhorias proporcionadas pela implantação do projeto na nuvem AWS (15/06).

● Média: (0.1*PART) + (0.05*PROP.I) + (0.05*PROP.II) + (0.2*REL.) + (0.6*PROJ.)

Page 14: Apresentação do Curso

Cronograma de Avaliação

Aula 1 Aula 2 Aula 3 Aula 4

PART. PART.

PROP. I

PART.

PROP. II

REL. + PROJ.

À priori, mas pode ser mudado com o decorrer do curso. Com aviso prévio.

Page 15: Apresentação do Curso

Sugestões de Projetos

● Ideal: remodelar projetos já existentes da autoria de vocês ou de suas empresas, como Sistemas Distribuídos e escaláveis na AWS

● Alternativos:

– Algoritmos simples submetidos a grandes cargas de requisição● Ex.: algoritmos de ordenação, algoritmos de busca, …

– Algoritmos um pouco mais pesados devem requerer outras técnicas, como o Map-Reduce

● Processamento de áudio, imagens, e vídeos

Page 16: Apresentação do Curso

Resultados esperados ao fim do curso

● Entender a importância de Sistemas Distribuídos;

– Entender as diferenças entre computação em cluster, em grades, em nuvem, e supercomputação;

● Entender como construir sistemas distribuídos de larga escala e tolerante a falhas;

● Ser capaz de analisar um sistema já existente e remodelá-lo como um Sistema Distribuído;

● Ser capaz de utilizar a AWS para implementar de forma prática um Sistema Distribuído.

Page 17: Apresentação do Curso

Referências

1. Vliet, J., and Paganelli, F.; Programming Amazon EC2. O'Reilly.

2. Slides das aulas. Links presentes nos slides.

Page 18: Apresentação do Curso

Recursos e Contato

● Lista de discussão:

[email protected]

● Site da disciplina:

– https://sites.google.com/site/introsistemasdistribuidos/

● Me escreva:

[email protected]

Page 19: Apresentação do Curso

Dúvidas

https://sites.google.com/site/introsistemasdistribuidos/

Eduardo de Lucena Falcão

[email protected]

@dudufalcao