4.4 sur 5
4.4

Domain Driven Design & Microservices pour les Architectes

Apprenez à créer des applications de microservices en commençant par l'analyse commerciale et la conception axée sur le domaine
Conception axée sur le domaine
Architecture d'applications de microservices
Modèles de conception pour la construction de microservices et de systèmes distribués
Architecture événementielle
Développement d'API pour les microservices
Event Storming
Développer une analyse de rentabilisation pour les microservices

PS : L’accent est mis sur la conception de microservices et non sur le codage

  • Aucun framework de microservices spécifique n’est utilisé

  • Tous les exemples de code sont en JAVA simple pour démontrer/clarifier la compréhension des modèles DDD, etc.

  • Les modèles sont développés en UML – en utilisant le PlantUML outil

  • PostgreSQL/MongDB/RabbitMQ/Kafka – instances gratuites créées sur le cloud pour les démos et les procédures pas à pas

VEUILLEZ Ne PAS rejoindre le cours si vous recherchez des tutoriels sur le codage des microservices ou un framework spécifique !!!

De quoi parle ce cours ?

Les microservices sont une nouvelle façon de créer un logiciel dans lequel une application est composée d’un ensemble de services indépendants . Le plus grand avantage des microservices est qu’ils permettent à une organisation de transformer à un rythme très rapide. Cette vitesse de mise sur le marché est obtenue grâce à la nature indépendante des services qui composent un micro application roservices. Des entreprises comme Amazon, Netflix et Etsy ont prouvé sans aucun doute la valeur des microservices.

De nombreuses organisations cherchent aujourd’hui à adopter les microservices. Ces organisations investissent dans les technologies, les outils, les compétences et modifient également leurs processus de développement et de livraison de logiciels. Mais de nombreuses organisations ne parviennent toujours pas à tirer pleinement parti des microservices ; en fait, de nombreuses organisations ont le sentiment d’avoir créé une dette technique en adoptant les microservices.

Alors pourquoi certaines organisations ont-elles réussi à adopter des microservices alors que d’autres ne le sont pas. Un aspect commun que j’ai observé dans les entreprises qui n’adoptent pas les microservices est qu’elles traitent les microservices comme une initiative purement technologique. Ils ne passent pas de temps à comprendre les aspects commerciaux de leurs applications Microservices  !!!

Les microservices ne sont PAS seulement une question de technologie

L’élément clé de l’architecture des microservices est que les services sont Indépendants. Cet aspect indépendant du service est ce qui permet aux Microservices de changer indépendamment des autres services. Si la portée des microservices conduit à des interdépendances entre les services, cela conduirait à un besoin de coordination du changement entre les équipes, ce qui à son tour conduirait aux mêmes problèmes que nous avons avec les applications monolithiques !!! Les cycles de publication seront plus longs et il n’y aura aucun avantage à adopter les microservices.

Pour s’assurer qu’il n’y a pas d’interdépendances entre les microservices, un architecte de microservices doit comprendre le domaine, puis décider de la limite et de la portée des microservices. C’est ici qu’intervient la Domain Driven Design . Une fois les limites commerciales des Microservices définies, les services doivent être construits à l’aide de modèles de conception de Microservices et de technologies appropriés.

Les équipes travaillant sur les Microservices ne doivent pas seulement examiner les aspects techniques du service, mais DOIT garder à l’esprit qu’il existe d’autres considérations qui jouent un rôle essentiel dans le succès de l’initiative Microservices. Afin de

Rôle d’un architecte de microservices

