General information
Course type | AMUPIE |
Module title | Cloud computing fundamentals |
Language | English |
Module lecturer | dr Tomasz Kowalski |
Lecturer's email | kowalski@amu.edu.pl |
Lecturer position | assistant professor |
Faculty | Faculty of Mathematics and Computer Science |
Semester | 2024/2025 (summer) |
Duration | 60 |
ECTS | 5 |
USOS code | 06-DCCFUW0-E |
Timetable
The bulk of this course will be allocated to stages 3-6 of the syllabus. It is estimated that each will take three weeks to complete at 4 course hours per week.
The timeline will be adapted to suit participants' interests and abilities, with a minimum of one week for each of stages 7 and 8.
Classes are initially scheduled for Fridays from 12:00-15:00 (CET). Let's meet in the lecture room A2-20 or, even better, in the computer lab A1-14 in the Collegium Mathematicum.
Module aim (aims)
Suppose you had an innovative idea for a digital product or service. Using just your own laptop, you have managed to build a proof of concept solution. And now you might be wondering - how to turn this demo into a full-scale product?
You may have heard about the public cloud and its associated benefits e.g. scalability, reliability, cost optimization, resource pooling, easy setup and maintenance. But what does this actually mean and how will it affect your solution?
This course is designed to give you an overview of cloud technology, starting with the basics and moving on to more advanced concepts, enabling you to design and build products and services using cloud resources.
We shall strive to be vendor-independent and examine the services offered by all major cloud providers.
The ultimate goal of this course is to provide you with a comprehensive understanding of the essential elements, principles and technologies that underpin cloud architecture.
Pre-requisites in terms of knowledge, skills and social competences (where relevant)
This course has been designed with computer science students in mind. Some programming and computer networking skills are required.
You should be reasonably familiar with how web applications work. The cloud is clearly more about the back end, so understanding how web applications are built in this regard would help you better understand where and how you could benefit from integrating cloud services.
Being a Linux user would be helpful. If you are not, you may not be able to use some of the more advanced features of the cloud. You do not have to be a Linux enthusiast, but at the very least you should not be helpless when interacting with a text terminal.
Finally - there is always a free tier, but to set up an account with a public provider you will need a credit card, so make sure you have one. Please don't be concerned about costs - during this course we will be working with cloud services that are available at no extra cost.
Syllabus
1. Fundamentals of the cloud
Technical requirements. Some history. Models (IaaS, PaaS, SaaS). Cloud architecture.
2. Providers and components
Choosing a service provider - a key decision. Unique needs of startups. Things to consider. Pitfalls and how to avoid them.
3. Compute services
Options and pricing. VMs, containers, serverless. Load balancing. Auto-scaling.
4. Storage services
Options and pricing. Block, filesystem and object storage. Ways to access storage.
5. Networking services
Options and pricing. Private networks, routing considerations, CDNs.
6. Database services
Options and pricing. Managed relational and nosql DBMS. Caching and warehousing.
7. Data analytics services
Options and pricing. Components for big data pipelines.
8. Machine learning services
Options and pricing. Components for ML pipelines.
Reading list
There is a lot of material out there to help you master the cloud. It is quite easy to find the right information just by using your favourite search engine, entering the name of the provider and the issue you are interested in. The only disadvantage is that you need to know quite well what you are looking for, so you need to have a good idea of what is even possibile and which tools will meet your needs. If that is the case you will easly find a substantial number of tutorials (including videos) and extracts from the vendors' technical documentation.
The largest cloud providers offer excellent reference material, but it can be tough reading for beginners.
There are quite a few textbooks available. Please go to your favourite publisher's website and look for anything with "cloud" in the title. There are some that look at the cloud from a programmer's perspective, some that focus more on operations, and there are even certification guides. Pick the one that resonates most with you.
If you are looking for single textbook that is most compatible with this course, please consider "The Self-Taught Cloud Computing Engineer" by Dr. Logan Song. It is a recent one, published September 2023 by Packt, ISBN: 9781805123705.