Topic outline

  • Overview

    The course introduces learners to the principles of building scalable web applications, focusing on recent advances in both client- and server-side development as well as on platforms and hosting solutions. Architectural patterns and their fit and need for different types of web applications are also considered.

    To succeed in the course, knowledge and skills from Web Software Development (CS-C3170) or equivalent are required.

    Lectures

    Weekly lectures on Mondays from 10:15 to 12:00 at T4, CS Building.

    Course materials

    The course materials are available at https://fitech101.aalto.fi/designing-and-building-scalable-web-applications/. Lecture slides and examples from the lectures will be posted here on MyCourses.

    (Tentative) high-level structure of the course

    Week 1 (starting 23.10.) -- lecture slides

    • "The big picture"
    • Web software development (rehearsal)
    • Defining scalability
    • Measuring performance of web applications
    • Servers and load balancing


    Week 2 (starting 30.10.) -- lecture slides

    • Caching
    • Client-side development
    • Rendering approaches: Server-side rendering, client-side rendering, hybrid approaches
    • Demo: Svelte, Astro, Tailwind


    Week 3 (starting 6.11.) -- lecture slides

    • Client-side development (contd.)
    • Event-driven architecture
    • Real-time communication
    • Project I outline


    Week 4 (starting 13.11.) -- lecture slides

    • Content-Delivery Networks
    • Data and Scalability
    • Container Orchestration and Kubernetes


    Week 5 (starting 20.11.) -- lecture slides

    • Development with Kubernetes
    • Cloud Computing
    • Google Cloud deployment Demo
    • Scaling with Kubernetes
    • Monitoring Applications


    Week 6 (starting 27.11.) -- lecture slides

    • Application Archetypes
    • Serverless Computing
    • Underlying Architectural Patterns
    • Beyond Software Scalability
    • Project II outline


    Week 7 (starting 4.12.) -- no formal lecture -- there's support for coursework during the lecture time

    Grading and deadlines

    Course grading is outlined at https://fitech101.aalto.fi/designing-and-building-scalable-web-applications/dab-01-introduction-and-tooling/2-registration-and-grading/.

    There are no explicit deadlines in the course -- you can work on it at your own pace.

    The course is graded periodically based on the grading schedule at https://fitech101.aalto.fi/grading-schedule. If you wish to receive the grade by the end of this year, request grading by 18.12.2023. Options for requesting grading next spring will also be made available.

    Updates to material

    The next larger update to the course materials is planned for Spring 2024 (late March, early April).