Mẫu thiết kế microservice cheat sheet

Trước hết, chúng ta cần hiểu thuật ngữ "nền tảng" có nghĩa là gì đối với tổ chức. Trong thế giới ngày nay, thuật ngữ 'nền tảng' là một từ thông dụng được sử dụng quá mức đến nỗi nó hầu như vô nghĩa. Nền tảng tồn tại ở nhiều cấp độ trong ngăn xếp công nghệ. phần cứng, trung tâm dữ liệu, cơ sở dữ liệu, nhắn tin, v.v. và cũng có thể được sử dụng để mô tả hệ sinh thái trải nghiệm người dùng

Quan điểm được trình bày ở đây rõ ràng là tập trung vào kinh doanh. 'nền tảng' thực sự là phương pháp thể hiện và phát triển mô hình kinh doanh kỹ thuật số và các dịch vụ của nó. Vì vậy, các quy tắc cơ bản sau xác định nền tảng là dữ liệu kỹ thuật số phía máy chủ, dữ liệu phụ trợ và chức năng, để trải nghiệm người dùng được tạo ra (dù là thiết bị di động, web hay loại khác) trên chức năng kinh doanh đó

Định nghĩa 'nền tảng' tập trung vào API này cho phép

  • Sửa đổi trải nghiệm người dùng nhanh chóng
  • Trải nghiệm người dùng nhất quán trên các thiết bị
  • Thích ứng kênh tốt hơn
  • Tích hợp bên thứ ba nhanh hơn và rẻ hơn
  • Tăng khả năng đổi mới