Un professionnel de l’informatique travaillant dans le rôle d’architecte de microservices est responsable de plusieurs aspects en fonction de la maturité de l’adoption des microservices dans leur organisation. Voici la liste des activités dont les architectes sont responsables :

  • Évaluer les avantages commerciaux des microservices pour leur organisation spécifique

  • Construire une analyse de rentabilisation pour les microservices

  • Éduquer les parties prenantes de l’entreprise et de l’informatique sur les avantages/inconvénients des microservices

  • Appliquer la conception axée sur le domaine pour délimiter les limites des microservices

  • Définir le modèle de domaine pour les microservices

  • Réaliser la conception technique de Microservices

  • Guider et encadrer les équipes Microservices

  • Évaluer les technologies | frameworks pour la réalisation de Microservices

  • Construire des preuves de concepts pour montrer comment les choses fonctionnent

Comment cela aide au cours ?

Ce cours aidera les développeurs & architectes dans le renforcement des compétences nécessaires pour une mise en œuvre réussie des applications de microservices. Il consiste en une combinaison de concepts, de modélisation UML et de code de travail pour démontrer la mise en œuvre des microservices. Les étudiants apprendront les concepts de la conception axée sur le domaine au moyen d’exemples courants de l’industrie et d’une étude de cas (ACME voyages). 

L’accent est mis sur l’architecture, la conception et le développement de microservices.

1. Transformation & Microservices

2. Conception axée sur le domaine

3. Appliquer le modèle stratégique et tactique DDD

4. Architecture événementielle

5. Prise d’événement

6. Gestion des données

7. Messagerie

8. DistribuerTransactions écrites

9. API

IMPORTANT :

Exemples de code

L’accent est mis sur la conception des microservices et non sur le codage.

  • Tous les exemples de code sont en JAVA brut

  • Le cours ne couvre PAS un framework spécifique

  • SpringBoot est utilisé dans les exemples pour la section API/GraphQL

Veuillez consulter les présentations du cours avant de vous inscrire au cours.

  • Revoyez les sujets abordés

  • Assurez-vous de comprendre l’accent de l’instructeur

Pré-requis

  • Compréhension de base de JAVA ou de tout autre langage de programmation

  • Une certaine expérience des pratiques de développement logiciel

PS :

La partie pratique est facultative, mais les étudiants sont encouragés à effectuer des tâches pratiques pour avoir une meilleure idée des modèles de conception.

Course Ouline

1
Author introductions and Course outline
  • Quick intro of the instructor

  • Course outline

  • Tips to get the most out of the course

2
Development tools and setup

By the end of this lesson students will have the development environment setup on their local machine.

Microservices Architecture

1
Microservices Architecture
  • Monolithic Architecture

  • Microservices Architecture

  • Realization of Microservices Architecture

2
Business & Digital Transformation

Discussion on how Business Transformation is accelerated by Microservices Architecture.

3
A Business Perspective of Microservices
  • How teams are organized for building Microservices applications

  • Business capabilities and Microservices

  • Business Benefits of Microservices

4
A Technical Perspective of Microservices

Discussion on pros and cons of Microservices architecture from technology perspective.

5
Adoption of Microservices Architecture

Introduction to Domain Driven Design

1
Domain, Sub-Domain and Domain Experts

Understanding the domain and domain models

2
Conceptual models, Architecture and Design
  • Conceptual vs Architectural models

  • Architecture vs Design

3
Modeling techniques & Architectural Styles

Discussion on commonly used modelling techniques and Architectural styles.

Students will be introduced to Domain Driven Design in this lesson.

4
Domain Models

Define models and elements of domain models.

5
Modeling techniques & Architectural Styles
  • Enterprise | Unified domain models

  • Knowledge crunching exercise

Understanding the Business Domain

1
Why understand the Business?

Overview of the topics covered in this section.

2
Introduction to Business Model Canvas
  • Understand the use of business model canvas

  • Learn how the Business model canvas is created

  • Example: Uber's Business Model Canvas

3
Exercise : ACME Travels Business Model Canvas

In this exercise we will create the Business Model Canvas for Acme Travels

Domain Driven Design : Strategic Patterns

1
Introduction to DDD and Patterns

Overview of the topics covered in this section.

2
Business Subdomain Types

Learn about the 3 types of sub domains

  • Core

  • Support

  • Generic

