Plataformas de Desenvolvimento

Conhecimentos de Base Recomendados

Conhecimentos na área de programação e utilização de VMs para o setup das aulas.

Métodos de Ensino

As aulas têm um cariz prático.

  • A parte inicial da aula será mais expositiva, com recurso a projeção de documentos e exemplos.
  • A parte final da aula será mais prática, de resolução de exercícios.

Alguns dias serão inteiramente de exercícios.
Últimas aulas reservadas para apresentação da componente de pesquisa e elaboração dos aspetos finais do trabalho prático.

Resultados de Aprendizagem

Proporcionar aos alunos os conceitos, práticas e ferramentas acerca de desenvolvimento contínuo e entrega contínua, incluindo a construção dos respetivos pipelines. Proporcionar conceitos sobre arquiteturas baseadas em ambientes cloud computing e tópicos sobre a sua implementação, sendo usado como cloud provider a AWS.

 

No final desta unidade curricular os alunos serão capazes de

– Conhecer, compreender e aplicar os conceitos acerca de desenvolvimento contínuo e entrega contínua.

– Conhecer, escolher e aplicar as ferramentas de suporte, desenvolvimento contínuo e entrega contínua.

– Planear e implementar pipelines para desenvolvimento contínuo e entrega contínua.

– Conhecer e entender a arquitetura baseada em cloud computing

– Perceber conceitos relacionados com AWS: cloud, services e terminologia

– Implementar sistemas segundo arquitetura cloud, usando serviços AWS

Programa

O programa da cadeira será dividido em 2 áreas:

Ci/CD:

  • Introdução de conceitos CI/CD
  • Docker (conceitos; utilização de imagens docker; criação de imagens docker)
  • Ansible (conceitos, utilização de ansible para criação de macros em diferentes ambientes)
  • Jenkins (conceitos e exercícios práticos)
  • NetLify ( pipeline CI/CD para Frontend)
  • GitHub Actions

Cloud Computing:

  • Overview e Introdução à AWS
  • AWS Security, Networking e Storage
  • AWS Compute, Databases e IoT

Haverá também uma aula dedicada para finalização dos trabalhos práticos, assim como uma aula de apresentação dos trabalhos práticos de CI/CD e trabalho sobre a AWS.

 

Docente(s) responsável(eis)

Ricardo Ângelo dos Santos Filipe

Métodos de Avaliação

Prova escrita / presencial –5 valores

Trabalhos práticos –15 valores

 

Trabalho#1: Componente de desenvolvimento Ci/CD

  • Componente de desenvolvimento:
    • Proposta, planeamento e desenvolvimento de uma pipeline CI/CD e uma aplicação exemplo.
    • Uso de REST APIs Open Source, de forma a enriquecer o trabalho desenvolvido

Trabalho#2- Componente de desenvolvimento AWS

  • Planeamento e desenvolvimento de uma aplicação usando serviços AWS.

 

Trabalho#3- Laboratórios sobre conteudos AWS

 

Trabalho#4 - Pipeline de CICD em GitHub Action


    Estágio(s)

    NAO

    Bibliografia

    Josh Stella . (2015) .An introduction to immutable infrastructure, Consultado em 02 fev. 2024. Disponível em https://www.oreilly.com/radar/an-introduction-to-immutable-infrastructure/

    CNCF. (2023). Could Native Landscape. Consultado em 02 fev. 2024. Disponível em https://landscape.cncf.io/

    Jenkins(2023). Jenkins Build great things at any scale. Consultado em 02 fev. 2024. Disponível em https://www.jenkins.io

    Red hat Ansible (2021). Red hat Ansible. Consultado em 02 fev. 2024. Disponível em https://www.ansible.com/

    Miell, I. & HbsonSayers A. (2019). Docker in Practice (2ª ed.). Manning Publications

    AWS Certified Cloud Practitioner, Consultado em 02 fev. 2024, Disponivel em https://aws.amazon.com/certification/certified-cloud-practitioner/?ch=tile&tile=getstarted 

    Learning GitHub Actions: Automation and Integration of CI/CD with GitHub 1st Edition Disponível em https://www.amazon.com/Learning-GitHub-Actions-Automation-Integration/dp/109813107X