Some Thoughts About Microservice Adoption

  sonic0002        2025-01-01 19:32:16       2,545        0          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

Ngày nay, microservice rất phổ biến trong các công ty với sự gia tăng độ phức tạp của hệ thống. Mục tiêu là để mỗi microservice xử lý một công việc cụ thể và xử lý tốt công việc đó. Điều này thường mang lại lợi ích là dễ dàng bảo trì dịch vụ, cô lập lỗi và làm cho dịch vụ đáng tin cậy và khả năng mở rộng hơn.

Những lợi ích của việc áp dụng microservice là rõ ràng.

  • Khả năng bảo trì. Tách rời các chức năng để mỗi chức năng có thể được bảo trì riêng biệt, điều này làm giảm nguy cơ sự cố do lỗi trong mã khác không liên quan đến chức năng này. Nó có thể dễ dàng được bảo trì bởi nhóm ứng dụng với phạm vi chuyên dụng.
  • Dễ triển khai. Nếu một dự án rất lớn và có rất nhiều nhà phát triển đóng góp mã vào cùng một dịch vụ, việc triển khai và hoàn nguyên dịch vụ sẽ gặp vấn đề vì khả năng có lỗi cao hơn và đôi khi một số thay đổi của nhà phát triển phải được đưa vào nhưng họ phải hoàn nguyên do lỗi trong mã của nhà phát triển khác. Mô hình microservice sẽ giảm bớt những rắc rối đó ở một mức độ nào đó.
  • Linh hoạt trong lựa chọn công nghệ. Vì mỗi microservice là một chức năng độc lập và được lưu trữ riêng biệt. Bộ công nghệ có thể khác nhau đối với mỗi dịch vụ. Điều này có nghĩa là mỗi nhóm dịch vụ có thể chọn bộ công nghệ phù hợp nhất cho dịch vụ và nhóm cảm thấy thoải mái. Đó có thể là GoLang, Java hoặc Python, v.v.
  • Dễ mở rộng. Nếu lưu lượng truy cập dịch vụ tăng đột biến, phiên bản dịch vụ có thể được khởi chạy nhanh chóng vì nó sẽ không quá nặng và không cần khởi động quá nhiều quy trình.
  • Dễ di chuyển. Trong trường hợp một số chức năng có thể được thay thế bằng dịch vụ khác, điều đó có nghĩa là chỉ hệ thống thượng nguồn hoặc hạ nguồn cần kết nối với dịch vụ mới và loại bỏ dịch vụ cũ sau khi quá trình di chuyển hoàn tất.

Tuy nhiên, mọi thứ đều có hai mặt, với những lợi ích này, microservice cũng mang lại những vấn đề cho các công ty nếu không được xử lý đúng cách trong các dự án thực tế.

Dưới đây là một số vấn đề mà nó sẽ gây ra nếu microservice không được áp dụng đúng cách.

  • Khả năng bảo trì. Với mỗi microservice mới được giới thiệu, sẽ có một tập hợp cơ sở hạ tầng mới (thí dụ máy chủ, kết nối mạng, nhóm bảo mật, v.v.) cần được thiết lập và bảo trì. Những cấu hình này cần được bảo trì tốt, đặc biệt là trong môi trường đám mây. Điều này làm tăng thách thức cho các SRE.
  • Khả năng mở rộng. Khi có bất kỳ nâng cấp hoặc vá nào cần được thực hiện, sẽ có thêm công việc cho SRE để xử lý tất cả các phiên bản của mỗi dịch vụ. Khi nó trở nên lớn, điều này sẽ quá sức.
  • Khả năng sẵn sàng. Mỗi dịch vụ đang giao tiếp thông qua HTTP hoặc RPC, do đó nó có yêu cầu cao về kết nối mạng và sẽ gây ra sự cố nếu kết nối mạng không ổn định và do đó độ trễ sẽ tăng lên.
  • Sự phụ thuộc. Nếu được thiết kế không đúng cách, nó sẽ gây ra vấn đề phụ thuộc, trong đó một dịch vụ phải được triển khai sau khi triển khai dịch vụ khác vì sẽ có một số nội dung mới được thêm vào và chia sẻ giữa hai dịch vụ.
  • Tính nhất quán. Trong môi trường phân tán, mỗi dịch vụ xử lý trách nhiệm của riêng mình. Sẽ cần một bộ điều phối nếu một số chức năng cần được hoàn thành như một tổng thể. Trong trường hợp đó, khó khăn trong việc duy trì tính nhất quán trạng thái sẽ tăng lên và nếu một dịch vụ không đáp ứng được một số yêu cầu, tất cả các dịch vụ khác cần được thông báo và hoàn nguyên lại cho phù hợp.
  • Độ phức tạp về công nghệ. Như đã đề cập trong phần lợi ích, mỗi dịch vụ có thể có bộ công nghệ riêng. Nhược điểm của điều này là không tốt cho mọi người khi chuyển đổi giữa các dịch vụ. Một số người có thể không biết về ngôn ngữ được sử dụng bởi dịch vụ khác và khi họ chuyển sang nhóm khác hoặc tiếp quản dịch vụ khác, điều đó sẽ làm tăng đường cong học tập và làm chậm quá trình chuyển đổi.

Hãy thận trọng xem bạn có muốn có một microservice mới bất cứ khi nào một chức năng mới được giới thiệu hay không. Một số lời khuyên chung được ghi lại bên dưới.

  • Cố gắng có mẫu chuẩn về việc tạo microservice mới. Điều này nên bao gồm lý do tại sao cần một dịch vụ mới, bộ công nghệ được sử dụng, cách dịch vụ tương tác với các dịch vụ khác, v.v. Và nó cần được xem xét bởi một nhóm người từ các nhóm khác nhau để xác định xem có nên tạo dịch vụ mới hay không.
  • Cần cung cấp một công cụ hoặc quy trình để một dịch vụ mới có thể được thiết lập dễ dàng mà không cần nhóm dịch vụ tự thiết lập mọi thứ (ví dụ máy chủ, cơ sở dữ liệu, bộ nhớ cache, cổng API, v.v.).
  • Bộ công nghệ chung được sử dụng trên các microservice để dễ quản lý và di chuyển xung quanh trong công ty.

ADVANTAGE  DISADVANTAGE  MICRO SERVICE 

       

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

PHP is the best