3
Exercise : ACME Subdomain Type Assignment

In this exercise we will categorize ACME Travel's subdomains in the core/support/generic categories.

4
Understanding the Business Context

Understand the meaning or Context | Business Context

5
Business Domain Language

Bridging the gap between Business and Technology languages. Lesson introduces students to DDD Ubiquitous Language.

6
Strategic Pattern : Ubiquitous Language

Discussion on characteristics of Ubiquitous Language.

7
Exercise : Define ACME's Ubiquitous Language

In this lesson we will develop the Ubiquitous Language terms for ACME Travels Sales subdomain.

8
Strategic Pattern : Bounded Context

Introduction to the DDD Strategic pattern : Bounded Context

By end of this lesson students should be able to explain the Bounded Contexts.

9
Discovering the Bounded Contexts in a Domain

Students will learn techniques for discovering the Bounded Contexts in a problem space.

10
Exercise : Identify ACME's Bounded Contexts

In this exercise we will try to identify Bounded Contexts in the ACME travels business domain.

Bounded Context Relationships

1
Intro to DDD Integration Patterns

Overview of the topics covered in this section.

2
Managing BC Relationships using Context Maps
  • Big Ball of Mud

  • Challenges with Bounded Context dependencies

  • Context Maps

3
Symmetric Relationship Patterns

DDD Strategic Patterns:

  • Separate Ways

  • Partnership pattern

  • Shared Kernel

4
Asymmetric Relationship Patterns

DDD Strategic Patterns:

  • Customer-Supplier pattern

  • Conformist pattern

  • Anti corruption layer pattern

5
One to Many Relationship Patterns

DDD Strategic Patterns:

  • Open Host Service

  • Published Language

6
Exercise : Context Mapping for a Bank

In this exercise we will draw up the context mapping in a banking domain.

Domain Driven Design - Tactical Patterns

1
Intro to DDD Tactical Patterns

Overview of the topics covered in this section.

2
Entity Object - Pattern

DDD Tactical Pattern : Entity pattern

3
Value Object - Pattern

DDD Tactical Pattern : Value Object pattern

4
Exercise : Identify Entity & VO in ACME Sales Model

In this exercise we will identity | design the Entity and VO in the ACME Travels sales model

5
Hands On : Building the ACME Sales Entities & VO in JAVA

Walkthrough of the JAVA code  & UML for ACME Travel Sales entities and value objects

6
Aggregate & Factory - Pattern

DDD Tactical Pattern : Aggregate pattern

7
Exercise : ACME Sales Use Case

In this exercise we will design an Aggregate in the ACME Travel Sales model

8
Hands On : UML for ACME Sales Aggregates

Walkthrough of JAVA code and UML model for the Aggregate(s) in the ACME sales model

9
Model Behavior : Anemic & Rich Models

Discussion on Anemic models and how to address anemic models

10
Repository Object - Pattern

DDD Tactical Pattern : Repository pattern

11
Hands On : ACME model Repository in UML & JAVA

Walkthrough of the JAVA code and UML model for ACME travel repository

12
Domain Service - Pattern

DDD Tactical Pattern : Services patterns

13
Application Services - Pattern

DDD Tactical Pattern : Application Services pattern

14
Infrastructure Services - Pattern

DDD Tactical Pattern : Infrastructure Services pattern

15
Hands On : ACME Domain Service, UML & JAVA

Walkthrough of the Java code and UML for the Domain Services in ACME travel model

16
Hands On : Application and Infrastructure Services, UML & JAVA

Walkthrough of JAVA code and UML for the ACME application and infrastructure services

Events Driven Architecture & Domain Events

1
Intro to Events in Microservices

Overview of the topics covered in this section.

2
Monolithic & Distributed Communication Patterns

Discussion of communication patterns used in Microservices

3
Microservices Interaction Patterns

Discussion on the Microservices interaction patterns

4
Event Driven Architecture

