강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Back-end

Hướng dẫn hoàn hảo về các mẫu thiết kế microservice

Khóa học này giúp bạn tìm hiểu về các nội dung đa dạng, các mẫu thiết kế và kỹ thuật cần thiết cho mẫu thiết kế MSA và chiến lược triển khai để phát triển ứng dụng microservice. Bạn sẽ được học các kiến thức cốt lõi và phương pháp luận thực tiễn cần thiết để chuyển đổi thành công ứng dụng monolithic hiện có sang phương pháp MSA. Bạn cũng sẽ phân tích các mẫu thiết kế đa dạng tạo nên nền tảng của kiến trúc microservice, đồng thời tìm hiểu từng mẫu thiết kế phù hợp với tình huống nào và cách áp dụng chúng.

(5.0) 4 đánh giá

345 học viên

  • Dowon Lee
마이크로서비스
이론 실습 모두
Java
Spring Cloud
Design Pattern
MSA
patterns

Dịch cái này sang tiếng Việt

  • Hiểu biết về kiến trúc Microservice

  • Hiểu biết về các mẫu kiến trúc Microservices

  • Áp dụng các mẫu theo thiết kế Microservices

Bạn sẽ tìm hiểu về các mô hình trong kiến ​​trúc vi dịch vụ và áp dụng chúng vào ứng dụng của mình.

Bây giờ bạn đã hiểu các khái niệm và cấu trúc của kiến ​​trúc vi dịch vụ cơ bản, bạn có thể thiết kế và xây dựng ứng dụng vi dịch vụ bằng cách sử dụng các mẫu MSA và các quyết định dịch vụ cần thiết để xây dựng ứng dụng.

Đây là khóa học thiết yếu cho tất cả các nhà phát triển và kiến ​​trúc sư muốn chuyển đổi các hệ thống phức tạp thành các kiến ​​trúc vi dịch vụ linh hoạt, có thể mở rộng và bảo trì được . Tăng cường các kỹ năng phát triển ứng dụng cốt lõi của bạn với khóa học này!

  • Hiểu về Kiến trúc Monolithic và Microservice, hiểu được sự khác biệt giữa kiến ​​trúc Monolithic quy mô lớn và Microservice , đồng thời tìm hiểu ưu và nhược điểm của từng phương pháp.

  • Bài viết này giải thích các bước cần thiết để chuyển đổi ứng dụng đơn khối cơ bản thành kiến ​​trúc vi dịch vụ cũng như những điểm quan trọng cần lưu ý.

  • Nguyên tắc thiết kế MSA: Bao gồm các nguyên tắc thiết kế của kiến ​​trúc microservice (MSA) để cải thiện khả năng mở rộng và độ tin cậy. Bạn sẽ tìm hiểu về các khái niệm cốt lõi như tách miền, ghép nối lỏng lẻo và triển khai độc lập.

  • Qua bài giảng này, bạn sẽ hiểu được mô hình kiến ​​trúc vi dịch vụ phù hợp với loại dịch vụ và các khái niệm cần thiết để áp dụng mô hình MSA.

  • Tìm hiểu các mẫu thiết kế cốt lõi của MSA: Bạn có thể nghiên cứu các mẫu thiết kế MSA chính như API Gateway , Service Discoverymẫu Saga với các ví dụ thực tế.


  • Bạn có thể triển khai ví dụ MSA ảo và thực hành toàn bộ quy trình cần thiết để vận hành nó.

  • Sau đây là biểu đồ về mức độ sử dụng theo các mô hình chính trong MSA:



Tôi giới thiệu điều này cho những người này

Ai nên tham gia khóa học này (1)

Những người muốn tìm hiểu về kiến ​​trúc và các mô hình áp dụng để xây dựng ứng dụng trong các tổ chức đang cân nhắc giới thiệu các dịch vụ vi mô thông qua các ví dụ thực tế, có hiểu biết về khái niệm và phạm vi của MSA

Ai nên tham gia khóa học này (2)

Các nhà phát triển phần mềm phụ trợ muốn phát triển và duy trì các dịch vụ quy mô lớn thông qua nhiều mô hình MSA và cơ chế xử lý có thể được áp dụng khi cấu hình Kiến trúc bên trong/bên ngoài của MSA

