Git Product home page Git Product logo

if1004's Introduction

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

if1004's People

Contributors

fernandofish avatar vinicius3w avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.