Microservices design and architecture workshop, 5 days

795.00  excl. VAT

Instructor: Bogdan Solga

Delivery Dates: 12– 16.04.2021 (Mon – Fri); start 10 AM

Duration: 5 days;

Standard Price: EUR 795 w/o VAT. EU registered businesses in EU countries other than Bulgaria will not be charged VAT.;

Location: TBA;

Minimum number of participants: 6

Maximum number of participants: 10

Description

Training objectives:

  • Learn an overview of the aspects and practices that should be addressed/used when planning and designing a microservices architecture;
  • Learn the architectural patterns and practices used throughout the entire development phases;
  • Learn the patterns and practices used to monitor, troubleshoot and maintain a microservices architecture;

Structure and presentations:

The training duration is 5 days, organized in 6 hours per day. The day consists of several sessions, and each session will consist in a theoretical and (where applicable) practical (hands-on) part. Depending on the presented topic, the ratio between the theoretical and the practical parts varies between ~70/30% and ~50/50%. We will have a break at each ~50 minutes. Some sessions may take more or less than 50 minutes, depending on their complexity and on the questions and discussions.

Disclaimer:

If the discussions and the hands-on sessions will prolong more than anticipated, some sessions will be postponed on the following day. The training intent is to cover the sessions thoroughly, not in a rushed mode. Please note that the specified durations include just the hands-on examples performed by the trainer. In case the participants would choose to work in a hands-on mode, the duration of the training will be ~30% longer.

Course outline:

An overview of the training sessions, organized in 6 hours/day:

Day 1

Training overview

Planning and design

  • Project life-stages overview
  • Project influences overview
  • Start with the end in mind
  • The ‘project map’ – zoomable business domain & architecture overview

○ From monoliths to microservices

  • Enterprise architectures overview
  • Migrating to microservices
  • Microservices architecture – high level overview, architectural patterns, deployment environments

○ Microservices patterns overview

○ Services decomposition

  • Decomposing an application into microservices, architectural styles
  • Defining an application’s microservices architecture
  • Designing APIs first → defining & using a schema for the business domain model

Day 2

○ Inter-process communication

  • Overview of interprocess communication in a microservices architecture
  • Communicating using the synchronous ‘Remote Procedure Invocation’ pattern
    • Using service discovery and registry
  • Communicating using the ‘Asynchronous messaging’ pattern
  • Creating an API specification for a messaging-based service API
  • Choosing a messaging technology

○ Application patterns

  • Database architecture – shared and individual
  • Maintaining data consistency – Sagas, consistency types (strong, eventual &
  • causal)
    • Sagas in depth
  • Data querying – API composition and CQRS
  • Transactional messaging patterns

Day 3

○ Testing

  • Testing overview, strategy, types of tests
  • Consumer driven contract testing
  • Unit and integration tests
  • Component tests
  • End-to-end tests
  • Load tests

○ Deployment

  • CI & CD flow – deployment pipelines and environments

Day 4

○ Application infrastructure patterns

  • Overview – security, services configurability and observability
  • Securing a microservices architecture
  • Externalized configuration – using the Spring Cloud Config Server
  • Cross cutting concerns – logging, metrics, health-checks, distributed tracing
  • Stability and reliability patterns
    • Retry
    • Circuit breaking
    • Bulkheads
    • Client-side load balancing

Day 5

○ Microservices hands-on workshop: The attendees will be invited to work in teams of 3 persons (each one with their own role), for either half or the entire 5th day. We prefer & recommend this approach, as it lets attendees work and research for a longer period, without a constant context switch from presentation to coding.

○ Training wrap-up & retrospective

About the Instructor:

Bogdan has 10 years of software development and leadership experience and 2 years of experience in the delivery of technical training, mentoring and coaching sessions on enterprise Java and microservices ecosystems. Bogdan’s current skill set comprises mentoring and training Agile teams on software architecture, development and testing, as well as improving projects based on Spring, Spring Boot and Spring Cloud / Microservices. When he is not lobbying for clean coding and software design patterns, Bogdan is either running marathons, reading behavioral economics books or traveling around the world.
Bogdan’s GitHub profile: https://github.com/bogdansolga
Bogdan’s LinkedIn profile: https://www.linkedin.com/in/bogdansolga/