Skip to content

Subcourse of NSWI152 (Cloud Application Development) course at the Faculty of Mathematics and Physics, Charles University in Prague. The subcourse, is taught by Datamole and is focused Data Intensive Systems, IoT backends & Observability.

Notifications You must be signed in to change notification settings

datamole-ai/mff-cloud-app-development

Repository files navigation

MFF/NSWI152 - Cloud Application Development - Data Intensive Systems, IoT backends & Observability

This repository contains materials for a subcourse of NSWI152 (Cloud Application Development / Vývoj cloudových aplikací) course at the Faculty of Mathematics and Physics, Charles University in Prague. The subcourse is focused Data Intensive Systems, IoT backends & Observability.

The goal of the subcourse is to:

  • introduce students to the specifics of software engineering for IoT and cloud,
  • give an example of how an IoT solution can be designed on various levels of complexity and
  • to provide an understanding of how fundamental Azure services can be used to implement IoT solutions.

There will be 5 lessons and one semestral project in total. First four lessons will be used to deliver most of the planned content and the last lesson will be dedicated for the presentation of the semestral projects.

Course Outline

  • Lesson 1 (25. 04. 2024)

    • Introduction.
    • Specifics of software engineering for IoT and cloud.
    • Overview of relevant Azure resources - SQL, Functions with HTTP trigger, ARM Templates.
    • Case study (basic solution).
    • For more details visit lesson-1.
  • Lesson 2 (02. 05. 2024)

    • Horizontal vs. vertical scalability.
    • Partitioning & replication.
    • Types, scalability and economic aspects of various storages.
    • Overview of relevant Azure resources - Storage (Tables, Blobs), App Service.
    • Case study (continued - scalable storage).
    • For more details visit lesson-2.
  • Lesson 3 (09. 05. 2024)

    • Asynchronous communication, messaging.
    • Overview of relevant Azure resources - Event Hubs, Service Bus, Functions with Event Hub trigger.
    • Case study (continued - asynchronous communication)
    • For more details visit lesson-3.
  • Lesson 4 (16. 05. 2024)

    • Observability, OpenTelemetry, Instrumentation and Troubleshooting of Cloud Services.
    • Case study (continued - observability).
    • For more details visit lesson-4.
    • Semestral project assignment. For more details visit semestral-project-assignment.md.
  • Lesson 5 (23. 05. 2024)

    • Presentations of semestral projects.
    • Course summary.

Prerequisites

Students are expected to have a basic understanding of the following topics:

  • computer programming,
  • asymptotic analysis and big O notation,
  • software engineering,
  • databases and indexes,
  • cloud computing.

During the lessons, some topics will be accommpanied with examples in C# programming language. This examples are available in this repository and following software is required to run them:

Semestral project

The semestral project will require students to create a system design for a simple IoT solution. Students are expected to deliver the design in the form of text documents and diagrams. Students can work on the assignment individually or in pairs.

Last lesson of the subcourse will be dedicated to the voluntary presentation of the semestral projects. Students who decide to present during this last lesson will have at least 15 minutes to present their solution followed-up with a discussion. During the discussion, additional questions asked and possible problems in the solution might be resolved. Authors of presented solutions for which all problems are resolved during the discussion will receive the subcourse credit right away.

Important

The recommended due date for submitting the semestral project is 31. 05. 2024. The semestral project including all feedback rounds must be completed till the end of exam period, i.e. 30. 06. 2024. When submitted by the recommended due date we guarantee to provide 1 or 2 feedback rounds if needed.

The documents and diagrams representing the solution should be stored in private GitHub repository and pushed to the branch feature/solution. After that following actions are required:

  • Create a Pull Request from feature/solution branch to main branch
  • Add Read permissions on the repository to the following GitHub users:
  • Send email to [email protected].

This process will enable smooth delivery of feedback via comments.

Formal assignment can be found in the semestral-project-assignment.md file.

Additional recommended resources

About

Subcourse of NSWI152 (Cloud Application Development) course at the Faculty of Mathematics and Physics, Charles University in Prague. The subcourse, is taught by Datamole and is focused Data Intensive Systems, IoT backends & Observability.

Resources

Stars

Watchers

Forks

Languages