Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add contents for the Cloud Computing course #189

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ansarrafique
Copy link

This PR introduces a new Cloud Computing course covering key concepts, practical applications, and hands-on examples. It includes a structured outline and exercises focused on AWS services like EC2, S3, DynamoDB, and Elastic Beanstalk, aimed at helping learners build skills in cloud technologies.

Copy link
Contributor

@abhidg abhidg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @ansarrafique, thanks for starting off the cloud computing section! Could you make some of the text more concise, and add dependency linkages using dependsOn (see https://github.com/UNIVERSE-HPC/course-material/blob/main/CONTRIBUTING.md#section-metadata), at the moment it less clear which section follows what.

Courses also usually contain challenges and solutions, to make the course more interactive. These could test comprehension of introduced concepts, ask for a code snippet to do something, etc. It would be good to have some of them to align with other courses.


## Cloud Computing: A High-Level Overview

Cloud computing refers to the delivery of computing services —including servers, storage, databases, networking, software, analytics, and intelligence— over the Internet ("the cloud") to offer faster innovation, flexible resources, and economies of scale. It enables organizations to access resources without the need to own or manage physical infrastructure, allowing them to innovate rapidly, adapt to changing workloads, and grow efficiently while minimizing costs. By leveraging the cloud, organizations can focus more on delivering value and less on managing IT infrastructure, enhancing their ability to compete in an increasingly digital world.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

insert space on either side of hyphen

@@ -0,0 +1,76 @@
---
name: Introduction to Cloud Computing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would generally shorten this introduction section. Benefits/drawbacks of cloud are well known at this point, and having a couple of paragraphs should be enough.


1. Clone the repository from GitHub:
```bash
git clone https://github.com/Oxford-Research-Cloud-Competency-Centre/image-processing-app.git
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a license to the repo?


### Prerequisites

In addition to the prerequisites covered in **Integrating AWS Services with the Local Application** (e.g., Git, Python, Pip, Docker, AWS CLI), you will also need to install and configure the **AWS Elastic Beanstalk CLI** (`awsebcli`).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add link to the markdown file here

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use h2 level here


In addition to the prerequisites covered in **Integrating AWS Services with the Local Application** (e.g., Git, Python, Pip, Docker, AWS CLI), you will also need to install and configure the **AWS Elastic Beanstalk CLI** (`awsebcli`).

> **Note:** Before setting up Elastic Beanstalk, make sure that the **AWS CLI** is installed and configured with valid credentials. This includes your **AWS Access Key ID**, **AWS Secret Access Key**, and **Default region name**. These credentials are essential for interacting with AWS services, including Elastic Beanstalk.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

learningOutcomes:
---

### Image Processing Application Using S3 and DynamoDB
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use h2/h3 hierarchy instead of just h3s


2. You will be prompted to enter the following information:

- **AWS Access Key ID:** This is a key that allows you to access AWS services. You can obtain it by logging into the AWS Management Console, navigating to Identity and Access Management (IAM), and creating a new user with programmatic access. Once created, the Access Key ID will be provided to you.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a screenshot here?

To verify that the AWS CLI is correctly configured, try listing your S3 buckets:

```bash
aws s3 ls
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any buckets created at this point?


- **Object Ownership** defines the access control behavior for objects uploaded to the bucket. By default, Amazon disables Access Control Lists (ACLs), which is the recommended approach for most use cases as it simplifies permissions management. Disabling ACLs ensures that the bucket owner automatically owns all objects, even if they are uploaded by different AWS accounts.

#### Block Public Access:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This information is repeated in app_migrate_to_aws.md. I would keep info in one of them and link to that.


The course was structured into three main parts:

1. **Local Application Setup**: We started with an **Application Use Case Overview** of a local image processing application built with **Flask** to handle the web interface and **SQLite** to store metadata locally. This setup introduced you to fundamental processes like file handling, image processing, and metadata management in a Python-based application.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add links to course parts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants