'Y'

Microservice Architecture

An introduction of the main concepts of microservice architecture (MSA). We focus on the notion of microservice architecture in connection with “traditional” methods for building a system. Microservice architecture patterns are discussed as well as MSA deployment issues and methods for ensuring required qualities.
Code: ARC-015
Duration: 24 hours

Description

Microservice architecture (MSA) has recently become one of the most popular architectural approaches, because it provides numerous benefits at different stages of the product life cycle. In particular, MSA allows you to improve reaction time when it comes to business requirements.

Yet, in the process of MSA system development, architects face many challenges which often force those who are new to this field to roll back. Some of them include:

  • Errors in decomposition may make the development much more difficult
  • Performance decreases due to serious network delays
  • Distributed data storage prevents us from using transactional consistency
  • A large number of components communicating over the network reduce the system’s reliability
  • It gets difficult to ensure security

Not to mention that testing and maintenance of a distributed system requires additional efforts. This course will help you understand the advantages and disadvantages of MSA so you can decide on the feasibility of using MSA depending on business needs and team capabilities.

We cover the major challenges related to implementing microservice architecture and provide you with strategies, mechanisms, and patterns to solve them. We’ll also be looking at the most popular tools (such as Kubernetes, Istio, Histryx, Kibana, and many others) used in Microservice architecture.

Roadmap

Architectural styles
  • Notion of monolith, SOA, MSA
  • Comparison and selection

MSA decomposition patterns
  • 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

Development organization for MSA
  • Team organization for MSA
  • Code repository organization for MSA

Integration of microservices
  • 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

Data handling in MSA
  • Data handling patterns
  • Event sourcing
  • Reference data in MSA
  • Single source of truth in MSA

Main MSA patterns
  • Modifiability. High coupling problem resolution. Versioning of interfaces and events. Types of contracts. Changing event model. Query organization patterns. Microservice chassis. Service mesh
  • Scalability. Load balancers patterns. Discovery services and patterns
  • Performance. Performance patterns in MSA (Bulkheads, Graceful Degradation, etc.)
  • Consistency. Consistency problems in MSA. CAP theorem. Solving consistency problems. Two-phase commits. SAGA Pattern. Decreasing the consistency level
  • Reliability. Fault tolerance mechanisms. Circuit Breaker, Throttling, Dependent Timeouts, and other patterns
  • Security. Security mechanisms in MSA. Authentication. Authorization. Perimeter defense. Communication channel defense. Main protocols and patterns (OAUTH2, JWT, Gatekeeper, Valet Key, etc.)
  • Testability. Testing pyramid and quadrant. Specifics of microservice testing. Unit testing. Integration testing. Component testing. E2E testing. MSA testing patterns.
  • Ease of maintenance. Observability. Observation patterns (distributed tracing, log aggregation, etc.). Monitoring and logging. Microservice configuration. Configuration externalizing. System support
  • Microservice deployment. Deployment pipeline pattern. Deployment patterns. Using Docker and Kubernetes. Using ISTIO mesh. Serverless deployment. Deployment strategies (blue-green, canary, etc.)
  • Strategies of migration from monolith to MSA. Strategies of shifting from monolith to microservices. Strangler monolith. Strangle patterns. Microservice link to monolith. Database migration

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

  • Software Architects
  • DevOps professionals
  • Lead Developers
  • Development Managers

Prerequisites



Trainer in Online
Radu Stefanescu Senior Java Developer
Radu is an expert developer and has been working in the tech industry for more than 10 years. During the course of his career he has held several roles ranging from Senior Consultant and Development Team Lead to Senior Java Developer. He has worked with various technologies such as Java 8, Spring/SpringBoot/SpringCloud, RESTful API, RxJava, Java for Android, MongoDB, Python, Tensorflow and many more.

His passion for teaching was born during the time he spent as a Team Lead mentoring his colleagues. His activities in teaching include not only training facilitation but also being involved in organizations such as TedXBucharest and Code for Romania.

The experience he has gained in all this time makes him uniquely qualified to deliver edge cases and best practices for various programming fields such as: Java/C++ Development, Database Programming, Design Patterns and Clean Code.
Schedule in Online Prices
Course is scheduled in: Online
6.09.2021 - 13.09.2021
Time: 09:30-13:30
City: Online
Duration: 24 hours
Language: English
Trainer
Radu Stefanescu
Senior Java Developer
-10% €360
€324
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
6.09.2021 - 13.09.2021
Time: 09:30-13:30
City: Online
Duration: 24 hours
Language: English
Trainer
Radu Stefanescu
Senior Java Developer
-10% €360
€324
Register for the next course
+
Registering in advance ensures you have priority. We’ll notify you when we schedule the next course on this topic
Online €360
Bucharest €360
Krakow €360
Wroclaw €360

Invoices for the course will be issued in local currency. All fees above can change according to training location and delivery mode and are subject to change while scheduling. Price does not include VAT.

Courses you may be interested in:

Sign up

Choose dates
First Name*
Last Name*
Company
Email*
Phone
Your Comment
Still have questions?
Connect with us
Thank you.
Your request has been received.
Thank you!
The form has been submitted successfully.