Ai nên tham gia khóa học này (3)

Bất kỳ ai muốn tìm hiểu thêm về quản lý dữ liệu và giao dịch phân tán trong khi phát triển các ứng dụng vi dịch vụ bằng Spring Boot + Spring Cloud

Sau giờ học

  • Bạn sẽ hiểu được cấu hình, kiến ​​trúc và các mẫu cần thiết để chuyển đổi ứng dụng độc lập thành ứng dụng MSA .

  • Bạn sẽ hiểu cách đồng bộ hóa dữ liệu cần thiết cho MSA và cách xử lý dữ liệu trong các giao dịch phân tán .

  • Bạn sẽ hiểu được các kiến ​​trúc và mô hình cần xem xét khi phát triển các ứng dụng vi dịch vụ và cách áp dụng các mô hình khác nhau.

  • Kỹ năng giải quyết vấn đề có thể được cải thiện bằng cách áp dụng nhiều mẫu thiết kế MSA khác nhau vào tình huống phù hợp.

  • Khi giới thiệu MSA vào các dự án hoặc dịch vụ hiện có, bạn sẽ có thể vạch ra lộ trình rõ ràng và thiết kế môi trường triển khai dựa trên sự hiểu biết về văn hóa DevOpscơ sở hạ tầng đám mây .

Các tính năng của khóa học này

Hiểu các mẫu MSA theo loại dịch vụ

Khóa học này sẽ giúp bạn hiểu được sự khác biệt, ưu và nhược điểm giữa các ứng dụng độc khối và ứng dụng dựa trên dịch vụ vi mô về mặt kiến ​​trúc và dịch vụ, đồng thời tìm hiểu về nhiều mô hình MSA khác nhau, từ mô hình phân tách dịch vụ vi mô đến chiến lược truyền thông dữ liệu và thử nghiệm, theo từng tình huống và chủ đề.

Triển khai một ví dụ mẫu áp dụng mô hình MSA

Dựa trên 30 ví dụ thực tế được cấu trúc theo kiểu đơn khối và vi dịch vụ, bạn có thể dần dần áp dụng mô hình MSA vào các dịch vụ và cũng có thể tìm hiểu về quy trình triển khai lên các dịch vụ đám mây.

Tìm hiểu về những điều này

Các loại và hiểu biết về các mẫu kiến ​​trúc vi dịch vụ

Bạn có thể tìm hiểu từng bước các tình huống về cấu trúc và nhiều mô hình khác nhau cần được xem xét khi cấu hình các dịch vụ dưới dạng kiến ​​trúc vi dịch vụ, được phân loại thành giao tiếp giữa các dịch vụ, phương pháp xử lý dữ liệu không đồng bộ và quan điểm quản lý dữ liệu.

Công nghệ và phương pháp ứng dụng cho xử lý giao dịch phân tán

Ngoài việc hiểu về CQRS, Event Sourcing, SAGA và Event Driven Architecture, những thành phần cần được cân nhắc khi áp dụng các phương pháp quản lý dữ liệu và xử lý giao dịch phân tán trong kiến ​​trúc vi dịch vụ, bạn có thể tìm hiểu về quy trình cần thiết để triển khai thông qua các ví dụ thực tế.

