Microservice Architectures

Master of Science in Data Science and Artificial Intelligence

Summer Semester 2024

 This course provides an in-depth, hands-on exploration of microservice architectures, with a focus on practical implementation for Data Science and AI applications. Students will engage in weekly workshop-style assignments, where they will build and deploy microservices, learning key concepts and tools in the process. 

Key Topics:

  1. Introduction to Microservice Architectures

    • Overview of monolithic vs. microservice architectures.
    • Benefits and challenges of microservices in modern software development.
  2. Hands-on Assignment: Developing Microservices for Real Estate Use Case

    • Students will design and implement microservices for a real-world scenario (realtor and lead management system) to gain practical experience.
  3. Using Flask (Python) for Microservices

    • Learn how to use Flask to create lightweight, scalable microservices.
    • Build RESTful APIs for microservices communication.
  4. MongoDB as a Data Storage Solution (Cloud-based)

    • Introduction to using MongoDB as a NoSQL database in microservice environments.
    • Hands-on experience with cloud-hosted MongoDB for scalable data storage.
  5. Docker and Google Cloud Run Deployment

    • Containerization of microservices using Docker.
    • Deploy microservices on Google Cloud Run for scalable, managed serverless operations.
  6. API Gateway Communication Pattern

    • Explore API Gateway patterns to manage and route microservice requests.
    • Hands-on implementation of API Gateway in microservice architecture.
  7. Caching and Authentication

    • Use Redis for caching to improve the performance of microservices.
    • Implement JWT (JSON Web Tokens) for secure authentication across services.
  8. Microservices Broker Pattern

    • Introduction to the message broker pattern for microservices communication.
    • Use message brokers to decouple services and manage asynchronous communication.
  9. Command Query Responsibility Segregation (CQRS)

    • Learn how CQRS can be used in microservices to separate read and write operations.
    • Hands-on application of CQRS in a microservice architecture.
  10. Capstone: Developing and Deploying a Full Microservice System

    • Final hands-on assignment where students will develop and deploy a full microservice system using API Gateway and Broker patterns on Google Cloud.

By the end of the course, students will have practical experience in designing, building, and deploying microservices using industry-standard tools and technologies, preparing them to apply these skills to real-world data science and AI projects. 

References

Microservice Patterns, Chris Richardson, Manning, 2019

Python Flask Documentation

MongoDB Documentation

Google Cloud Run Documentation

Google PubSub Documentation