Cloud Computing
arturmarques.com | entrada ; home| contacto ; contact
scroll down for the Basics of Cloud Computing, Erasmus course

Semana (#--/15) de 2024-06-23

2024-06-24

Classificações do exame 20240624:

N Final
200100053 12

Semana (#--/15) de 2024-06-09

2024-06-13

Classificações do exame 20240613:

N Final
180100322 11
200100259 10
150118005 10
210100489 13
210100201 10
150173018 10

Semana (#--/15) de 2024-06-02

2024-06-04

Ficaram disponíveis as classificações, após avaliação contínua:

N Teste PRJ Final
70118039 10 14 12
190100318 12 10 11
210100274 10 16 12
210100461 13 14 13
200100317 16 16 16
180100322      
200100259      
200100253 10 17 13
200100282 9 16 12
220001124 11 16 13
210100065 10 14 12
200100272 14 16 15
170100259 11 12 11
200100005 13 12 13
190100146 9 12 10
210100211 13 16 14
150118005 7   4
190100291 14 10 12
200100308 11 16 13
210100108 15 10 13
200100280 10 15 12
190100220 9 10 10
190100274      
200100265 13 11 12
200100278 13 16 14
200100195 7 14 10
210100489      
210100350 13 17 15
210100201 7 10 8
180100502 9 12 10
200100152 10 14 12
150173018 7   4
170100249 12 11 12
210100158 12 14 13
210100171 11 11 11
200100274 11 15 13
200100385 12 14 13
200100053 12   7
210100076 10 17 13
200100420 10 16 12
210100063 12 17 14
210100243 15 17 16
210100222 13 10 12
200100284 11 15 13
200100273 14 16 15

Semana (#15/15) de 2024-05-26

2024-05-31

Apresentações #4/4.

2024-05-29

Apresentações #3/4.

Semana (#14/15) de 2024-05-19

2024-05-24

Apresentações #2/4.

2024-05-22

Teste escrito #2, para os alunos impedidos de fazê-lo na primeira oportunidade.
As notas do teste escrito #2 estão agora integradas na tabela do teste escrito #1.

Apresentações #1/4.

Ordem sorteada:

Apresentação #1 Grupo 6 = 200100420,210100211,200100272,210100274
Apresentação #2 Grupo 13 = 210100243,200100253,210100076,210100350,210100063
Apresentação #3 Grupo 11 = 200100195,200100152
Apresentação #4 Grupo 9 = 170100259
Apresentação #5 Grupo 7 = 150118005
Apresentação #6 Grupo 14 = 230001738,230000843
Apresentação #7 Grupo 0 = 200100308,220001124
Apresentação #8 Grupo 8 = 210100065,70118039,210100158,210100461
Apresentação #9 Grupo 12 = 180100502,190100146,200100005
Apresentação #10 Grupo 1 = 200100317,200100282,200100278,200100273
Apresentação #11 Grupo 4 = 190100318,190100220,210100201
Apresentação #12 Grupo 2 = 200100274,200100284,200100280
Apresentação #13 Grupo 5 = 150173018
Apresentação #14 Grupo 10 = 210100108,190100291,210100222
Apresentação #15 Grupo 3 = 200100265,170100249,210100171

Semana (#13/15) de 2024-05-12

2024-05-17

Teste escrito.

Relativamente ao teste escrito 20240517, estão disponíveis as classificações, o enunciado, e uma solução parcial.

N Teste
70118039 10
190100318 12
210100274 10
210100461 13
200100317 16
180100322  
200100259  
200100253 10
200100282 9
220001124 11
210100065 10
200100272 14
170100259 11
200100005 13
190100146 9
210100211 13
150118005 7
190100291 14
200100308 11
210100108 15
200100280 10
190100220 9
190100274  
200100265 13
200100278 13
200100195 7
210100489  
210100350 13
210100201 7
180100502 9
200100152 10
150173018 7
170100249 12
210100158 12
210100171 11
200100274 11
200100385 12
200100053 12
210100076 10
200100420 10
210100063 12
210100243 15
210100222 13
200100284 11
200100273 14

2024-05-15

Preparação para o teste escrito.

Semana (#12/15) de 2024-05-05

2024-05-10

Continuação e conclusão do projecto "website on a bucket", com:
- certificado SSL;
- IP estático;
- load balancer;
- edição de DNS records adequados;
- backend bucket.

Ficou disponível: 20240509_website_on_a_bucket_with_static_ip_ssl_https.pdf

2024-05-08

Projecto "Website on a bucket", com custom domain name, com manipulação de DNS records.

Ficou disponível: 20240509_website_on_a_bucket_with_static_ip_ssl_https.pdf [atualizado]

Semana (#11/15) de 2024-04-28

2024-05-03

Desenvolvimento, assistido por Git, de um serviço "is website down" e sua publicação, utilizando apenas recursos Cloud-based.

Git (com branching), por exemplo em Azure shell.

Para quem preferir os ficheiros já escritos: 240503_is_website_down.zip

Comando para deployment em Azure, a ser escrito na pasta em que os ficheiros de código estiverem, assumindo disponível o Azure SDK (suporte a comandos az):
az webapp up --runtime PYTHON:3.10 --sku F1 --logs

Ficou disponível o teste da edição anterior e uma solução.

Semana (#10/15) de 2024-04-21

2024-04-26

Continuação e conclusão do exercício de CI/CD, utilizando AWS Cloud 9 e o build-server de github.com.

Replicação do exercício com desenvolvimento em MS Azure.

Para quem preferir os ficheiros já escritos: cn_240424.zip

2024-04-24

Automação de requisitos, verificação sintática, e testes.
Testes com pytest e pytest-conv. Linting com pylint.

Um exemplo de "Continuous Integration" (CI) e "Continuous Deployment" (CD):
Desenvolvimento mutlicloud com AWS Cloud 9 e Github repos + actions: resposta do build-server a comandos git push.
Autenticação do ambiente Cloud 9 perante o build-server Github Actions, utilizando chave pública RSA.

Ficheiros de ajuda: gh_main.yml ; Makefile ; cn_240424.zip

Semana (#09/15) de 2024-04-14

2024-04-19

Continuação de bases de dados relacionais na cloud: comparação com storage baseada em ficheiros e buckets.

Bases de dados relacionais (com MySQL engine) em AWS RDS e GCP SQL.

Abertura de regras inbound adequadas para tráfego TCP/MySQL no porto configurado (por defeito 3306), associadas ao "security group" adequado (AWS RDS) ou à "networking > connectivity" adequada (GCP SQL).

Devido a problemas de conectividade causados pela firewall da escola, discussão de como é possível testar o código localmente, com um servidor de MySQL self-managed.

2024-04-17

Continuação.

Python library: mysql-connector-python

Cloud Web Apps com AWS RDS.

Ficou disponível: cn_20240417.zip

Semana (#08/15) de 2024-04-07

2024-04-12

Desenvolvimento realtime de uma solução "searcher" em Python Flask, com memória TSV no sistema de ficheiros do contentor deployed.

Deployment da aplicação em ambiente AWS Elastic Beanstalk.

Ficou disponível: cn_240412.zip ; start_240412.zip

2024-04-10

Containerização em ambientes AWS Elastic Beanstalk: conceito de contentor.

Criação de roles customizados em AWS, com policies à medida das necessidades do software desenvolvido.

Exercício de deployment de uma solução de IA para etiquetagem de imagens, em ambiente AWS Elastic Beanstalk, depois de se ter criado o role EC2 necessário.

Semana (#07/15) de 2024-03-31

2024-04-05

AWS IAM. AWS roles. AWS Beanstalk. AWS S3. AWS Rekognition.

Deployment de uma web app e serviço de reconhecimento de imagens em AWS Beanstalk com Rekognition, para reconhecimento de imagens uploaded para buckets S3.

Conceitos e exercícios relacionados.

Ficou disponível: v05_aws_rekognition.zip ; aws_boto3_tests.zip

2024-04-03

Autenticação de apps locais com cloud APIs, via private keys.

Python Flask enquanto framework para micro-services.

Exemplos na Google Cloud, via Google Cloud SDK, com gcloud.

Exercícios.

Ficou disponível: microservices_v02.pdf ; v05_gae_vision_better.zip ; v06_strictly_local_calling_vision.zip

Semana (#06/15) de 2024-03-17

2024-03-22

A aula regular de sexta-feira foi, excecionalmente, cedida ao Professor Marcin Iwanowski.

Na sala SI4, das 0900 às 1300, os tópicos serão (sessão #2/2):

Creating Azure App Service Web Apps:
- Microsoft Azure Fundamentals
- Azure App Service core concepts
- Creating an Azure App Service Web App
- Configuring and Monitoring App Service apps
- Scaling App Service apps
- Azure App Service staging environments

2024-03-20 2024-03-21 (quinta-feira)

A aula regular de quarta-feira foi, excecionalmente, alterada para quinta-feira e cedida ao Professor Marcin Iwanowski.

Na sala SI4, das 0900 às 1300, os tópicos serão (sessão #1/2):

Creating Azure App Service Web Apps:
- Microsoft Azure Fundamentals
- Azure App Service core concepts
- Creating an Azure App Service Web App
- Configuring and Monitoring App Service apps
- Scaling App Service apps
- Azure App Service staging environments

Semana (#05/15) de 2024-03-10

2024-03-15

Continuação e conclusão da app deployed em GAE/PaaS, agora com "visão", integrada com um serviço de ML para categorização de imagens.
Exercício.

Ficheiros relacionados: v04_gae_vision.zip ; gcloud_commands_v04.txt - comandos gcloud úteis ; requirements.txt - não esquecer que há um novo requisito.

2024-03-13

Deployment em PaaS, sem private keys, com autorização por IAM roles atribuídos à entidade da plataforma.

Deployment em Google App Engine. Comandos gcloud diversos.
Exercício.

Ficheiros relacionados: 20240313_gcp_app_engine_version_v3.pdf [nova versão] ; 20240313_v03_gcp_no_pk_via_prj_sa_roles.zip

Semana (#04/15) de 2024-03-03

2024-03-08

Web apps Python Flask na Cloud.

Service Accounts como forma de IAM na GCP.
Obtenção de private key para autenticação de código.
Comandos gcloud diversos para criação e associação de cloud objects.

Projecto: "upload to cloud bucket".
Variantes de desenvolvimento: 1) versão apenas local; 2) versão que faz upload de local para GCP bucket; 3) versão que computa na cloud.

Deployment para GAE (Google App Engine) - considerações diversas.

Ficheiros relacionados: cloud_file_upload_gcp_v1.zip

2024-03-06

Desenvolvimento em PaaS, na cloud, utilizando AWS.

Boas práticas de Identity and Access Management: serviço IAM.

AWS Cloud Shell.

Cloud functions com AWS Lambda.

Storage com S3 buckets.

HTTP APIs com API Gateway service.

Exercícios diversos.

Ficheiros relacionados: lambda_function.py.txt ; 240305_aws_iam_cloudshell_lambda_s3_api_pub.pdf

Semana (#03/15) de 2024-02-25

2024-03-01

Continuação de desenvolvimento PaaS assistido por Git.

2024-02-28

Desenvolvimento em PaaS, assistido por Git.
Exercícios com Google Cloud Functions.

Intro ao controlo de versões com Git.

Ficou disponível:
cn_02_git_with_branching_2024_v1.pdf
20240228_cloud_functions_fun.pdf

Semana (#02/15) de 2024-02-18

2024-02-23

Continuação e conclusão da introdução formal a "Computação na Nuvem".

2024-02-21

Introdução formal a "Computação na Nuvem".

Definição. História. Contexto. Models de serviço. Modelos de deployment. Providers. Considerações diversas.

Ficou disponível: cn_01_intro_to_cloud_computing_1_2324_v1.pdf

Semana (#01/15) de 2024-02-11

2024-02-16

Casos de estudo de soluções Cloud-based.

Ficou disponível: cc_00_cloud_computing_case_studies_2024_v2.pdf

2024-02-14

Apresentação.

Está disponível a ficha da disciplina.

Alguns dos recursos sugeridos:

Google Cloud: https://cloud.google.com/free/

AWS: https://aws.amazon.com/free/

Azure: https://azure.microsoft.com/free/

Firefox: https://www.mozilla.com/en-US/firefox

Firefox Developer Tools (F12): https://developer.mozilla.org/en-US/docs/Tools

PyCharm: https://www.jetbrains.com/pycharm/


Week (#--/15) of 2024-06-02

2024-06-04

Here are the final grades after continuous assessment:

N Test PRJ Final
230001738 10 12 11
230000843 10 12 11

Week (#15/15) of 2024-05-26

2024-05-31

Presentations #4/4.

2024-05-29

Presentations #3/4.

Semana (#14/15) de 2024-05-19

2024-05-24

Presentations #2/4.

2024-05-22

Written test #2, for those impeded of doing it earlier.
Regarding the written test #2, its grades have now been integrated in the written test #1 table.

Presentations #1/4.

Presentations' draw order:

Presentation #1 Grupo 6 = 200100420,210100211,200100272,210100274
Presentation #2 Grupo 13 = 210100243,200100253,210100076,210100350,210100063
Presentation #3 Grupo 11 = 200100195,200100152
Presentation #4 Grupo 9 = 170100259
Presentation #5 Grupo 7 = 150118005
Presentation #6 Grupo 14 = 230001738,230000843
Presentation #7 Grupo 0 = 200100308,220001124
Presentation #8 Grupo 8 = 210100065,70118039,210100158,210100461
Presentation #9 Grupo 12 = 180100502,190100146,200100005
Presentation #10 Grupo 1 = 200100317,200100282,200100278,200100273
Presentation #11 Grupo 4 = 190100318,190100220,210100201
Presentation #12 Grupo 2 = 200100274,200100284,200100280
Presentation #13 Grupo 5 = 150173018
Presentation #14 Grupo 10 = 210100108,190100291,210100222
Presentation #15 Grupo 3 = 200100265,170100249,210100171

Week (#13/15) of 2024-05-12

2024-05-17

Written test.

Regarding the written test 20240517, it is now avaliable: the grades (below), the statement [EN], and a partial solution [PT].

N Test
230001738 10
230000843 10

2024-05-15

Preparation for the written test.

Week (#12/15) of 2024-05-05

2024-05-10

Continuation and conclusion of the "website on a bucket" project, with:
- SSL certificate;
- static IP address;
- load balancer;
- proper DNS records;
- backend bucket.

Files made available: 20240509_website_on_a_bucket_with_static_ip_ssl_https.pdf

2024-05-08

"Website on a bucket", on a custom domain name, via DNS records editing.

Files made available: 20240509_website_on_a_bucket_with_static_ip_ssl_https.pdf [updated]

Week (#11/15) of 2024-04-28

2024-05-03

Git assisted development of a "is website down" service, using only Cloud-based resources.

Git (with branching), for example using Azure shell.

Help files: 240503_is_website_down.zip

Command for Azure deployment, to be entered at the CLI, in the folder where the development files are, assuming the availability of the Azure SDK (support to az commands):
az webapp up --runtime PYTHON:3.10 --sku F1 --logs

Here is the previous edition written test and its solution (only in PT).

Week (#10/15) of 2024-04-21

2024-04-26

Continuation and conclusion of the CI/CD exercise, using AWS Cloud 9 and github.com's build-server.

Repeating the exercise on MS Azure.

For those who prefer to have access to the already written files: cn_240424.zip

2024-04-24

Requirements, syntactic verification and testing automation.
Testing with pytest and pytest-conv. Linting with pylint.

An example of "Continuous Integration" (CI) and "Continuous Deployment" (CD):
Multicloud development with AWS Cloud 9 and Github repos + actions: build-server response to git push commands.
Authenticating Cloud 9 to Github's build server using a public RSA key.

Help files: gh_main.yml ; Makefile ; cn_240424.zip

Week (#09/15) of 2024-04-14

2024-04-19

Relational databases on the Cloud, continuation. Contrasting Cloud SQL with file-system-based storage and buckets.

Relational databases (using the MySQL engine) on AWS RDS and GCP SQL.

Creating adequate inbound traffic rules, for TCP/MySQL on the instance's configured port (defaults to 3306), on the proper "security group" (AWS RDS) or with the proper "networking > connectivity" setting (GCP SQL).

Because of the school's firewall restrictions, discussion on how to test the code locally, using a self-hosted MySQL database.

2024-04-17

Continuation.

Python library: mysql-connector-python

Cloud Web Apps with AWS RDS.

Files made available: cn_20240417.zip

Week (#08/15) of 2024-04-07

2024-04-12

Creating a "WWW searcher" app, in realtime, using Python Flask, with a TSV DB that will be read/written to the file system of a container.

"WWW searcher" app deployment on an AWS Elastic Beanstalk environment.

Files made available: cn_240412.zip

2024-04-10

Containerization in AWS Elastic Beanstalk environments. The "container" concept.

Creating custom IAM roles, with policies adequate to the software being created.

Deploying an AI image labelling app to an AWS Elastic Beanstalk environment, after having created the necessary EC2 role.

Week (#07/15) of 2024-03-31

2024-04-05

AWS IAM. AWS roles. AWS Beanstalk. AWS S3. AWS Rekognition.

Deployment of a web app and image recognition service using AWS Beanstalk + Rekognition, via uploading to S3 buckets.

Related concepts and exercises.

Files made available: v05_aws_rekognition.zip ; aws_boto3_tests.zip

2024-04-03

Authenticating local apps with Cloud APIs, via private keys.

Python Flask as a micro-services framework.

Examples on the Google Cloud, via Google Cloud SDK, using gcloud.

Exercises.

Files made available: microservices_v02.pdf ; v05_gae_vision_better.zip ; v06_strictly_local_calling_vision.zip

Week (#06/15) of 2024-03-17

2024-03-22

Friday's session will (exceptionally) be with Professor Marcin Iwanowski.

At classroom SI4, from 0900 to 1300, his session (#2/2) will be about:

Creating Azure App Service Web Apps:
- Microsoft Azure Fundamentals
- Azure App Service core concepts
- Creating an Azure App Service Web App
- Configuring and Monitoring App Service apps
- Scaling App Service apps
- Azure App Service staging environments

2024-03-20 2024-03-21 (Thursday)

Wednesday's session will (exceptionally) be on Thursday, with Professor Marcin Iwanowski.

At classroom SI4, from 0900 to 1300, his session (#1/2) will be about:

Creating Azure App Service Web Apps:
- Microsoft Azure Fundamentals
- Azure App Service core concepts
- Creating an Azure App Service Web App
- Configuring and Monitoring App Service apps
- Scaling App Service apps
- Azure App Service staging environments

Week (#05/15) of 2024-03-10

2024-03-15

Continuation and conclusion of the app deployed on GAE/PaaS, now with "vision", integrated with a ML service for image labelling.
Exercise.

Related files: v04_gae_vision.zip ; gcloud_commands_v04.txt - some useful gcloud commands ; requirements.txt - don't forget there is a new requisite.

2024-03-13

PaaS deployment, without using private keys, authorizing via IAM roles bound to the platform's entity.

Deployment on the Google App Engine (GAE). Misc. gcloud commands.
Exercise.

Related files: 20240313_gcp_app_engine_version.pdf ; 20240313_v03_gcp_no_pk_via_prj_sa_roles.zip

Week (#04/15) of 2024-03-03

2024-03-08

Running Python Flask Web apps on the cloud.

Service Accounts for IAM on the GCP.
Getting a service account private key for code authentication.
Misc. gcloud commands for creating and binding cloud objects.

Project: "upload to cloud bucket".
Dev variants: 1) local upload only; 2) from local to GCP bucket; 3) cloud version.

Deployment to GAE (Google App Engine) - considerations.

Related files: cloud_file_upload_gcp_v1.zip

2024-03-06

Cloud-based software development on AWS PaaS.

Identity and Access Management on AWS: the IAM service.

AWS Cloud Shell.

Cloud functions with AWS Lambda.

Storage with S3 buckets.

HTTP APIs with the API Gateway service.

Exercises.

Related files: lambda_function.py.txt ; 240305_aws_iam_cloudshell_lambda_s3_api_pub.pdf

Week (#03/15) of 2024-02-25

2024-03-01

Git assisted software development on PaaS, continuation.

2024-02-28

Git assisted software development on PaaS.
Playing with Google Cloud Functions.

Intro to version control with Git.

Support files:
cn_02_git_with_branching_2024_v1.pdf
20240228_cloud_functions_fun.pdf

Week (#02/15) of 2024-02-18

2024-02-23

Continuation and conclusion of the formal introduction to "Cloud Computing".

2024-02-21

Formal introduction to "Cloud Computing".

Definition. History. Context. Service models. Deployment models. Providers. Misc. considerations.

Files made available: cn_01_intro_to_cloud_computing_1_2324_v1.pdf

Week (#01/15) of 2024-02-11

2024-02-16

Case-studies of Cloud-based solutions.

Related file(s): cc_00_cloud_computing_case_studies_2024_v2.pdf

2024-02-14

Presentation.

The course's syllabus is available.

Some of the suggested resources:

Google Cloud: https://cloud.google.com/free/

AWS: https://aws.amazon.com/free/

Azure: https://azure.microsoft.com/free/

Firefox: https://www.mozilla.com/en-US/firefox

Firefox Developer Tools (F12): https://developer.mozilla.org/en-US/docs/Tools

PyCharm: https://www.jetbrains.com/pycharm/


Cloud Computing
arturmarques.com | entrada ; home| contacto; contact