Các mô hình MSA được đề cập trong bài giảng là:

  • API Gateway: Một mô hình tiếp nhận tất cả các yêu cầu của khách hàng từ một điểm nhập duy nhất và xử lý xác thực, ghi nhật ký, định tuyến , v.v. Bạn có thể quản lý nhiều dịch vụ vi mô ở một nơi.

  • Khám phá dịch vụ: Một mô hình đăng ký và tìm vị trí của các trường hợp dịch vụ thay đổi động trong sổ đăng ký trung tâm . Điều này cho phép khám phá địa chỉ tự động khi giao tiếp giữa các dịch vụ.

  • Giao tiếp đồng bộ và không đồng bộ : Giao tiếp đồng bộ là phương pháp mà dịch vụ gửi yêu cầu chờ phản hồi và luồng bị chặn cho đến khi phản hồi đến. Giao tiếp đồng bộ có thể được triển khai theo cách REST / gRPC / GraphQL API. Giao tiếp không đồng bộ là phương pháp mà dịch vụ gửi yêu cầu tiến hành tác vụ tiếp theo ngay lập tức mà không cần chờ phản hồi và giao tiếp bằng cách xuất bản và đăng ký sự kiện thông qua một message broker như Kafka.

  • Circuit Breaker: Một mô hình ngắt mạch các cuộc gọi để ngăn chặn phản ứng dây chuyền của các lỗi trong một dịch vụ duy nhất. Khi một dịch vụ bên ngoài không khả dụng , các cuộc gọi sẽ dừng trong một khoảng thời gian nhất định và đạt được fail-fast.

  • Xử lý dự phòng: Mẫu này cung cấp phản hồi thay thế hoặc logic thử lại như một phương án dự phòng khi bộ ngắt mạch, v.v. được kích hoạt. Nó làm tăng khả năng phục hồi của hệ thống trong trường hợp xảy ra lỗi một phần.

  • Saga Pattern: Một mẫu giao dịch phân tán để duy trì tính nhất quán của dữ liệu trên các dịch vụ phân tán. Nó liên kết các giao dịch cục bộ của mỗi dịch vụ với các sự kiện/thông điệp để đảm bảo tính nhất quán cuối cùng.

  • CQRS & Event Sourcing: CQRS (Command Query Responsibility Segregation) là một mô hình tăng khả năng mở rộng bằng cách tách biệt các mô hình đọc và ghi, và Event Sourcing là một mô hình lưu trữ các thay đổi trạng thái dưới dạng nhật ký sự kiện và khôi phục trạng thái dựa trên lịch sử . Chúng được sử dụng cùng nhau để quản lý dữ liệu cho các doanh nghiệp phức tạp.

  • EDA: Kiến trúc hướng sự kiện là một mẫu kiến ​​trúc phần mềm thiết kế các hệ thống xung quanh việc tạo, phát hiện, tiêu thụ và sử dụng các sự kiện. Đây là cách các thành phần của ứng dụng dịch vụ vi mô giao tiếp và tương tác với nhau thông qua 'sự kiện'.

  • BFF (Backend for Frontend): Một mô hình cung cấp backend chuyên biệt cho từng nền tảng, chẳng hạn như web và di động. Nó tăng hiệu quả và năng suất phát triển bằng cách tạo ra một lớp API chuyên dụng đáp ứng nhu cầu của từng frontend.

Ai đã tạo ra khóa học này

  • Dựa trên 25 năm kinh nghiệm trong lĩnh vực CNTT, giảng dạy, tư vấn và phát triển, tôi sẽ giảng dạy bằng cách giải thích để giúp bạn hiểu được kinh nghiệm thực tế và hiểu biết của tôi.

  • Dựa trên hiểu biết cơ bản và giới thiệu về MSA, chúng tôi sẽ trình bày hiểu biết và ứng dụng các mô hình dịch vụ vi mô có thể nâng cao hiểu biết của bạn về MSA lên một tầm cao mới.

  • Khóa học này giải thích về cách triển khai và các mô hình MSA, là phần tiếp theo của các bài giảng "Phát triển Dịch vụ Web RESTful bằng Spring Boot", "Phát triển Ứng dụng Microservice (MSA) bằng Spring Cloud", "Xây dựng Đường ống CI/CD bằng Jenkins" và "Công nghệ ảo hóa Docker cho DevOps (Private Harbor Registry)".

  • Với ý tưởng "Kiến thức trong đầu không phải là kiến ​​thức", tôi cố gắng gói gọn những kinh nghiệm và kiến ​​thức nhỏ của mình lại và giải thích chúng theo cách dễ hiểu hơn. Tôi nghĩ đây sẽ là bài giảng dễ hiểu hơn đối với những ai quan tâm đến Java và Spring Framework và mở rộng sang Cloud Native và Microservice Architecture.

Bạn có thắc mắc nào không?

H. Cấu hình cơ sở hạ tầng và môi trường thực hành nào là cần thiết để triển khai hoặc chạy mã nguồn được trình bày trong bài giảng?