Quy tắc cơ bản của nền tảng

  1. Ứng dụng  di động là công dân hạng nhất và người tiêu dùng của nền tảng.
    • Đặt ưu tiên cho thiết bị di động sẽ tăng tính dễ sử dụng và khả năng tiếp nhận cho mọi người
  2. Nền tảng hiển thị dữ liệu và chức năng của nó thông qua một bộ API RESTful hoàn chỉnh
    • Chiến lược dựa trên API tối đa hóa khả năng tái sử dụng và tính linh hoạt
  3. Tất cả các giao diện và sự kiện của dịch vụ đều được thiết kế từ đầu để công khai
    • Nguyên nhân thiết kế để dễ sử dụng, linh hoạt và tái sử dụng
  4. Mỗi nhóm nhà phát triển truy cập vào tất cả các API bằng khóa nhà phát triển đã đăng ký riêng của nhóm họ
    • Cải thiện bảo mật, khả năng kiểm toán
  5. Có một nguồn mã thông báo duy nhất và định dạng cho tất cả các API
    • Hỗ trợ dễ sử dụng và đảm bảo tất cả các chức năng có sẵn cho người tiêu dùng
  6. Nền tảng sẽ thông báo cho những người quan sát quan tâm về tất cả các thay đổi trạng thái tài nguyên thông qua các sự kiện được tổng hợp đầy đủ
    • Cho phép đồng bộ hóa không đồng bộ (đối với tất cả các thay đổi trạng thái tạo, cập nhật, xóa)
  7. Tất cả các API sử dụng một danh tính duy nhất để đại diện cho người tiêu dùng/người dùng
    • Cho phép phân tích và suy luận về người tiêu dùng
  8. Tất cả các API đều có giao diện nhất quán và được ghi lại ở một vị trí duy nhất, có sẵn công khai
    • Tối đa hóa khả năng tái sử dụng và dễ sử dụng
  9. Không có giao diện riêng. Không có cửa hậu. Không có cơ sở dữ liệu được chia sẻ giữa các nhóm (Quan sát 'Bối cảnh giới hạn')
    • Đảm bảo các giao diện công cộng là âm thanh
  10. API được triển khai trong kiến ​​trúc phân tán, luôn bật (đa nút, đa vùng và đa vùng) với nguyên tắc hướng tới khả năng phục hồi
    • Quy mô ngang về phần cứng hàng hóa, phạm vi toàn cầu. Tính đến những thất bại không thể tránh khỏi

  1. Xây dựng API chú trọng đến người tiêu dùng–như một sản phẩm theo đúng nghĩa của nó
    • Không dành cho một giao diện người dùng cụ thể
    • Nắm bắt tính linh hoạt / khả năng điều chỉnh của từng điểm cuối (xem #5, 6 & 7)
    • Ăn thức ăn cho chó của riêng bạn, ngay cả khi bạn phải mô phỏng giao diện người dùng mẫu
  2. Sử dụng ẩn dụ tập hợp
    • Hai URL (điểm cuối) cho mỗi tài nguyên
      • Bộ sưu tập tài nguyên (e. g. /đơn đặt hàng)
      • Tài nguyên cá nhân trong bộ sưu tập (e. g. /đơn hàng/{orderId})
    • Sử dụng dạng số nhiều ('orders' thay vì 'order')
    • Thay thế các tên tài nguyên có ID dưới dạng các nút URL (e. g. /đơn hàng/{orderId}/items/{itemId})
    • Giữ URL càng ngắn càng tốt. Tốt nhất là không quá ba nút trên mỗi URL
  3. Sử dụng danh từ làm tên tài nguyên (e. g. không sử dụng động từ trong URL)
  4. Làm cho các biểu diễn tài nguyên có ý nghĩa
    • “Không có ID khỏa thân. ” Không có ID đơn giản nào được nhúng trong phản hồi. Sử dụng các liên kết và đối tượng tham chiếu
    • Biểu diễn tài nguyên thiết kế. Không chỉ đại diện cho các bảng cơ sở dữ liệu
    • Hợp nhất các đại diện. Không hiển thị các bảng quan hệ dưới dạng hai ID
  5. Hỗ trợ lọc, sắp xếp và phân trang trên các bộ sưu tập
  6. Hỗ trợ liên kết mở rộng các mối quan hệ. Cho phép khách hàng mở rộng dữ liệu có trong phản hồi bằng cách bao gồm các biểu diễn bổ sung thay vì hoặc bổ sung cho các liên kết
  7. Hỗ trợ dự báo trường trên tài nguyên. Cho phép khách hàng giảm số lượng trường quay lại trong phản hồi
  8. Sử dụng tên phương thức HTTP để có ý nghĩa gì đó
    • POST – tạo và các hoạt động không bình thường khác
    • PUT – cập nhật
    • NHẬN – đọc tài nguyên hoặc bộ sưu tập
    • XÓA – xóa tài nguyên hoặc bộ sưu tập
  9. Sử dụng mã trạng thái HTTP để có ý nghĩa
    • 200 – Thành công
    • 201 – Đã tạo. Trả về khi tạo thành công tài nguyên mới. Bao gồm tiêu đề 'Vị trí' với liên kết đến tài nguyên mới được tạo
    • 400 – Yêu cầu sai. Các vấn đề về dữ liệu như JSON không hợp lệ, v.v.
    • 404 không tìm thấy. Không tìm thấy tài nguyên trên GET
    • 409 – Xung đột. Dữ liệu trùng lặp hoặc trạng thái dữ liệu không hợp lệ sẽ xảy ra
  10. Sử dụng các định dạng mốc thời gian ISO 8601 cho các ngày trong biểu diễn
  11. Xem xét sự kết nối bằng cách sử dụng chiến lược liên kết. Một số ví dụ phổ biến là
    • HAL
    • Còi báo động
    • JSON-LD
    • Bộ sưu tập + JSON
  12. Sử dụng OAuth2 để bảo mật API của bạn
    • Sử dụng mã thông báo Bearer để xác thực
    • Yêu cầu HTTPS/TLS/SSL để truy cập API của bạn. Mã thông báo Bearer OAuth2 yêu cầu nó. Giao tiếp không được mã hóa qua HTTP cho phép nghe lén và mạo danh đơn giản
  13. Sử dụng thương lượng Loại nội dung để mô tả tải trọng yêu cầu đến. Ví dụ: giả sử bạn đang thực hiện xếp hạng, bao gồm xếp hạng thích/không thích và xếp hạng năm sao. Bạn có một lộ trình để tạo xếp hạng. ĐĂNG /xếp hạng

    Làm cách nào để bạn phân biệt dữ liệu đến với dịch vụ để dịch vụ có thể xác định đó là loại xếp hạng nào. thích hay năm sao?

    Sự cám dỗ là tạo một lộ trình cho từng loại xếp hạng. POST /ratings/ five_star và POST /ratings/thumbs_up

    Tuy nhiên, bằng cách sử dụng thương lượng Loại nội dung, chúng tôi có thể sử dụng cùng một lộ trình POST /xếp hạng cho cả hai loại. Bằng cách đặt tiêu đề Content-Type trên yêu cầu thành Content-Type. đơn/đồng. Công ty. Xếp hạng. Thumbsup hoặc Content-Type. đơn/đồng. Công ty. Xếp hạng. fivestar máy chủ có thể xác định cách xử lý dữ liệu xếp hạng đến

    Mẫu thiết kế tốt nhất cho microservice là gì?

    1. SOA chi tiết . SOA chi tiết là cách tiếp cận phổ biến nhất đối với microservice khi mới bắt đầu. Mẫu này áp dụng các nguyên tắc giống như kiến ​​trúc hướng dịch vụ nhưng giảm các vấn đề thường phát sinh bằng cách chia nhỏ cơ sở hạ tầng thành các phần nhỏ hơn, chi tiết hơn.

    Các mẫu thiết kế cho microservice là gì?

    Các mẫu thiết kế của Microservices .
    tổng hợp
    Cổng API
    Xiềng xích hoặc Chuỗi trách nhiệm
    Nhắn tin không đồng bộ
    Cơ sở dữ liệu hoặc dữ liệu được chia sẻ
    tìm nguồn cung ứng sự kiện
    Ngành
    Bộ phân tách trách nhiệm truy vấn lệnh

    23 mẫu thiết kế là gì?

    Danh sách 23 mẫu gốc

    Những mẫu thiết kế nào được sử dụng cho microservice Spring Cloud?

    Các mẫu Khám phá phía máy khách và Khám phá phía máy chủ được sử dụng để định tuyến các yêu cầu của một máy khách tới một phiên bản dịch vụ có sẵn trong một vi dịch vụ .