Kiến trúc microservice

Tai lieu
  Đánh giá    Viết đánh giá
 2      69      0
Mã tài liệu uk3cuq Danh mục Tai lieu Ngày đăng 21/2/2019 Tác giả Loại file pptx Số trang 1 Dung lượng 9.13 M Lần tải 2 Lần xem 69
Tài liệu được tải hoàn toàn Tải Miễn phí tại tailieumienphi.vn

2.Kiến trúc microservice v Chia ra thành nhiều service, mỗi service thực hiện một chức năng nhỏ. Ta có thể phân chia theo domain (Bounded context) v Mỗi ser

2.Kiến trúc microservice

v Chia ra thành nhiều service, mỗi service thực hiện một chức năng nhỏ. Ta có thể phân chia theo domain (Bounded context)

v Mỗi service quản lý một database riêng

v Các service giao tiếp với nhau qua API Gateway (HTTP, Restfull) hoặc AMQP (Message queue)

1.Kiến trúc nguyên khối Monolithic

vChỉ có 1 lõi, chứa các adapters giao tiếp với bên ngoài

vChỉ có 1 database tập trung, nhiều thuộc tính không cần thiết cho các nghiệp vụ khác nhau

Þ Dễ test, dễ phát triển, chi phí thấp, rất phổ biến với các ứng dụng đơn lẻ

v Địa ngục kiến trúc 1 khối: Khi hệ thống ngày càng lớn, khó phát triển và mở rộng

1.Kiến trúc nguyên khối Monolithic

v Monolithic ngày càng phình to

Þ Số lượng code lên đến triệu dòng

Þ Database ngày càng phình to, request nhiều lên

Þ Vấn đề sửa lỗi và triển khai tính năng mới cực kỳ khó khăn

Þ Hạn chế về mặt công nghệ

Þ Không đảm bảo tính High Available

2.Kiến trúc microservice

v Chia ra thành nhiều service, mỗi service thực hiện một chức năng nhỏ. Ta có thể phân chia theo domain (Bounded context)

v Mỗi service quản lý một database riêng

v Các service giao tiếp với nhau qua API Gateway (HTTP, Restfull) hoặc AMQP (Message queue)

2.Kiến trúc microservice

v Mô hình chuẩn

v Các thành phần chính của microservices

ØAPI Gateway

ØService Discovery

ØCentral Configuration server

ØIdentity server (Oauth 2.0)

ØDynamic Routing and Load Balancer

ØServices and databases

ØCircuit Breaker and monitoring

1.Chức năng của hệ thống không đổi nhưng các module được chia ra một cách cụ thể, giảm thiểu được sự cồng kềnh khi triển khai, giúp phát triển nhanh hơn, dễ nắm và dễ bảo trì hơn rất là nhiều so với monolithic

2.Vì được chia ra nhiều module, mỗi module có nghiệp vụ riêng biệt (như product, promotion,…) nên chia ra cho nhiều team phát triển dễ dàng. Điều này mang lại sự linh hoạt trong phát triển , mở rộng cũng như việc áp dụng các công nghệ mới vào phát triển. Miễn sao là phù hợp

  1. microservices cho phép mỗi service được đóng gói và triển khai độc lập với nhau. Tức là nó đã tách độc lập ra nhau rồi, không còn phụ thuộc vào nhau quá nhiều nên việc deploy khá nhẹ nhàng và không ảnh hương đến các service khác

4.Việc scale có thể được thực hiện dễ dàng bằng cách tăng số instance cho mỗi service rồi phân tải bằng load balancer.

 

không có viên đạn bạc (there are no silver bullets)

1.Vấn đề về giao tiếp giữa các service: chọn cách nào cho phù hợp, message queue  hay api ? Khi xảy ra sự cố, kết nối chậm, tắt nghẽn các node phải làm sao? Vấn đề khá đâu đầu đòi hỏi phải giải quyết logic và chuyên nghiệp

2.Vấn đề về giao dịch phân tán: (distributed transaction): Mỗi service là 1 database, không có AICD . Không thể đảm bảo CAP theorem

consistency: dữ liệu ở điểm khác nhau trong mạng phải giống nhau

availablity yêu cầu gửi đi phải có phúc đáp

partition tolerance hệ thống vẫn hoạt động được ngay cả khi mạng bị lỗi

=> Tính nhất quán cuối (eventually consistence), readside có thể bị lệch 1 tí không sao, nếu trong denta t đủ nhỏ. Ví dụ cập nhật giá, readside có thể sau 1 2 s mới thấy đc giá mới chăng hạn, cũng không sao. Vì khi khách đặg hang có thể là đã giá mới rồi. .

  1. Testing khá phức tạp, bởi vì: testing một dịch vụ trong kiến trúc microservices đôi khi yêu cầu phải chạy cả các dịch vụ nhỏ khác phụ thuộc.Do đó khi phân rã ứng dụng một khối thành microservices cần luôn kiểm tra mức độ ràng buộc giữa các dịch vụ. Nếu các dịch vụ nhỏ thiết kế phục thuộc vào nhau theo chuỗi. A gọi B, B gọi C, C gọi D. Nếu một mắt xích có giao tiếp API thay đổi, liệu các mắt xích khác có phải thay đổi theo không?  Phải xây dựng monitor theo dõi thường xuyên các service, quản lý log các hoạt động một cách tốt
  2. NetFlix có hơn 600 dịch vụ. Nếu deploy từng dịch vụ, triển khai từng server sẽ khó khan, khó quản lý sống chết thế nào, define static address… Cần phải dung service discovery để cập nhật tự động địa chỉ IP và cổng, dung swagger để có được document api, và dung DOCKER để deploy một cách nhanh (all in one, linh hoạt bật tắt dịch vụ)