Introduction to Events Driven Architecture and its importance in development of Microservices applications.

5
Hands On : Pub Sub with AMQP/RabbitMQ

Walkthrough of pub-sub messaging pattern using the RabitMQ messaging broker.

6
Domain Events - Pattern

Introduction to domain events

7
Hands On : Static Class Broker Pattern

Implementing domain events with a static class broker framework pattern

8
Exercise : ACME Sales Domain Events

In this exercise we will Identify the ACME travel domain events

9
Hands On : Realization of ACME Domain Events

Walkthrough of the JAVA code and UML for the implementation of the domain events for ACME travel.

10
Integration Events - Pattern

DDD Tactical Pattern : Integration Events

11
Exercise : ACME Sales Integration Events

In this exercise we will identify the Integration Events in the ACME travel domain

12
Hands On : Realization of ACME Integration Events (1 of 2)

Walkthrough of JAVA code and UML for the implementation of ACME 

13
Hands On : Realization of ACME Integration Events (2 of 2)

Walkthrough of JAVA code and UML for the implementation of ACME 

Event Storming for creating shared knowledge

1
Learning Objectives : Discovering the Events in a Domain

Overview of the topics covered in this section.

2
Introduction to Event Storming

Events storming is a technique used for creating shared knowledge of the domain. This lesson will introduce students to event storming.

3
Elements of Event Storming

Elements of event storming flow.

4
Preparing for the ES Workshop

Discussion on how to prepare for an Event Storming workshop.

5
Conducting the ES Workshop

The process followed in an Event Storming workshop.

6
Exercise : ACME Sales ES Workshop

Simulation of Event Storming Workshop for ACME sales

Microservices Data Management Patterns

1
Introduction to Microservices Data Persistence

Overview of the topics covered in this section.

2
Monolithic Apps - Shared Persistence Storage

Challenges with use of Shared Database in monolithic applications

3
Service Oriented Architecture (SOA)

Introduction to SOA and how it addressed some of the challenges of shared database in Monoliths

4
Separate Database pattern

Microservices have independent persistent layer. This lesson discusses the pros of separate database pattern for microservices.

5
Brownfield Microservices : Database patterns | options

Option for persistence layer for brownfield applications

6
Shared Database Pattern

Options for breaking a shared database to separate databases

7
Shared Database : Challenges & Solutions

Introduction to CQRS, Event Sources and SAGA patterns

Microservices DB Performance Management

1
Need for more Data Patterns

Overview of the topics covered in this section.

2
Commands Query Separation (CQS)

Command Query Separation (CQS) Pattern

3
Hands On : PostgreSQL Database for backend
  • Setup PostgreSQL database for testing

  • Walkthrough of JDBC Repo implementation

4
Realization of Commands & Queries
  • Considerations for CQ pattern

  • Read vs Write performance

  • Introduction to "Collaborative Domains"

5
Hands On : Build the CQS Pattern

Walkthrough of JAVA code and UML for CQS realization

6
Command Query Responsibility Segregation (CQRS)

Discussion on CQRS pattern

7
Data Replication between WRITE-READ sides

Options for data replication between READ and WRITE sides

8
Exercise : ACME CQRS for Proposal

Exercise requires you to design CQRS for ACME Travels

9
Hands On : ACME CQRS command implementation

Walkthrough of JAVA code and UML for CQRS implementation

10
Event Sourcing and Event Store considerations
  • Event Sourcing pattern

  • Considerations for building Event Store

11
Hands On : MongoDB for ACME Sales READ side

Set up a NoSQL MongoDB for testing out the CQRS

12
Hands On : CQRS-v1 Proposal Subscriber

Walkthrough of JAVA code UML for version 1 of CQRS implementation for ACME

13
Hands On : CQRS-v2 Read side Query

Walkthrough of JAVA code UML for version 2 of CQRS implementation for ACME


Microservices Managing the Data Integrity