Tổng cộng có 30 mã ví dụ được sử dụng trong bài giảng và khi mỗi phần tiến triển, bạn có thể chạy chúng bằng cách sửa đổi mã dựa trên nội dung được giới thiệu trong phần đó. Tất cả các mã nguồn được viết bằng Spring framework + Spring Boot dựa trên ngôn ngữ Java. Đây là một dự án ví dụ với các chức năng cơ bản như xem danh sách sản phẩm và mua hàng, với chủ đề là một trung tâm mua sắm trực tuyến đơn giản. Để chạy nguồn trung tâm mua sắm trực tuyến, bạn có thể dễ dàng chạy nó với gỡ lỗi nếu bạn sử dụng JDK và IDE như Eclipse hoặc IntelliJ trong môi trường Windows hoặc MacOS và nếu bạn có thể xây dựng và sử dụng môi trường ảo hóa vùng chứa như Docker Desktop, bạn có thể chạy nó dựa trên hình ảnh vùng chứa được đóng gói. Tuy nhiên, vì bạn cần phải kiểm tra trong khi sửa đổi một phần của dự án bằng cách áp dụng mẫu MSA, chúng tôi khuyên bạn nên sử dụng môi trường thực hành bằng cách sử dụng IDE. Cuối cùng, môi trường và SW cần thiết cho phần thực hành được tóm tắt dưới đây.

  • Phiên bản chip Intel của Windows 10 hoặc 11 hoặc MacOS hoặc phiên bản chip Apple

  • JDK 17+

  • IntelliJ IDEA (Phiên bản cộng đồng hoặc Ultimate)

  • Mã Visual Studio

  • Người đưa thư

  • Trình duyệt web Chrome

  • Máy tính để bàn Docker

H. Tôi đang cố gắng xây dựng một ứng dụng hoặc dịch vụ với kiến ​​trúc microservice. Tôi có phải áp dụng các mẫu thiết kế không?

Bạn có thể chọn ngôn ngữ lập trình hoặc cơ sở dữ liệu được sử dụng khi phát triển các ứng dụng hoặc dịch vụ liên quan đến CNTT. Và dựa trên kiến ​​thức chuyên ngành cần thiết cho công việc, nó có thể được phát triển theo nhiều hình thức khác nhau theo thuật toán của nhà phát triển. Tôi nghĩ rằng logic kinh doanh mà bạn muốn triển khai có thể được triển khai thông qua phương pháp tốt nhất và thuật toán hiệu quả mà nhà phát triển triển khai nó nghĩ ra, thay vì có một quy trình hoặc quy trình được thiết lập. Tuy nhiên, đã có các phương pháp phát triển, quy trình hoặc loại phát triển đã được chứng minh trong nhiều ứng dụng đã được phát triển trong cùng một loại dịch vụ miền. Nếu bạn tham khảo các phương pháp đã được phát triển trong quá khứ, bạn có thể triển khai dịch vụ theo cách hiệu quả và đã được chứng minh. Mẫu thiết kế là một cách để tích lũy kiến ​​thức thiết kế được khám phá trong quá trình phát triển phần mềm trước đây, đặt tên cho phương pháp và sắp xếp thành một quy ước cụ thể dễ sử dụng lại sau này. Mẫu thiết kế này gợi ý các giải pháp chuẩn và phương pháp đặt tên cho các vấn đề phổ biến trong thiết kế phần mềm. Nói cách khác, sẽ tốt hơn nếu coi nó như một "phương pháp để tạo mã hiệu quả". Trong kiến ​​trúc microservice, nhiều loại mẫu thiết kế được trình bày, từ phân chia dịch vụ đến xử lý các giao dịch phân tán, và việc áp dụng các mẫu thiết kế MSA này sẽ giúp bạn triển khai các dịch vụ hiệu quả và ổn định hơn. Tóm lại, không chỉ trong MSA mà còn trong phát triển SW khác, việc áp dụng các mẫu thiết kế là tùy chọn, nhưng tôi nghĩ rằng việc áp dụng đúng các mẫu thiết kế sẽ giúp bạn phát triển các hệ thống hiệu quả và ổn định.

H. Tôi có thể tham gia khóa học mà không cần biết gì về Spring Boot hoặc Spring Cloud không?

