Skip to content
/ if1004 Public

Desmistificando DevOps: Projetando Arquiteturas Efetivamente Escaláveis

License

Notifications You must be signed in to change notification settings

IF1004/if1004

Repository files navigation

Desmistificando DevOps: Projetando Arquiteturas Efetivamente Escaláveis

IF1004

Sistemas de Informação, Centro de Informática, (UFPE)

Instrutores

Disciplinas

  • Pós-Graduação: IN0980 - Tópicos Avançados em Engenharia de Software 3
  • Graduação: IF1004 - Seminários em Sistemas de Informação 3

Local

Centro de Informática, horários: segunda (17:00-18:40) e quarta (18:50-20:30), sala D004.

Aulas práticas, quando ocorreram, serão no Lab G2.

Edições passadas

Comunicação

Ementa

As modernas organizações de desenvolvimento de software exigem equipes inteiras de DevOps para automatizar e manter processos de engenharia de software e infraestrutura vitais para a organização. Nesta disciplina, os alunos terão exposição prática às habilidades, ferramentas e conhecimentos necessários para automatizar processos e infraestruturas de engenharia de software. Os alunos terão a chance de criar novas, ou ampliar, ferramentas existentes de engenharia de software e projetar um pipeline DevOps.

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

Research Trends

Objetivos

Espera-se que os alunos vivenciem exposição prática a ferramentas, processos e princípios de engenharia de software através de projetos práticos, enquanto compreendem modelos e ideias de pesquisa por trás das ferramentas e processos. As aulas incluirão experiências de aprendizagem no estilo de workshops, onde os alunos irão trabalhar em um problema e receberão comentários do professor, colaboradores convidados e outros colegas de classe. Quando possível, palestras convidadas da indústria ajudarão a ilustrar exemplos de como a tecnologia é implantada na prática.

Metodologia

Na disciplina, será utilizada uma mistura de aulas tradicionais com atividades e workshops em sala de aula. Durante as aulas, abordaremos conceitos básicos relacionados aos tópicos a serem tratados na disciplina. Durante os workshops em sala de aula, realizaremos exemplos de exercícios com ferramentas relevantes que reforçam o material de aula. As avaliações serão baseadas nas aulas, exercícios dirigidos, workshops e o projeto final.

Pré-Requisitos

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

  • Conhecimento básico de 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 computador, sistemas operacionais, redes, engenharia de software e banco de dados.
  • Conhecimento de modelos de processo de desenvolvimento de software, em especial Metodologias Ágeis, testes de software. COnhecimento em TDD e BDD serão uma vantagem. Maiores informações podem ser consultadas no site da disciplina de Engenharia de Software (IF977).
  • Experiência em sistemas de computação, armazenamento, infraestruturas de rede e computação em nuvem será uma vantagem.

Recursos

Artigos

Glossário de Ferramentas

Referências de outros cursos correlatos

Avaliação

  • Projeto em equipe com até 3 membros [70%]
    • Caráter puramente acadêmico e educacional. O projeto vai tratar de diversos aspectos do desenvolvimento de uma aplicação, serviço ou solução de apoio ao paradigma DevOps no ciclo de vida de software.
    • O projeto é constituído da solução e todos os artefatos que a compõem (i.e. código fonte, imagens, arquivos de configuração, scripts, documentações de apoio, entre outras), um relatório técnico final contendo a contextualização, escopo, tomadas de decisão, documentação da arquitetura da solução, projeto de implantação, etc.
    • A apresentação oral do projeto também conta como uma parte da avaliação do mesmo, todos os membros do time devem estar presentes.
    • Observações:
      • Entrega fora do prazo: redutor de 1 ponto por dia de atraso.
      • Atraso máximo: 1 (uma) semana. Após esse prazo, será dada nota zero para a respectiva atividade de avaliação.
      • Trabalhos com referências bibliográficas inconsistentes terão um redutor no conteúdo técnico.
      • Trabalhos “CTRL-C + CTRL-V” terão nota zero (vale tanto para cópia de colegas, como para trabalhos copiados da internet).
  • Exercício Escolar Teórico Individual e/ou Atividades Práticas Individuais [30%]
    • Exercício com questões objetivas
  • Como atividade de recuperação é proposta a aplicação de um Exercício Escolar abordando os temas apresentados e discutidos em classe.

Plano de aulas

Classes Topics Resources Assignments
Aug-05 Welcome, Methodology, Course Introduction (Core Topics) Paper-01 & Post-01 HW1
Aug-07 Background: What is DevOps (Chapter 1 from Len Bass' book) Paper-02 HW2
Aug-12 Background: The Cloud as a Platform (Chapter 2 from Len Bass' book) Suggestion Paper-03
Aug-14 Background: Operations (Chapter 3 from Len Bass' book) Paper-04 HW3
Aug-19 The Deployment Pipeline: Overall Architecture (Chapter 4 from Len Bass' book)
Aug-21 The Deployment Pipeline: Building and Testing (Chapter 5 from Len Bass' book) HW4
Aug-26 The Deployment Pipeline: Deployment (Chapter 6 from Len Bass' book) HW12
Aug-28 Containerizing with Docker Docker CheatSheet

Docker Commands — The Ultimate Cheat Sheet
HW13
Sep-02 Docker Fundamentals (exercises 1-18) HW13
Sep-04 Docker Fundamentals (exercises 1-18) HW13
Sep-09 Seminar "The Deployment Pipeline: Scalability Issues" Paper-05 and Paper-06
Sep-11 Seminar "The Deployment Pipeline: Scalability Issues" Paper-05 and Paper-06
Sep-16 Crosscutting Concerns: Monitoring (Chapter 7 from Len Bass' book)
Sep-18 Crosscutting Concerns: Monitoring Exercises
Sep-23 Crosscutting Concerns: Security and Security Audits (Chapter 8 from Len Bass' book)
Sep-25 Other *Ilities (Chapter 9 from Len Bass' book) Paper-07 HW6
Sep-30 Managing Dockerized Microservices with Mesos and Marathon 1/2
Oct-02 Managing Dockerized Microservices with Mesos and Marathon 2/2
Oct-07 Introduction to Kubernetes 1/2
Oct-09 Introduction to Kubernetes 2/2
Oct-14 Presentation and project PROJECT
Oct-16 Read Architectural Design Decisions Papers Paper-8 & Paper-9
Oct-21 Migrating Applications to Native Cloud Architectures Post-02 HW8
Oct-23 Migrating Applications to Native Cloud Architectures Post-03 HW9
Oct-28 Business Considerations (Chapter 10 from Len Bass' book) HW10
Oct-30 Moving into the Future & The Future of DevOps (Chapters 14 & 15 from Len Bass' book)
Nov-04 DevOps Projects proposal presentation
Nov-06 DevOps Projects execution
Nov-11 DevOps Projects execution
Nov-13 DevOps Projects execution
Nov-18 DevOps Projects execution
Nov-20 DevOps Projects execution
Nov-25 DevOps Projects execution
Nov-27 DevOps Projects execution
Dec-02 DevOps Projects final presentation
Dec-04 2a Chamada
Dec-09 Prova Final