This version of the course guide is provisional until the period for editing the new course guides ends.

Logo UAB

Cloud App Development and Management

Code: 44735 ECTS Credits: 6
2024/2025
Degree Type Year
4318303 Reseach and Innovation in Computer Based Science and Engineering OT 0

Contact

Name:
Antonio Miguel Espinosa Morales
Email:
antoniomiguel.espinosa@uab.cat

Teachers

Remo Lucio Suppi Boldrito
Pedro Luis Pons Pons

Teaching groups languages

You can view this information at the end of this document.


Prerequisites

It is recommended to have a basic knowledge of programming languages like Python and basic skills of any Linux distribution.


Objectives and Contextualisation

The objectives of the module:

-Solve data analysis problems with open source tools

-Understand tool data management limitations and learn criteria to select suitable tools for a specific problem

-Learn data query methodologies related to each technology

-Use Cloud Computing providers to solve data analysis problems

-Apply a data analysis methodology to solve practical problems

By the end of the lectures and practical labs students should have enough knowledge to understand the requirements of typical large data analysis problems in industrial contexts. They should be able to pick some combination of tools and design a solution for a given large data analysis problem. This subject is oriented to develop data problem solving skills. Languages, tools and techniques are described in a data analysis context and students will solve a list of data problems applying the technology described at every chapter.


Learning Outcomes

  1. CA14 (Competence) Graduates will be able to design reliable, efficient and secure data processing and storage systems, using cloud computing.
  2. CA15 (Competence) Graduates will be able to develop innovative research projects in the face of new scientific and engineering challenges using cloud computing.
  3. KA19 (Knowledge) Describe architectural principles in order to explain cloud-based applications and organise their services.
  4. KA20 (Knowledge) Identify the main services offered by cloud computing.
  5. SA24 (Skill) Develop computing systems based on cloud resources.
  6. SA25 (Skill) Develop a cloud application architecture for private or public services whilst managing resources, costs and security requirements.
  7. SA26 (Skill) Evaluate a prototype cloud application including its cost, resources, security and maintenance requirements over time.

Content

1-Introduction to Cloud Computing: benefits, challenges and risks.

2-Cloud Computing Models: Infrastructure / Platform / Software as a Service.

3-Virtual private cloud and node network configuration

4-Basic computation services

5-Basic storage services

6-Elasticity and scalability

7-Cost evaluation: TCO


Activities and Methodology

Title Hours ECTS Learning Outcomes
Type: Directed      
Lab 26 1.04 CA15, SA24, SA25, SA26, CA15
Theory 38 1.52 KA19, KA20, SA26, KA19
Type: Autonomous      
Lab development 62 2.48 CA15, SA24, SA25, SA26, CA15

The methodology will combine classroom work and problem solving in laboratory sessions.

Lab sessions will be scheduled at the beginning of the course and will use the same Teams space for the development of all practical labs. Students will use a local Linux environment: native, using local or remote Cloud Computing services.

Annotation: Within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.


Assessment

Continous Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
Computational lab 40% 6 0.24 CA14, CA15, KA19, KA20, SA24, SA25, SA26
Elasticity lab 20% 6 0.24 CA14, CA15, KA19, KA20, SA24, SA25, SA26
TCO lab 20% 6 0.24 CA14, CA15, KA19, KA20, SA24, SA25, SA26
VPC lab 20% 6 0.24 CA14, CA15, KA19, KA20, SA24, SA25, SA26

Evaluation will come out from the combination of work developed in the lab sessions.


Bibliography

A. Wittig, M. Wittig. "Amazon Web Services in Action", Manning, 2nd Edition, 2018.

G. Coulouris, J. Dollimore and T. Kinderg, "Distributed Systems. Concepts and design ", Addison-Wesley, 5th edition, 2012.

Bell, Charles; Kindahl, Mats; Thalmann, Lars. "MySQL High Availability". O'Reilly, 2010.

Chang, Fay, et al. "Bigtable: A Distributed Storage System for Structured Data." OSDI, 2006

Dewitt, David, and Jim Gray. "Parallel Database Systems: The Future of High Performance Database Processing." Communications of the ACM 35, no. 6 (1992): 85-98

Schwartz, Baron; Zaitsev, Peter; Tkachenko, Vadim; Zawodny, Jeremy D.; Lentz, Arjen; Balling, Derek J. "High Performance MySQL", O'Reilly, 2008.

Seyed M. M. "Saied" Tahaghoghi and Hugh E. Williams. Learning MySQL. O’Reilly, 2006

Nathan Haines. “Beginning Ubuntu for Windows and Mac Users”. Apress 2015. recurs electrònic a la biblioteca de la UAB

William E. Shotts. “The Linux Command Line”. Second Internet Edition. 2013. http://linuxcommand.org/tlcl.php

Dan C. Marinescu. “Cloud Computing. Theory and Practice”. Morgan-Kaufmann. 2018.

R. Buyya, R. N. Calheiros, A. V. Dastjerdi. “Big data. Principles and paradigms”. Morgan-Kaufmann. 2016.


Software

Students are requested to use latest version of Ubuntu Linux. During the first lab sessions students who need it will receive a configuration tutorial of Windows 11 WSL


Language list

Name Group Language Semester Turn
(PLABm) Practical laboratories (master) 1 English second semester morning-mixed
(TEm) Theory (master) 1 English second semester morning-mixed