Mô tả

PS: Focus is on designing Microservices not coding

  • No specific Microservices framework in use

  • All sample code is in plain JAVA to demonstrate/clarify understanding of DDD patterns, etc.

  • Models are developed in UML - using the PlantUML tool

  • PostgreSQL/MongDB/RabbitMQ/Kafka - free instances created on the cloud for demos & walkthroughs

PLEASE Do NOT join the course if you are looking for tutorials on Microservices Coding or specific framework!!!

What is this course about?

Microservices is a new way of building software in which an application is composed of an independent set of services. The biggest benefit of Microservices is that it enables an organization to transform at a very rapid pace. This speed to market is achieved due to the independent nature of the services that make up a Microservices application. Companies like Amazon, Netflix and Etsy have proven the value of Microservices beyond doubt.

Many organizations today are looking to adopt Microservices. These organizations are investing in technologies, tools, skills and are changing their software development and delivery processes as well. But still many organizations are failing to achieve the full benefits of Microservices; in fact many organizations feel that they have created technical debt by adopting Microservices.

So why is it that some organizations have been successful in adopting Microservices while others are not. One common aspect I have observed in companies that fail to adopt Microservices is that they treat Microservices as a purely technology initiative. They do not spend time in understanding the business aspects of their Microservices applications  !!!


Microservices is NOT just about technology

The key element of the Microservices architecture is that services are Independent. This independent aspect of the service is what makes it possible for Microservices to change independently of other services. If scope of the microservices is leading to inter-dependencies between services then it would lead to a need for change coordination between teams which in turn will lead to the same problems we have with Monolithic applications !!! Release cycles will be longer and there will be no benefit of the adoption of Microservices.

To ensure that these is no interdependencies between Microservices, a Microservices architect needs to understand the domain and then decide on the boundary and scope of the Microservices. This is where Domain Driven Design comes into picture. Once the Microservices business boundaries are defined the services should be built using appropriate Microservices design patterns and technologies.

Teams working on Microservices should not just look at the technical aspects of the service but MUST keep in mind that there are other considerations that play a critical part in the success of Microservices initiative. In order to


Role of a Microservices Architect

An IT professional working in the role of Microservices architect is responsible for may aspects depending on the maturity of Microservices adoption in their organization. Here are the list of activities that the architects is responsible for:

  • Evaluate the business benefits of Microservices for their specific organization

  • Build a Business case for Microservices

  • Educate the Business & IT stakeholders on pros/cons of Microservices

  • Apply Domain Driven Design to demarcate the boundaries of Microservices

  • Define the domain model for the Microservices

  • Do the technical design of Microservices

  • Guide and Mentor the Microservices teams

  • Evaluate the technologies | frameworks for the realization of Microservices

  • Build proof of concepts to show how things work

How will this course help?

This course will help developers & architects in building skills needed for successful implementation of Microservices applications. It consists of a combination of concepts, UML modelling and working code to demonstrate the implementation of Microservices. Students will learn the concepts of Domain driven design by way of common industry examples and a case study (ACME travels). 


Focus is on Architecture, Design and Development of Microservices.


1. Transformation & Microservices

2. Domain Driven Design

3. Applying the DDD strategic & tactical pattern

4. Event Driven Architecture

5. Event Storming

6. Data Management

7. Messaging

8. Distributed Transactions

9. API


IMPORTANT:

Code Samples

Focus is on the Microservices design not coding.

  • All of the sample code is in plain JAVA

  • Course does NOT cover any specific framework

  • SpringBoot is used in samples for API/GraphQL section

Please check out the course preview lectures before enrolling the course.

  • Review the topics covered

  • Make sure you understand instructor's accent


Pre-Requisites

  • Basic understanding of JAVA or any other programming language

  • Some experience with software development practices

PS:

Hand on part is optional but students are encouraged to do hands on tasks to get a better feel of the design patterns.

Bạn sẽ học được gì

Domain Driven Design

Architecting Microservices Application

Design Patterns for building Microservices & Distributed systems

Event Driven Architecture

Developing API for Microservices

Event Storming

Develop a Business case for Microservices

Yêu cầu

  • Understanding of software development practices
  • Basic knowledge JAVA or any other programming language

Nội dung khoá học

15 sections

Course Ouline

2 lectures
Author introductions and Course outline
04:38
Development tools and setup
07:26

Microservices Architecture

5 lectures
Microservices Architecture
05:38
Business & Digital Transformation
09:48
A Business Perspective of Microservices
08:01
A Technical Perspective of Microservices
08:21
Adoption of Microservices Architecture
08:58

Introduction to Domain Driven Design

5 lectures
Domain, Sub-Domain and Domain Experts
05:26
Conceptual models, Architecture and Design
09:13
Modeling techniques & Architectural Styles
07:54
Domain Models
06:26
Modeling techniques & Architectural Styles
06:05

Understanding the Business Domain

3 lectures
Why understand the Business?
02:36
Introduction to Business Model Canvas
07:11
Exercise : ACME Travels Business Model Canvas
08:07

Domain Driven Design : Strategic Patterns

