Microservice Architecture

This course introduces the key concepts of Microservice Architecture (MSA), discussing its advantages, patterns, and deployment approaches. Students will explore the main MSA challenges, including decomposition, data consistency, performance, and scalability, with hands-on exercises in designing MSA solutions.

  • duration 24 hours
  • Language English
  • format Online
duration
24 hours
location
Online
Language
English
Code
ARC-015
price
€ 650 *

Available sessions

To be determined



Training for 7-8 or more people?
Customize trainings for your specific needs

Description

The Microservice Architecture course provides an in-depth look into the design and implementation of microservice-based systems, a popular approach in modern software architecture due to its flexibility and scalability. The course highlights the benefits and challenges of MSA, helping participants make informed decisions about adopting MSA based on business requirements and technical constraints. Trainees will learn about microservice decomposition, integration patterns, data handling, and the security and reliability mechanisms needed for distributed systems. Practical exercises with tools like Kubernetes, Istio, and Kafka reinforce the theory, equipping participants with essential skills to design, deploy, and manage microservices effectively.

 

The course opens with a comparison of architectural styles, covering monolith, SOA, and MSA and providing a basis for understanding why organizations adopt MSA. Trainees then delve into MSA decomposition patterns, focusing on defining the optimal microservice size and strategies for decomposing services by business domains and technical aspects.

 

Participants gain practical insights into MSA’s development and team organization. Integration patterns, including synchronous and asynchronous communication, are explored with protocols and tools like REST, gRPC, Kafka, and API Gateways. Data handling challenges in MSA are discussed, focusing on strategies for consistency, such as Event Sourcing and the SAGA pattern.

 

Later modules cover essential MSA patterns for modifiability, scalability, and reliability, including Circuit Breakers and Service Mesh. Security mechanisms like OAuth2 and JWT, as well as observability tools for monitoring and distributed tracing, are also addressed. The course concludes with a comprehensive guide to deploying MSA, highlighting CI/CD pipelines, containerization with Docker and Kubernetes, and strategies for migrating from monoliths to MSA.

 

Upon completion, participants will be able to:

  • Understand MSA principles and compare them with other architectural styles.
  • Design modular, scalable MSA systems using established decomposition patterns.
  • Implement integration and data handling strategies that support distributed microservices.
  • Apply key MSA patterns to enhance modifiability, scalability, performance, and reliability.
  • Utilize best practices for deploying and migrating to microservices, ensuring effective CI/CD management.
  • Integrate essential security and observability tools to maintain MSA systems effectively.

 

This course is balanced between theory (58%) and hands-on practice (42%), with practical exercises focused on MSA system design, integration, and deployment techniques. The practice modules include real-world scenarios for handling microservice communication, managing distributed data, and deploying resilient microservices.

After completing the course, a certificate is issued on the Luxoft Training form

Objectives

  • Provide an overview of MSA and its relationships with other system architectures
  • Provide an overview of designing MSA systems
  • Practice skills of designing MSA systems.
  • Introduce students to the most popular MSA patterns

Target Audience

  • Architects;
  • DevOps;
  • Lead Developers;
  • Development Managers.

Prerequisites

  • Experience in software system development.
  • Desirable: experience in architecture development or passing the course Main SW Architectural Practices, knowledge of DDD or passing the course Domain Driven Design

Roadmap

  1. Architectural styles (2h)
    Notion of monolith, SOA, MSA. Comparison and selection.
  2. MSA decomposition patterns (2h)
    The optimal microservice size. Splitting into services by business capabilities. Splitting into services by problem domains. Domain identification practices. Decomposition by technical and organizational aspects.
  3. Development organization for MSA (1h)
    Team organization for MSA. Code repository organization for MSA.
  4. Integration of microservices (3h)
    Communication patterns. Synchronous and asynchronous communication mechanisms. Orchestration and choreography. Main protocols and technologies (REST, gRPC, GraphQL, Kafka, RabbitMQ, etc.). Communication with external systems (API Gateway, BFF).
    Reactive systems. Event-driven architectures. Command query segregation.
  5. Data handling in MSA (3h)
    Data handling patterns. Event sourcing. Reference data in MSA. Single source of truth in MSA.
  6. Main MSA patterns (9h)
    1. Modifiability
      High coupling problem resolution. Versioning of interfaces and events. Types of contracts. Changing event model. Query organization patterns. Microservice chassis. Service mesh
    2. Scalability
      Load balancers patterns. Discovery services and patterns.
    3. Performance
      Performance patterns in MSA (Bulkheads, Graceful Degradation, etc.)
    4. Consistency
      Consistency problems in MSA. CAP theorem. Solving consistency problems. Two-phase commits. SAGA Pattern. Decreasing the consistency level.
    5. Reliability
      Fault tolerance mechanisms. Circuit Breaker, Throttling, Dependent Timeouts, and other patterns.
    6. Security
      Security mechanisms in MSA. Authentication. Authorization. Perimeter defense. Communication channel defense. Main protocols and patterns (OAUTH2, JWT, Gatekeeper, Valet Key, etc.)
    7. Testability
      Testing pyramid and quadrant. Specifics of microservice testing.
      Unit testing. Integration testing. Component testing. E2E testing. MSA testing patterns.
  1. Ease of maintenance
    Observability. Observation patterns (distributed tracing, log aggregation, etc.). Monitoring and logging. Microservice configuration. Configuration externalizing. System support.

Oleksandr Holota
  • Trainer

Oleksandr Holota

Big Data and ML Trainer


Related courses

You may also be interested in

Discover more about professional growth and skills development

contact us