Development and Testing of Microservice Systems

Practical Course (Bachelor's and Master's)

Description

Microservices architecture has become a cornerstone in contemporary software development, offering agility, scalability, and resilience. This course covers the entire spectrum of microservice development, from design and implementation to testing and documentation.
Through hands-on experience, participants will learn to convert a real world system into a robust microservice architecture.
The students will implement microservices, design APIs, manage data consistency, and facilitate communication between services using modern technologies and frameworks such as Spring Boot, Docker, RabbitMQ, etc.
While microservices bring numerous benefits, they also introduce unique challenges in the realm of testing. Unlike monolithic applications, microservices involve a distributed architecture, a variety of tools and frameworks, and complex infrastructure, making testing more challenging. Students will learn to conduct thorough testing using frameworks like JUnit and TestContainers, and develop comprehensive documentation.
 

Key Objectives

By the end of this course, participants will be able to:

  • Understand the principles and benefits of microservice architecture.
  • Effectively convert an existing, real world system into a microservice system.
  • Implement, test, and deploy microservices with a focus on high-quality code and structured development processes.
  • Develop comprehensive documentation to obtain high maintainability and testability.
Prerequisites
  • Experience with version control (Git)
  • Good programming skills in Java, C# or Typescript
  • Some experience in testing monolithic or client-server applications (e.g. through university course, personal project, working student) is recommended
  • Experience with Docker and containerization is beneficial but not required.
  • Motivation to delve into cutting edge tools and frameworks (Motivational Statement)

 

Preliminary Meeting

The preliminary Meeting takes place on Monday, 1. July 15:30.

Link: https://tum-conf.zoom-x.de/j/65805904008?pwd=jCCJJtk0YSYlHMRTtubUF0y07lfop9.1

The slides will be available here afterwards.

 

Weekly Meeting

In the beginning we will have weekly in-person meetings on Thursdays 14:00-16:00.

Those meetings are mandatory for passing the practical course.

Later, we will have weekly meetings within each group that can be scheduled individually.

 

Registration

  1. Register for this course on the TUM Matching Platform (see the deadlines here).
  2. Submit your application via our own registration form which will be opened after the preliminary meeting and will be open until July 16, 23:59.
  3. Note: We will only prioritize students who send in an application including motivational statement, grade report, and CV

Motivational Statement:

Please address...

  1. Why are you interested in this course?
  2. What kind of skills do you have that will be beneficial in this course (technical knowledge, soft skills, experience, etc.)?
  3. Which skills are you most excited about to acquire in this course?