Desmistificando Microsserviços e DevOps: Projetando Arquiteturas Efetivamente Escaláveis
Sistemas de Informação, Centro de Informática, (UFPE)
- Professor Vinicius Cardoso Garcia ([email protected])
- Teaching Assistant José Fernando Santos de Carvalho, Fish, ([email protected])
Centro de Informática, horários: segunda (17:00-18:40) e quarta (18:50-20:30), sala E121.
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.
Não há livro texto obrigatório. Entretanto, a seguir estão alguns livros que podem ser recomendados:
- DevOps: A Software Architect's Perspective (SEI Series in Software Engineering)
- Building Microservices: Designing Fine-Grained Systems
- Continous Delivery
- Continous Integration
- Designing Data-Intensive Applications
- Systems Performance: Enterprise and the Cloud
- The Practice of Cloud System Administration
- Caixa de Ferramentas DevOps: Um guia para construção, administração e arquitetura de sistemas modernos
- DevOps na prática: entrega de software confiável e automatizada
- Containers com Docker: Do desenvolvimento à produção
- Ansible: Up and Running
- Entrega contínua em Android: Como automatizar a distribuição de apps
- Jenkins: Automatize tudo sem complicações
- Spring Boot: Acelere o desenvolvimento de microsserviços
- Testes automatizados de software: Um guia prático
- Test-Driven Development: Teste e Design no Mundo Real
- Cloud Computing: Concepts, Technology & Architecture
- IF1006 - TÓPICOS AVANÇADOS EM SISTEMAS DE INFORMAÇÃO 3 (SERVIÇOS E INFRAESTRUTURA DE NUVEM) - 2017.1
- Google Cloud Platform Blog
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.
In the course, a mixture of traditional lectures with activities and in-class workshops will be used. During lectures, we will cover core concepts related to a topic. During the in-class workshops, we will perform sample exercises with relevant tools that reinforce lecture material. Evaluation will be based on tech talks, homework assignments, workshop attendance, and final project.
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.
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.
- 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 simples com atrquitetura de microsserviços.
- 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.
Class | Topics | Resources | Assignments |
---|---|---|---|
Aug-07 | Welcome, Methodology, Course Introduction (Core Topics) | Reading-01 | HW1 |
Aug-09 | Background: What is DevOps | Reading-02 | HW2 |
Aug-14 | Background: The Cloud as a Platform | Suggestion | |
Aug-16 | Background: Operations | Reading-03 | |
The Deployment Pipeline: Overall Architecture | |||
The Deployment Pipeline: Building and Testing | |||
The Deployment Pipeline: Deployment | |||
Crosscutting Concerns: Monitoring | |||
Crosscutting Concerns: Security and Security Audits | |||
Crosscutting Concerns: Other *Ilities | |||
Crosscutting Concerns: Business Considerations | |||
Case Studies: Supporting Multiple Datacenters | |||
Case Studies: Implementing a Continuous Deployment Pipeline for Enterprises | |||
Case Studies: Migrating to Microservices | |||
Moving into the Future: Operations as a Process | |||
Moving into the Future: The Future of DevOps | |||