Nane Kratzke

Lecture:

Cloud-native Architectures

Published: 11 Mar 2021 (latest update: 25 Mar 2021)
Short: CloudArch
Study: Computer Science/Distributed Systems, M. Sc.
Semester: SS 2021

The course Cloud-native Architectures is given for Master Computer Science students at the Lübeck University of Applied Sciences. It focuses mainly on cloud-native system design and corresponding architecture design patterns and methodologies for cloud-native applications.

This course continues the course Cloud-native Programming that provided the necessary “Everything-as-Code” programming capabilities to understand and create the design modern of cloud-native applications.

The course covers the following aspects and addresses each aspect from a practical development/programming point of view:

  • Microservice Architectures
    • Modeling loosely coupled architectures
    • Integration patterns
    • Scaling service-based architectures
    • 7 principles of microservice design
  • Serverless Architectures
    • Serverless definition
    • Strength and limitations of serverless architectures
    • Use cases for serverless architectures
  • Observable Architectures
    • Service meshes
    • Traffic management, security, observability, and resiliency features of service meshes
    • Inside Istio (Service mesh type representative)
    • Observability through monitoring (metrics, logs, tracing)
  • Designing CNA
    • Principles of Domain-Driven Design
    • Strategic design (Subdomains, Ubiquitous Language, Bounded Context, and Context Mapping)
    • Tactical design (Patterns for business logic, architectural patterns)

Closing remark: Due to the COVID19 pandemic, I will give this course in an online format composed of online lectures and online practical courses.

Material

Labs

  • Lab 08: REST (Request Response based Service Integration)
  • Lab 09: gRPC (Remote Procedure based Service Integration)
  • Lab 10: Messaging (PubSub- and Queue-based Service Integration)
  • Lab 11: Service Meshs (Traffic Management)
  • Lab 12: Service Meshs (Observability)
  • Lab 13: Monitoring (Tracing + Logging)