LAB Computação na Nuvem

UC LECIONADA POR:

Introdução

A "Computação na Nuvem" permeou a sociedade e suporta as necessidades de todos os indivíduos e organizações, por vezes de forma transparente, sem que disso tenham noção. Algumas das mais relevantes abordagens digitais, agentes de inovação e mudança, como a Inteligência Artificial e as bases de dados em Blockchain, acontecem na Cloud.

Mas o que é a Cloud?, o que tem de novo e diferente relativamente aos modelos clássicos para serviços de Tecnologias de Informação e Comunicação (TIC)? Genericamente, como pode a Cloud ser utilizada na área de comunicação educacional e gestão de informação? Esta unidade pretende responder objetivamente a estas questões.

O entendimento do conceito e dos seus custos em modelo pay-as-you-go, é fundamental para qualquer processo de tomada de decisão relacionado com recursos digitais, em todas as áreas, não apenas em Educação.

Os recursos computacionais virtualmente ilimitados que a Cloud fornece, facilitam tornar-se realidade aplicações customizadas para consumo de quaisquer dados em quaisquer redes eletrónicas, para extração e organização da informação que se queira.

Pessoas introduzidas à utilização e desenvolvimento de apps na Cloud, tornam-se particularmente aptas e autónomas em atividades de pesquisa, incluindo a escrita dos seus próprios instrumentos de investigação e de estruturação de novas soluções multimédia.

Objetivos da unidade curricular / unidade

Espera-se do estudante aprovado:

  • Entenda o conceito de "Cloud Computing"/"Computação na Nuvem", seus modelos de serviço (IaaS, PaaS, SaaS), modelos de deployment (public, private, hybrid), tecnologias de infraestrutura, tecnologias de arquivo, e abordagens selecionadas para o desenvolvimento (Serverless, MicroServices, Cloud Native, DevOps);
  • Conhecimentos sobre aspetos de negócio e tecnológicos que suportem escolhas entre diferentes ofertas "Cloud", incluindo casos de estudo;
  • Competências para entender/desenvolver/disponibilizar (partes de) soluções, consoante aspetos como natureza pública ou privada da cloud, necessidades de dados e tráfego, necessidades computacionais, interoperabilidade e abertura, concretizando aplicações distribuídas nalguma arquitetura elegida.

Conteúdos Pragmáticos

Conceitos em "Cloud Computing":

- Conceito de "Cloud"

- Modelos de Serviço (IaaS, PaaS, SaaS)

- Modelos de Concretização/Deployment (public, private, hybrid)

- Tecnologias de Infraestrutura (bare-metal, VMs, containers, aspetos de segurança)

- Soluções de Arquivo (File, Block, Object, CDNs)

Desenvolvimento "Cloud Native"

- Camadas de desenvolvimento, provisionamento, runtime, orquestração

Prática com aplicações na Cloud

- Utilizando alguma linguagem de programação (exemplo: Python)

- Sobre a oferta de algum provider (exemplo: AWS, GCP)

- Orientada ao desenvolvimento de software (exemplo: Web Apps, Web Services), fazendo Continuous Integration (CI) e Continuous Deployment (CD)

Metodologia

Apresentações, exemplos e casos de estudo.

Desenvolvimento prático de soluções, utilizando tecnologias elegidas; e/ou utilização prática de recursos cloud selecionados e adequados a problemas concretos.

Os conteúdos introduzem, elaboram e exemplificam conceitos. Utilizam-se casos de estudo, de negócios e de atividades concretas, suportadas pela Cloud. Isto deverá estabelecer os conceitos e a capacidade de entender como e que problemas pode a Cloud resolver (e criar).

A forma como se desenvolve, disponibiliza, e executa o software, depende dos recursos e serviços disponíveis, especialmente em termos de dados e computação, pelo que praticar esses aspetos é importante.

A aptidão de utilizar-se e/ou desenvolver-se e/ou disponibilizar-se (partes de) soluções, emerge de praticar-se a utilização, e/ou o desenvolvimento, e/ou o deployment com ferramentas e linguagens concretas, que explorem técnicas e tecnologias efetivamente disponíveis.

Estratégias e métodos de avaliação

Avaliação:
Trabalho/projeto proposto pelo estudante e acordado com o docente (P)
Teste escrito (T)
Nota final = 0.4 * P + 0.6 * T

Bibliografia

Lachance, D. (2020). CompTIA Cloud Essentials+ Certification Study Guide, McGraw-Hill Education.

Fraser, S. and T. Ziadé (2021). Python Microservices Development: Build efficient and lightweight microservices using the Python tooling ecosystem, 2nd Edition.

AWS. (2022). Amazon Web Services.

Google. (2022). Google Cloud Platform