Microservices Architecture Course

Learn how to evolve enterprise software projects from a Monolithic to a Microservices Architecture

Integrate multiple architectural patterns and practices for designing reliable, scalable and maintainable applications, in any environment

Microservices Architecture

Overview

The Microservices Architecture is a modern enterprise software architectural pattern, characterized by high maintainability, scalability and resilience. It has been implemented by many of the largest and most successful companies in the world - including Netflix, Amazon, Uber, and eBay.

Our Microservices Architecture course provides the knowledge required to understand the main enterprise software project architectures (Monolithic and Microservices), the benefits and drawbacks of each model and the processes and patterns used to migrate from a Monolithic to a Microservices Architecture.

Objectives

The main objectives of the Microservices Architecture course are:

  • Learning an overview of the aspects and recommended practices for planning, designing and architecting a Microservices Architecture
  • Learning the architectural patterns and practices used throughout the entire transition and development phases
  • Learning the patterns and practices used to monitor, troubleshoot and maintain a Microservices Architecture

Duration and Schedule

The standard course duration is 5 days, with 6 or 7 hours of teaching each day. If possible, we highly recommend a longer duration, to allow more time for customized hands-on work (based on the project needs), discussions, and analysis.

The scheduling per day:

  • Day 1: Microservices and Monolithic Architectures overviews, migrating from a Monolithic Architecture
  • Days 2-4: The Microservices Architecture development and infrastructure patterns
  • Day 5+: Hands-on workshop, on the most useful topics chosen by the participants

The participants can choose to have hands-on sessions between each topic they find especially useful.

Sessions scheduling:

  • Each topic will be presented in one or more hours, depending on its complexity, the resulting Q&A discussions and the participants’ choice of hands-on work
  • We will take a break approximately every 50 minutes. Depending on their complexity and discussions, some sessions may be postponed for the next day. We intend to present each topic very thoroughly - and not rush through or skim over essential material.

Course Schedule

Day 1

Enterprise architectures overview, Microservices vs Monolithic architecture

  • From Monoliths to Microservices
  • Microservices architectural patterns
  • Migrating to a Microservices Architecture

Day 2

Inter-Process Communication

  • Overview of the Inter-Process Communication in a Microservices Architecture
  • Synchronous and asynchronous communication - patterns, technologies, trade-offs

Day 3

Application patterns

  • Database architecture - shared and individual
  • CAP theorem, consistency types (strong, eventual & causal)
  • Maintaining data consistency
  • Data querying
  • Transactional messaging patterns

Day 4

Testing and application infrastructure patterns

  • Testing, from unit to end-to-end testing
  • Application infrastructure patterns
  • Deployment patterns

Day 5

Hands-on workshop, on the topics chosen by the participants

  • Customized hands-on workshop
  • Course feedback

Target Audience

The course is designed both for participants who are new to the concept of Microservices and those who want to improve their knowledge and skills. The main targeted audience, in terms of job role and profile:

  • Managers & Business Professionals - Project Managers, Product Owners, Scrum Masters, Solution Designers and Business Analysts
    • Attendance is highly recommended on the first day in particular, when we present the differences and tradeoffs between the Monolithic and the Microservices Architectures
  • Technical Roles - Software and Solution Architects, Tech Leads, Developers, QAs

Course participants will want to:

  • Understand a high- and mid-level overview of the Microservices Architecture - alternatives, patterns, challenges, trade-offs, implementation and integration patterns
  • Understand the process of migrating a Monolithic application to a Microservices Architecture
  • Understand the multiple architectural patterns that can be used to design, architect and build a maintainable, reliable and scalable Microservices Architecture

Understanding Your Needs

Contact us for a short discussion, to understand your needs and timeline

Prerequisites

Here are the minimal prerequisites required to attend the Microservices Architecture course:

  • Basic enterprise software development literacy: familiarity with basic enterprise software development concepts and practices; no specific programming or technical skills are required
  • Understanding of basic programming concepts
    • Needed to understand the multiple architectural patterns and their trade-offs
    • The course is not addressed to a particular programming language, with examples presented in Java, C# and Python
  • Curiosity about technology: an interest in learning how the Microservices Architecture improves the maintainability, scalability, deployability and resilience of their applications
  • Willingness to learn: openness to exploring new concepts, architectural patterns and their trade-offs

Testimonials

We really enjoyed Bogdan's training sessions. It's always cool to learn and have fun while doing them. He is very patient and always prepared to offer the best solution/explanation for any problem/question. ... I also love his ability to extend the context for each chapter, offering many smart hooks to integrate the concept in a broader picture, which makes it all easier to understand.

Sorin, Crossover

Bogdan is our coach who helped shape our vision to use Java and Spring/SpringBoot in today's marketplace. He is highly skilled, extremely passionate and has a strong work ethic. With his unique and practical approach, he taught us from technology fundamentals on up to software design and best practices. He is continuously helping us progress on a growing path in software development. I enjoy working with Bogdan very much and I consider him a friend.

Andrei, Óce

When we approached Bogdan for a Java training, our goal was to up-skill our team of PL/SQL developers in order to become proficient in Java. [...] Bogdan has vast experience in the topics and very good communication and presentation skills. The pace was very good and he was very thorough in responding all questions, providing lots of related documentation for further study.

Radu, Nokia

Working with Bogdan is really inspiring and I always learn something new from his training and coaching sessions. All the training sessions are well-structured, use examples and employ hands-on components. What I enjoyed most during his training sessions is that they made me eager to learn more and to extend my knowledge. And it's not hard to do, thanks to the documentation that Bogdan provides for further reading.

Corina, Cerner

For a year and a half I've participated in various courses held by Bogdan, from Java 8, Spring, Maven to Docker. He has a good methodology, a strong background, he keeps you interested and he is open for discussions even after the training sessions, which is very important. Usually we have more questions after we start using the knowledge from the courses.

Ion, Sociéte Générale

I have participated in several training sessions held by Bogdan, including Java 8, Maven, CI & CD, Git and Spring. Every time we were thrilled to discover the information and best practices described, especially as he exemplified them with many hands-on examples. Furthermore, there were a few things present in each session that defined Bogdan's approach, namely, professionalism, vast knowledge and experience, innovative solutions, a great personality and a sense of humor.

Lavinia, Elysian

I am the self-learning type; I usually get bored at every course/training, very quickly. With this course, it was not the case. I payed attention ~95% of the time, which is very rare for me.

Ionuț, Nokia

I was pleasantly surprised by this course, being probably much more than other courses that can be found online. The presentation is very good, the materials are well structured and prepared, with many examples. Moreover, I consider the context information to be welcome, some of it was not very "settled" for me, such as the information about the application architecture, etc. Another plus regarding the training and the trainer is the fact that I managed to pay attention approximately 99% of the time, which I find amazing.

Dorina, ANAF

Contact Us

Please send us a message about any inquiry you may have

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.