/cloud_development_ufc

Course about Software Development for the Cloud (in Portuguese)

Primary LanguageJava

CK0205 - Desenvolvimento de Software para Nuvem

(Também CKP8422 - Topicos Especiais Em Redes E Sist. Distribuidos II)

Ciência da Computação, Departamento de Computação, (UFC)

Instrutores

Local

Departamento de Computação, horários: Terça e Quintas (10:00-12:00), Bloco 950, Sala 05. Aulas práticas, quando ocorreram, serão no Lab LEC.

Edições passadas

  • Edições passadas à 2018.1, apenas no SigaA.

Ementa

Computação em Nuvem é o termo bastante difundido que representar um novo modelo de uso de recursos de TI (hardware, software, dados), onde tais recursos são oferecidos remotamente aos seus usuários, em geral por meio de virtualização. Este novo modelo tem alcançado muito sucesso, pois traz consigo benefícios como utilização de recursos sob demanda, otimização de desempenho e escalabilidade. Porém, o benefício destas propriedades requer que aplicações sejam concebidas com foco na nuvem. Neste sentido, esta disciplina busca apresentar ao aluno como aplicações podem tirar proveito da nuvem para alcançar benefícios como alta elasticidade, maior desempenho e alta disponibilidade.

Um relato de experiência das várias edições desta disciplina pode ser estudado no artigo Teaching Software Development for the Cloud: An Experience Report, publicado no Congresso Brasileiro de Software 2017.

Tópicos

Conceitos Básicos de Computação em Nuvem. Modelos de Serviços e de Implantação em Nuvem. Virtualização. Desenvolvimento com PaaS. Desenvolvimento SaaS. Multitenancy. Mobile Cloud Computing. Desafios para software em nuvem.

Bibliografia Sugerida

Não há livro texto obrigatório. Entretanto, a seguir estão alguns livros que podem ser recomendados:

Bibliografia Complementar

Bibliografia sobre Ferramentas, Frameworks e Tecnologias

Blogs, Disciplinas, Treinamentos

Business Cases

Objetivos

  • Objetivo Geral Introduzir ao aluno os principais conceitos do paradigma de computação móvel em nuvem, em especial, àqueles relacionados ao desenvolvimento de aplicações.

  • Objetivos Específicos Apresentar os modelos de serviços em nuvem (Infraestrutura como Serviço, Plataforma como Serviço e Software como Serviço), Modelos de Implantação (Nuvem Pública, Privada, Comunitária e Híbrida), Principais plataformas de nuvem públicas (Amazon AWS, Google AppEngine, Microsoft Azure) e para nuvens privadas (OpenStack, CloudStack, OpenNebula, Eucalyptus). Apresentar o modelo de programação Map/Reduce e o conceito de criação de software multi inquilino (MultiTenancy). Discutir sobre os desafios para o desenvolvimento de software para/e com a nuvem.

Metodologia

A metodologia do curso constará de aulas expositivas, enriquecidas por seminários e debates com a utilização de recursos audiovisuais. As avaliações serão baseadas nas aulas, exercícios dirigidos, e o projeto final.

Pré-Requisitos

Para participar deste curso é desejável que os participantes tenham:

  • Inglês técnico para leitura, estudo e acompanhamento das atividades propostas, uma vez que a maior parte do material disponível está em inglês.
  • Conhecimento básico de arquitetura de computadores, sistemas operacionais, redes, engenharia de software, sistemas distribuídos e banco de dados.
  • Conhecimento de plataformas de desenvolvimento de software para Web;

Artigos

Estes artigos podem ser obtidos a partir da rede da UFC, mediante acesso ao portal de periódicos da CAPES.

Glossário de Ferramentas

Referências de outros cursos correlatos

Avaliação

Plano de aulas

Aulas Tópicos Recursos Tarefas
22 Fev 2018 Apresentação da Disciplina Slides PDF -
27 Fev 2018 Conceitos Básicos de Computação em Nuvem Slides PDF -
01 Mar 2018 Conceitos Básicos de Computação em Nuvem Slides PDF -
06 Mar 2018 Amazon AWS Demo (http://aws.amazon.com) -
08 Mar 2018 AWS - Principais Serviços (http://aws.amazon.com) -
13 Mar 2018 AWS Rest API Slides PDF Trabalho AWS
15 Mar 2018 Elasticidade Slides PDF -
15 Mar 2018 Elasticidade Slides PDF -
22 Fev 2018 Google Cloud Platform Slides PDF Trabalho GAE
27 Mar 2018 Virtualização Slides PDF -
29 Mar 2018 Semana Santa - -
03 Abr 2018 Amazon Auto Scalling Groups - -
05 Abr 2018 Revisão para Prova Slides PDF -
10 Abr 2018 Primeira Avaliação PDF -
12 Abr 2018 Turma Liberada para Conclusão de Projeto - -
17 Abr 2018 Apresentação dos Projetos - -
24 Abr 2018 MultiTenancy PDF -
26 Abr 2018 Open Source Cloud - PDF
01 Mai 2018 Feriado (Dia do Trabalho) - -
03 Mai 2018 Demonstração OpenStack - -
08 Mai 2018 Desafios na Integração Nuvem + ES - -
10 Mai 2018 Desafios na Integração Nuvem + ES (cont) - -
15 Mai 2018 Turma Liberada para Conclusão de Projeto - -
17 Mai 2018 Entrega de Notas da Avaliação 1 - -
22 Mai 2018 Mobile Cloud Computing PDF
24 Mai 2018 Aula Demonstração - CAOS - -