Learning objectives
The purpose of the course is to provide students with the tools and skills to design and develop cloud-native applications based on complex microservices architectures.
Prerequisites
None
Course unit content
Part I – Evolution of Enterprise IT Systems
Part II – Microservices Architecture
Part III – Patterns
Part IV – Development in .NET
Part V – Data Access (Entity Framework)
Part VI – Web APIs (JSON, REST, ..)
Part VII – Containers and K8S
Part VIII – Communication between Microservices (Kafka, gRPC..)
Part IX – Security, Authentication and Authorization
Full programme
Part I – Evolution of Enterprise IT Systems
Overview of the evolution of IT systems specifically on the topics of monolithic enterprise application architectural models, web 2.0 and cloud-native.
Part II – Microservices Architecture
Focus on microservices: characteristics, scaling, and data sovereignty. Advantages and disadvantages in adopting this type of architecture.
Part III – Patterns
Architectural patterns for designing microservices-based applications. Challenges and points of attention. Data replication vs. synchronous communication. In-depth exploration of patterns such as Domain-Driven Design (DDD) and Circuit Breaker. Distributed transactions using the SAGA pattern.
Part IV – Development in .NET
The .NET development framework and the C# language. Object-oriented programming, generic types, dependency injection. ASP.NET Core and web services.
Part V – Data Access (Entity Framework)
.NET and interaction with relational databases. ADO.NET and basic operations and transactions. Introduction to ORM (Object-Relational Mapping) and in-depth exploration of Entity Framework.
Part VI – Web APIs (JSON, REST, ..)
Introduction to web APIs. SOAP and REST web services. Object serialization using JSON. ASP.NET Core and web APIs, HTTP methods (GET, POST, PUT, DELETE).
Part VII – Containers and K8S
Microservices and container architectures. Introduction to Docker. ASP.NET applications in a container context. Kubernetes and container orchestration topics. Deployment, PODs and YAML files for configuration.
Part VIII – Communication between Microservices (Kafka, gRPC..)
Microservices and their communication for exchange of information. Synchronous communication using gRPC and asynchronous communication through the use of the Kafka message bus.
Part IX – Security, Authentication and Authorization
Web API and security. In-depth exploration of making methods secure through authorization. In-depth discussions on client authentication and authorization.
Bibliography
Teaching material:
course slides
Teaching methods
Standard classes with laboratory
Assessment methods and criteria
Assessment of learning will be conducted through a final project, which will consist in the development of an application that utilizes all the technologies/techniques learned during the course. The project will be discussed during the exam with the instructor
Other information
- - -
2030 agenda goals for sustainable development
- - -