Microservice architecture - course 46,900 rub. from IBS Training Center, training 24 hours, Date November 27, 2023.
Miscellaneous / / November 27, 2023
Microservice architecture (MSA) has relatively recently gained fame as the most popular architectural approach. Its use provides many benefits at various stages of the product life cycle. In particular, MCA allows for faster response times to business requirements, which often makes it superior to other architectural styles.
However, in the process of developing MCA systems, the architect faces many challenges, many of which cause beginners to roll back.
Decomposition errors can lead to a serious increase in development complexity. Performance suffers due to insurmountable network latency. Distributed data storage does not allow for transactional consistency. A large number of components interacting over the network reduces reliability. Difficult to ensure security. In addition, testing and maintenance of a distributed system requires a separate discussion.
This course will show the advantages and disadvantages of using MCA. Will help you make an informed decision about the applicability of ISA depending on the needs of the business and the capabilities of the team. The course examines the main issues associated with implementing a microservice architecture. Strategies, mechanisms, patterns that solve the problems stated above. For each problem discussed, the most common tools will be presented (such as Kubernetes, Istio, Histryx, Kibana, and many others).
Practical exercises will allow you to acquire the skill of independent design of MCA systems.
Topics covered:
1. Architectural styles (2 hours)
Concepts of monolith, SOA, MSA.
Comparison and rationale for choice.
2. MSA Decomposition Patterns (2 hours)
Optimal microservice size;
Breakdown of services by business opportunity;
Breakdown of services by problem areas;
Practices for defining subject areas;
Decomposition according to technical and organizational aspects.
3. Organization of development for MSA (1 hour)
Organization of teams under MSA;
Organization of a code repository under MSA.
4. Microservices integration (3 hours)
Patterns of interaction;
Synchronous and asynchronous interaction mechanisms;
Orchestration and choreography;
Basic protocols and technologies (REST, gRPC, GraphQL, Kafka, RabbitMQ, etc.);
Interaction with external systems (API Gateway, BFF);
Reactive systems;
Event driven architectures;
Separation of command and request.
5. Organization of work with data in MSA (3 hours)
Patterns of working with data;
Generating events;
Reference data in MSA;
Single source of truth (Source of Truth) in MSA.
6. Basic ISA templates (9 hours)
Modifiability.
Solving the problem of high connectivity. Versioning of interfaces and events. Types of contracts. Changes in the event model. Patterns for organizing requests. Microservice chassis. Service Mesh.
Scalability.
Patterns for constructing balancers. Detection services and patterns for working with them.
Performance.
Performance patterns in MSA (overkill, graceful degradation, etc.).
Consistency.
Consistency issues in MSA. CAP theorem. Solutions to consistency problems. Two-phase commits. SAGA pattern. Reduced consistency level.
Reliability.
Fault tolerance mechanisms. Circuit Breaker patterns, throttling, dependent timeouts, etc.
Safety.
Security Mechanisms in MSA. Authentication. Authorization. Perimeter protection. Protection of communication channels. Basic protocols and patterns (OAUTH2, JWT, gatekeeper, valet key, etc.).
Testability.
Pyramid and square testing. Features of testing microservices.
Unit testing. Integration testing. Component testing. E2E testing. MSA testing patterns.
Ease of maintenance.
Observability. Monitoring patterns (distributed tracing, log aggregation). Monitoring and logging. Configuring microservices. Externalizing the configuration. System support.
7. Deploying microservices (2 hours)
“Deployment pipeline” pattern;
Deployment patterns;
Using Docker and Kubernetes technologies;
Using the ISTIO grid;
Serverless deployment;
Deployment strategies (blue-green, canary, etc.).
8. Migration strategies from monolith to MSA (2 hours)
Strategies for migrating from monolith to microservices;
Strangler monolith;
Strangulation patterns;
Communication between a microservice and a monolith;
Database migration.