Bài giảng này giả định rằng bạn có kiến ​​thức cơ bản về MSA dựa trên Spring Boot + Spring Cloud và giải thích về mô hình MSA. Tôi nghĩ rằng chỉ cần nghiên cứu mô hình MSA là đủ ngay cả khi bạn chỉ hiểu khái niệm Kiến trúc bên ngoài trong MSA hoặc quy trình xử lý các tác vụ CRUD (Tạo, Đọc, Cập nhật, Xóa) cơ bản bằng JPA. Tuy nhiên, để hiểu rõ cách ứng dụng đơn khối hiện có và ứng dụng MSA mới được cấu hình đã được cấu trúc và áp dụng như thế nào, tôi nghĩ rằng hiệu quả học tập có thể tăng gấp đôi nếu bạn tiếp tục bài giảng với sự hiểu biết cơ bản về Spring Boot hoặc Spring Cloud.

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS): Windows 10+, macOS Intell chip, macOS Apple chip, CentOS7+, Ubuntu 16.04+

  • Các công cụ được sử dụng: JDK 17+, Spring Boot, Spring Cloud, Visual Studio Code, Postman, Docker Desktop, IntelliJ Commnity (khuyến nghị Ultimate)

  • Thông số kỹ thuật PC: CPU i5+, RAM 16G+, Bộ nhớ 50G+, Môi trường có kết nối Internet

Tài liệu học tập

Kiến thức và ghi chú của người chơi

  • Hiểu biết về lập trình Java và các khái niệm cơ bản của Spring Framework sẽ giúp bạn tham gia khóa học.

  • Bạn có thể chạy mã ví dụ được sử dụng trong bài giảng như vậy, nhưng một số phần có thể cần phải sửa đổi tùy thuộc vào môi trường của học viên.

  • Nếu bạn có bất kỳ câu hỏi nào liên quan đến bài giảng, vui lòng để lại trên bảng thông báo và chúng tôi sẽ trả lời sớm nhất có thể.

  • Bản quyền tài liệu bài giảng và mã nguồn liên quan đến bài giảng thuộc về giảng viên, nhưng nếu bạn cần sử dụng, vui lòng ghi rõ nguồn.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển muốn phát triển ứng dụng microservice

  • Kỹ sư muốn thiết kế kiến trúc microservices

  • Nhà phát triển muốn áp dụng các mẫu MSA dựa trên hiểu biết về MSA.

Cần biết trước khi bắt đầu?

  • Java + Spring framework

  • Spring Boot

  • Spring Cloud

Xin chào
Đây là

29,296

Học viên

1,560

Đánh giá

1,352

Trả lời

4.8

Xếp hạng

8

Các khóa học

저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.

직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다. 

최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.

머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.  

 

 

  • ) 엔제이원컴퍼니 대표 

  • ) 동국대학교 국제정보대학원 정보보호학과 대우교수

  • ) JP Morgan Chase AMJ Tech consultant (일본)

  • ) 삼성 SDS CMS 사업본부 책임 엔지니어

 

 

Chương trình giảng dạy

Tất cả

118 bài giảng ∙ (26giờ 38phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

4 đánh giá

5.0

4 đánh giá

  • gmpgs876718님의 프로필 이미지
    gmpgs876718

    Đánh giá 1

    Đánh giá trung bình 5.0

    5

    31% đã tham gia

    • hyungdooyoon8212님의 프로필 이미지
      hyungdooyoon8212

      Đánh giá 17

      Đánh giá trung bình 5.0

      5

      31% đã tham gia

      • gauri7891님의 프로필 이미지
        gauri7891

        Đánh giá 10

        Đánh giá trung bình 4.6

        5

        27% đã tham gia

        After finishing the government-funded program with Spring and starting practical work, I felt lost as I couldn't even get a feel for Spring Boot. By chance, I listened to the instructor's lecture, got the hang of it, expanded my knowledge, and was able to survive. This lecture is a good one that helps grasp the flow of MSA. Thank you for the useful lectures every time.

        • javarunner님의 프로필 이미지
          javarunner

          Đánh giá 67

          Đánh giá trung bình 5.0

          5

          15% đã tham gia

          2.301.854 ₫

          Khóa học khác của Dowon Lee

          Hãy khám phá các khóa học khác của giảng viên!

          Khóa học tương tự

          Khám phá các khóa học khác trong cùng lĩnh vực!