1
Introduction to Reliable Messaging

Overview of the topics covered in this section.

2
Designing for Failure

As a best practice always design distributed systems for failures

3
Exercise : Address ACME CQRS Write side failures

Handling the write side failures to maintain data integrity in distributed systems

4
Exercise : Address ACME CQRS Read side failures

In this exercise you will be asked to identify the failure points in the ACME CQRS design

5
Hands On : Handling Duplicate Messages

Walkthrough of JAVA code and UML for demonstrating the event duplication scenario

Microservices and Kafka

1
Use of Kafka in Microservices

Overview of the topics covered in this section.

2
Kafka Overview

Introduction to Kafka streaming

3
Kafka Concepts

Diving deeper into Kafka concepts

4
Hands On : Create a Kafka Cluster

Create a Kafka cluster for experimentation

5
Hands On : Working with Kafka Producer

Walkthrough of JAVA code and UML for Kafka producer

6
Hands On : Working with Kafka Consumer Groups

Walkthrough of JAVA code and UML for Kafka consumer

7
Kafka vs AMQP (RabbitMQ)

Discussion on how to decided between Kafka and AMQP/RabitMQ

8
Exercise : Messaging for Microservices

Managing Distributed Transactions with SAGA

1
Distributed Transactions with SAGA

Overview of the topics covered in this section.

2
SAGA Pattern for distributed transactions

Flow of the SAGA pattern

3
SAGA Choreography Vs. Orchestration

Two ways of implementing SAGA

  • Choreography

  • Orchestration

4
SAGA Implementation Considerations

Practical considerations for building SAGA

5
Exercise : ACME Sales Booking Transaction SAGA

In this exercise we will discuss implementation of SAGA for ACME

6
Hands On : UML & Code walkthrough of Booking SAGA

Walkthrough of JAVA code and UML for SAGA for ACME

Microservices and API

1
Microservices-API Realization

Overview of the topics covered in this section.

2
Introduction to REST API

Discussion on what makes an API a RESTful API

3
REST API Resources & Design constraints

Resources in REST API

4
API Management

Discussion on why API management is needed for Microservices

5
Exercise : ACME REST API for Products

In this exercise we will discuss the design of REST API for ACME

6
Hands On : ACME REST API in action

Walkthrough of JAVA code and UML for ACME REST API

7
Introduction to GraphQL

Introduction to GraphQL

8
GraphQL Schema Definition

How to define the schema for GraphQL

9
Exercise : ACME GraphQL API for Products

In this exercise we will design the GraphQL API for ACME

10
Hands On : ACME GraphQL API in action

Walkthrough of JAVA code and UML for ACME GraphQL API

Vous pouvez afficher et revoir les supports de cours indu00e9finiment, comme une chau00eene u00e0 la demande.
Absolumentu00a0! Si vous disposez d'une connexion Internet, les cours sur Udemy sont disponibles u00e0 tout moment sur n'importe quel appareil. Si vous n'avez pas de connexion Internet, certains instructeurs permettent u00e9galement u00e0 leurs u00e9tudiants de tu00e9lu00e9charger les cours. instructeur cependant, alors assurez-vous d'u00eatre de leur bon cu00f4tu00e9u00a0!
4.4
4.4 sur 5
Notes35

Détails des Notes

Étoiles 5
18
Étoiles 4
10
Étoiles 3
6
Étoiles 2
1
Étoiles 1
0
2552c2ee12d36eda2fabd643c4fd9246
Garantie de remboursement de 30 jours

Inclut

13 heures de vidéo à la demande
Accès complet à vie
Accès sur le mobile et la télévision
Certificat d'achèvement

Archive

Working hours

Monday 9:30 am - 6.00 pm
Tuesday 9:30 am - 6.00 pm
Wednesday 9:30 am - 6.00 pm
Thursday 9:30 am - 6.00 pm
Friday 9:30 am - 5.00 pm
Saturday Closed
Sunday Closed