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

Atenção: sessões seguintes (2 semanas finais) reservadas para apresentação de trabalhos


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 [em breve], e uma solução parcial [em breve].

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  
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/


Attention: The remaining sessions (final 2 weeks) are reserved for students' presentations.


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

2024-05-17

Written test.

Regarding the written test 20240517, the grades are available, the statement [soon], and a partial solution [soon].

N Test
230001738 test 2024-05-22
230000843 10

2024-05-15

Preparação para o teste escrito.

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