10 lectures
Introduction to DDD and Patterns
02:20
Business Subdomain Types
10:28
Exercise : ACME Subdomain Type Assignment
04:56
Understanding the Business Context
04:39
Business Domain Language
07:15
Strategic Pattern : Ubiquitous Language
07:33
Exercise : Define ACME's Ubiquitous Language
06:28
Strategic Pattern : Bounded Context
07:48
Discovering the Bounded Contexts in a Domain
07:05
Exercise : Identify ACME's Bounded Contexts
08:17

Bounded Context Relationships

6 lectures
Intro to DDD Integration Patterns
02:19
Managing BC Relationships using Context Maps
05:17
Symmetric Relationship Patterns
06:25
Asymmetric Relationship Patterns
08:15
One to Many Relationship Patterns
03:34
Exercise : Context Mapping for a Bank
05:37

Domain Driven Design - Tactical Patterns

16 lectures
Intro to DDD Tactical Patterns
01:38
Entity Object - Pattern
06:36
Value Object - Pattern
07:55
Exercise : Identify Entity & VO in ACME Sales Model
08:39
Hands On : Building the ACME Sales Entities & VO in JAVA
10:32
Aggregate & Factory - Pattern
05:25
Exercise : ACME Sales Use Case
03:55
Hands On : UML for ACME Sales Aggregates
04:52
Model Behavior : Anemic & Rich Models
08:55
Repository Object - Pattern
10:02
Hands On : ACME model Repository in UML & JAVA
10:12
Domain Service - Pattern
06:51
Application Services - Pattern
06:12
Infrastructure Services - Pattern
05:13
Hands On : ACME Domain Service, UML & JAVA
05:15
Hands On : Application and Infrastructure Services, UML & JAVA
06:12

Events Driven Architecture & Domain Events

13 lectures
Intro to Events in Microservices
01:55
Monolithic & Distributed Communication Patterns
07:07
Microservices Interaction Patterns
09:15
Event Driven Architecture
10:48
Hands On : Pub Sub with AMQP/RabbitMQ
09:46
Domain Events - Pattern
11:34
Hands On : Static Class Broker Pattern
08:28
Exercise : ACME Sales Domain Events
06:09
Hands On : Realization of ACME Domain Events
03:06
Integration Events - Pattern
07:13
Exercise : ACME Sales Integration Events
08:22
Hands On : Realization of ACME Integration Events (1 of 2)
07:51
Hands On : Realization of ACME Integration Events (2 of 2)
04:32

Event Storming for creating shared knowledge

6 lectures
Learning Objectives : Discovering the Events in a Domain
01:37
Introduction to Event Storming
07:20
Elements of Event Storming
08:24
Preparing for the ES Workshop
06:51
Conducting the ES Workshop
07:09
Exercise : ACME Sales ES Workshop
09:39

Microservices Data Management Patterns

7 lectures
Introduction to Microservices Data Persistence
01:31
Monolithic Apps - Shared Persistence Storage
05:30
Service Oriented Architecture (SOA)
02:25
Separate Database pattern
04:09
Brownfield Microservices : Database patterns | options
06:55
Shared Database Pattern
09:35
Shared Database : Challenges & Solutions
08:13

Microservices DB Performance Management

13 lectures
Need for more Data Patterns
02:36
Commands Query Separation (CQS)
04:26
Hands On : PostgreSQL Database for backend
09:54
Realization of Commands & Queries
05:47
Hands On : Build the CQS Pattern
10:37
Command Query Responsibility Segregation (CQRS)
07:17
Data Replication between WRITE-READ sides
03:29
Exercise : ACME CQRS for Proposal
06:26
Hands On : ACME CQRS command implementation
06:09
Event Sourcing and Event Store considerations
08:27
Hands On : MongoDB for ACME Sales READ side
07:53
Hands On : CQRS-v1 Proposal Subscriber
06:39
Hands On : CQRS-v2 Read side Query
02:20

Microservices Managing the Data Integrity

5 lectures
Introduction to Reliable Messaging
01:52
Designing for Failure
10:33
Exercise : Address ACME CQRS Write side failures
12:09
Exercise : Address ACME CQRS Read side failures
09:18
Hands On : Handling Duplicate Messages
05:49

Microservices and Kafka

8 lectures
Use of Kafka in Microservices
01:26
Kafka Overview
03:45
Kafka Concepts
11:22
Hands On : Create a Kafka Cluster
06:34
Hands On : Working with Kafka Producer
05:20
Hands On : Working with Kafka Consumer Groups
08:12
Kafka vs AMQP (RabbitMQ)
05:15
Exercise : Messaging for Microservices
07:12

Managing Distributed Transactions with SAGA

6 lectures
Distributed Transactions with SAGA
00:58
SAGA Pattern for distributed transactions
08:00
SAGA Choreography Vs. Orchestration
07:08
SAGA Implementation Considerations
04:11
Exercise : ACME Sales Booking Transaction SAGA
11:38
Hands On : UML & Code walkthrough of Booking SAGA
09:11

Microservices and API

10 lectures
Microservices-API Realization
02:14
Introduction to REST API
02:44
REST API Resources & Design constraints
07:16
API Management
06:38
Exercise : ACME REST API for Products
04:16
Hands On : ACME REST API in action
06:02
Introduction to GraphQL
10:19
GraphQL Schema Definition
09:21
Exercise : ACME GraphQL API for Products
04:52
Hands On : ACME GraphQL API in action
07:24

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.