1 Việc phân tách mỗi microservice 1 database riêng sẽ đảm bảo tính linh hoạt, không phụ thuộc. mỗi microservice ta chia tách ra theo domain , bounded context nên việc chia ra database per service sẽ quản dễ dàng hơn

2 Giả sử 100 request từ 100 microservice cùng lúc vào chung database , what happen?

3 Đảm bảo flexible trong sự thay đổi: Nếu sau này cấu trúc database thay đổi cho 1 service nào đó, thì sẽ ảnh hưởng đến service khác.

4 Việc shared database dẫn tới việc Lock transaction => long time. dụ: một transaction customer service quá lâu sẽ lock các transaction khác như order

Tuy nhiên việc dùng chung database vẫn được

1 Sẽ đảm bảo được tính AICD. sẽ đánh đổi: không always avalaible , immediately consistence. Đối với microservice thì ưu tiên A hơn C (CAP theorem)

Availability: khả năng hoạt động của hệ thống khi một trong các node bị ngừng hoạt động

Partion Tolerance: khả năng hoạt động của hệ thống khi đường mạng giữa các node bị đứt

Phải đảm bảo sao: khi một service bị die thì phải đảm bảo hệ thống phải hoạt động, không bị die. dụ: khi đặt hàng, 2 service order payment. Nếu payment bị die chẳng hạn=> đảm bảo đơn hàng vẫntrạng thái chưa thành toán. Chứ hệ thống khong bị crash hủy đơn hàng hay đó

 

2 Đơn giản, dễ triển khai, đặc biệt nếu chuyển từ monolithic qua

 

3 Dùng 2pc (two phase commit )

 

Phase 1 gửi lệnh commit phase 2 commit. Nếu request nào bị lỗi sẽ thực hiện undo hết.

 

2.API Gateway ?

v API Gateway là cửa ngỏ dịch vụ

vChe dấu được cấu trúc của hệ thống microservices với bên ngoài

v Tránh việc client request trực tiếp đến từng microservice, tốn tải băng thông

Þ Khả dụng trên cellular networks (latency network)

Þ Đảm bảo tính High Available

v Tránh các giao thức không thân thiện từ client đến

v  Giảm thiểu vấn đề khó khăn trong việc tái cấu trúc microservices

  HƯỚNG DẪN DOWNLOAD TÀI LIỆU


Bước 1:Tại trang tài liệu tailieumienphi.vn bạn muốn tải, click vào nút Download màu xanh lá cây ở phía trên.
Bước 2: Tại liên kết tải về, bạn chọn liên kết để tải File về máy tính. Tại đây sẽ có lựa chọn tải File được lưu trên tailieumienphi.vn
Bước 3: Một thông báo xuất hiện ở phía cuối trình duyệt, hỏi bạn muốn lưu . - Nếu click vào Save, file sẽ được lưu về máy (Quá trình tải file nhanh hay chậm phụ thuộc vào đường truyền internet, dung lượng file bạn muốn tải)
Có nhiều phần mềm hỗ trợ việc download file về máy tính với tốc độ tải file nhanh như: Internet Download Manager (IDM), Free Download Manager, ... Tùy vào sở thích của từng người mà người dùng chọn lựa phần mềm hỗ trợ download cho máy tính của mình


 
Mã tài liệu
uk3cuq
Danh mục
Tai lieu
Thể loại
Ngày đăng
21/2/2019
Loại file
pptx
Số trang
1
Dung lượng
9.13 M
Lần xem
69
Lần tải
2
 
LINK DOWNLOAD

Kien-truc-microservice.pptx[9.13 M]

File đã kiểm duyệt
     Báo vi phạm bản quyền Phần mềm chuyển PDF thành .Doc
Pass giải nén (Nếu có):
tailieumienphi.vn
DOWNLOAD
(Miễn phí)

Bạn phải gởi bình luận/ đánh giá để thấy được link tải

Nếu bạn chưa đăng nhập xin hãy chọn ĐĂNG KÝ hoặc ĐĂNG NHẬP

BÌNH LUẬN


Nội dung bậy bạ, spam tài khoản sẽ bị khóa vĩnh viễn, IP sẽ bị khóa.
Đánh giá(nếu muốn)
 BÌNH LUẬN

ĐÁNH GIÁ


ĐIỂM TRUNG BÌNH

0
0 Đánh giá
Tài liệu rất tốt (0)
Tài liệu tốt (0)
Tài liệu rất hay (0)
Tài liệu hay (0)
Bình thường (0)

Tài liệu tương tự

TÀI LIỆU NỔI BẬT