TIẾP CẬN CHUYỂN ĐỔI SỐ SỬ DỤNG KIẾN TRÚC MICROSERVICE 

Trong những năm gần đây, chuyển đổi số đang diễn ra mạnh mẽ ở các quốc gia trên thế giới. Trong đó có nhiều cách thức thực hiện khác nhau, phong cách tiếp cận kiến trúc khác nhau. Phong cách kiến trúc Microservice đang được chú ý tới nhiều trong những năm gần đây. Dưới dây giới thiệu một số nội dung về microservice và cách tiếp cận kiến trúc này trong chuyển đổi số từ góc nhìn của các kiến trúc sư quốc tế.

Microservices về cơ bản là các thành phần nhỏ có thể triển khai độc lập bởi nhóm người chịu trách nhiệm thiết kế, phát triển, triển khai và hoạt động của các thành phần. Tuy nhiên, Microservices có một sự phân đôi cố hữu, ủng hộ mạnh mẽ việc phân rã thành phần nhỏ thành các chức năng nghiệp vụ để quản lý chức năng tốt hơn, nhưng cung cấp thách thức tích hợp.

Chuyển đổi số thành công với Microservices đòi hỏi phải tập trung nhiều hơn vào việc tích hợp toàn diện của toàn bộ hệ sinh thái ứng dụng sao cho sản phẩm hệ thống hoạt động như một đơn vị gắn kết duy nhất và thúc đẩy sự thay đổi văn hóa trong tổ chức.

Việc chuyển đổi sang Microservices không chỉ là một thay đổi về mặt kỹ thuật mà còn có tác động rộng lớn hơn trong tổ chức, yêu cầu phải chuyển đổi cả về con người, quy trình và công nghệ.

Điều cần thiết là đạt được sự thống nhất về cách tiếp cận chuyển đổi trong tổ chức. Lãnh đạo cấp cao các bên liên quan đóng một vai trò quan trọng và nếu không có chuyển đổi số từ chính các bên liên quan đó thì không thể khởi đầu. Các bước để thu hút lãnh đạo cấp cao các bên liên quan tham gia vào quá trình chuyển đổi là chuẩn bị tầm nhìn, mục tiêu trong ngắn hạn và dài hạn và lộ trình để đạt được mục tiêu. Dịch chuyển sang Microservices không phải là mục tiêu và không nên là mục tiêu!! Các mục tiêu phải được thể hiện dưới dạng lợi ích, tác động tới hoạt động, phân phối và bảo trì phần mềm và tác động đến trải nghiệm của khách hàng. Những mục tiêu này sẽ đặt ra những kỳ vọng tổng thể về những gì được yêu cầu.

Microservice là gì?

Kiến trúc microservice hay đơn giản microservices là một phương pháp phát triển hệ thống phần mềm đặc biệt cố gắng tập trung vào việc xây dựng các mô-đun đơn chức năng với các giao diện và hoạt động được xác định rõ ràng. Xu hướng này đã trở nên phổ biến trong những năm gần đây khi các tổ chức mong muốn trở nên Agile hơn và hướng tới DevOps và thử nghiệm liên tục.

Microservices có nhiều lợi ích cho các nhóm Agile và DevOps - như Martin Fowler đã chỉ ra, Netflix, eBay, Amazon, Twitter, PayPal và các ngôi sao công nghệ khác đều đã phát triển từ kiến trúc nguyên khối sang Microservices. Không giống như Microservices, một ứng dụng nguyên khối được xây dựng như một đơn vị duy nhất. Điều này làm cho các thay đổi đối với ứng dụng bị chậm vì nó ảnh hưởng đến toàn bộ hệ thống. Chỉ thực hiện sửa đổi đối với đoạn mã nhỏ có thể yêu cầu xây dựng và triển khai một phiên bản phần mềm hoàn toàn mới. Chia tỷ lệ các chức năng cụ thể của một ứng dụng, cũng có nghĩa là phải mở rộng quy mô toàn bộ ứng dụng.

Microservices giải quyết những thách thức này của các hệ thống nguyên khối bằng cách mô-đun hóa càng nhiều càng tốt. Ở dạng đơn giản nhất, giúp xây dựng một ứng dụng dưới dạng một bộ các dịch vụ nhỏ, mỗi dịch vụ chạy trong quy trình riêng và có thể triển khai độc lập. Các dịch vụ này có thể được viết bằng các ngôn ngữ lập trình khác nhau và có thể sử dụng các kỹ thuật lưu trữ dữ liệu khác nhau. Mặc dù điều này dẫn đến việc phát triển các hệ thống có thể mở rộng và linh hoạt, nhưng nó cần một sự thay đổi năng động. Các dịch vụ nhỏ thường được kết nối thông qua API và có thể tận dụng nhiều công cụ và giải pháp tương tự đã phát triển trong hệ sinh thái dịch vụ web và RESTful. Việc kiểm tra các API này có thể giúp xác thực luồng dữ liệu và thông tin trong suốt quá trình triển khai Microservice.

Đặc trưng cơ bản Microservice

Nhiều thành phần: Phần mềm được xây dựng dưới dạng microservices có thể được chia thành nhiều thành phần dịch vụ nhỏ để mỗi dịch vụ này có thể được triển khai, tinh chỉnh và sau đó triển khai lại một cách độc lập mà không ảnh hưởng đến tính toàn vẹn của ứng dụng. Do vậy, có thể chỉ cần thay đổi một hoặc nhiều dịch vụ riêng biệt thay vì phải triển khai lại toàn bộ ứng dụng.

Được xây dựng cho doanh nghiệp: Phong cách Microservices thường được tổ chức xung quanh năng lực và mức độ ưu tiên nghiệp vụ. Không giống như cách tiếp cận phát triển nguyên khối truyền thống - trong đó các nhóm khác nhau có trọng tâm cụ thể, chẳng hạn như giao diện người dùng, cơ sở dữ liệu, lớp công nghệ hoặc phía máy chủ — kiến trúc microservice sử dụng các nhóm chức năng chéo. Trách nhiệm của mỗi nhóm là tạo ra các sản phẩm cụ thể dựa trên một hoặc nhiều dịch vụ riêng lẻ giao tiếp qua bus thông điệp.

Định tuyến đơn giản: Microservices hoạt động giống như hệ thống UNIX cổ điển: nhận các yêu cầu, xử lý chúng và tạo ra phản hồi tương ứng. Điều này trái ngược với cách hoạt động của nhiều sản phẩm ESBs khác – sử dụng các hệ thống công nghệ cao để định tuyến thông điệp, dàn dựng và áp dụng các quy tắc nghiệp vụ.

Phi tập trung: Vì microservices liên quan đến nhiều công nghệ và nền tảng khác nhau, các phương pháp quản trị tập trung kiểu cũ không phải là tối ưu. Quản trị phi tập trung được cộng đồng microservices ưa thích vì các nhà phát triển cố gắng tạo ra các công cụ hữu ích mà sau đó những người khác có thể sử dụng để giải quyết các vấn đề tương tự. Cũng giống như quản trị phi tập trung, kiến trúc microservice cũng hỗ trợ quản lý dữ liệu phi tập trung. Các hệ thống nguyên khối sử dụng một cơ sở dữ liệu logic duy nhất trên các ứng dụng khác nhau. Trong ứng dụng microservice, thường mỗi dịch vụ quản lý cơ sở dữ liệu duy nhất của riêng mình.

Hình 1: Kiến trúc Microservice và Kiến trúc nguyên khối (monolithic)

Microservices có thực sự cần thiết không? Không phải lúc nào cũng cần!!

Dựa trên các mục tiêu, trước tiên đánh giá xem Microservices có thực sự cần thiết hay không. Nếu có ứng dụng nguyên khối (monolith) tương đối ổn định và các tính năng cải tiến được quản lý hiệu quả, có thể không cần chuyển đổi sang Microservices.

Không phải tất cả các tổ chức đều có vấn đề và mục tiêu yêu cầu cần chuyển đổi sang Microservices. Một số vấn đề có thể liên quan đến lĩnh vực cụ thể, như thời gian cung cấp phần mềm chẳng hạn. Điều này không bắt buộc phải thay đổi phong cách kiến trúc thành Microservices, thay vào đó nên tập trung vào các lựa chọn cung cấp khác nhau như SAFe, Agile hoặc bất kỳ hình thức cung cấp nào khác. Microservices có thể tạo ra một số đòn bẩy nhưng chỉ nên được sử dụng nếu lợi ích tổng thể lớn hơn đáng kể những nỗ lực chuyển đổi.

Microservices có phải là giải pháp dễ dàng? Không!!

Nếu một tổ chức có nhiều vấn đề về công nghệ và yêu cầu phải trải qua quá trình chuyển đổi số, thì Microservices không phải là câu trả lời duy nhất. Microservices không nên được xem như một giải pháp để có thể giải quyết mọi vấn đề công nghệ. Như với bất kỳ phong cách kiến trúc nào, nó có những mặt hạn chế. Microservices không ủng hộ việc thay đổi triết lý của tổ chức theo hướng xây dựng và quản lý phần hệ thống. Nếu triết lý của tổ chức là 'Buy not build' thì phương pháp này vẫn có thể được tuân thủ. Điều này không có nghĩa là sử dụng các sản phẩm COTS thì Microservices không thể tồn tại. Nó có thể tồn tại rất tốt nhưng sẽ có một số giới hạn, hạn chế nhất định.

Microservices, Mức độ triển khai như thế nào? Cải tiến và đổi mới !!

Không nên xem Microservices dưới dạng “đen và trắng” vì vậy tất cả các nguyên tắc của Microservices phải được tuân thủ đến dấu chấm và dấu gạch ngang cuối cùng. Thay vào đó, Microservice nên được xem như các sắc thái khác nhau của màu xám. Điều quan trọng là phải hiểu bản chất của từng nguyên tắc và đặc tính của Microservices cùng với cơ sở lý luận, mục tiêu và chỉ áp dụng nếu nó làm tăng giá trị cho kiến trúc tổng thể. Không bắt buộc phải chia tách cơ sở dữ liệu cho từng Microservices hay Micro Frontend. Các giải pháp có thể được cải tiến, thay vì có các cơ sở dữ liệu riêng biệt về mặt vật lý, dữ liệu có thể được phân tách một cách hợp lý với sự quản lý chặt chẽ. Những cách tiếp cận này có thể không đem lại đầy đủ lợi ích của Microservices nhưng có thể giúp đạt được một số lợi ích và giải quyết các vấn đề của tổ chức.

Mỗi tổ chức khác nhau có những nhu cầu khác nhau, triết lý khác nhau và sức mạnh nguồn cung ứng khác nhau và do đó, điều quan trọng là phải quyết định mức độ Microservices nên được triển khai. Mọi tổ chức cần chuẩn bị sẵn sàng để cải tiến nếu cần, để làm cho Microservices phù hợp với hệ thống của mình.

Micro Frontend đang phát triển, nếu vấn đề quan trọng của tổ chức là nâng cao và vận hành lớp UI thì hãy chuẩn bị để đổi mới và phát triển các giải pháp với các công nghệ front end khác nhau. Đổi mới không nhất thiết phải là một cái gì đó hoàn toàn mới mà là một giải pháp hoạt động dựa trên các công nghệ có sẵn cho tổ chức.

Cũng cần lưu ý rằng không phải tất cả các lợi ích của Microservices đều có thể được suy sét như nhau. Ngoài ra, không có trọng số tiêu chuẩn ngành nào cho từng lợi ích của Microservices. Nó phụ thuộc vào tổ chức, một số tổ chức có thể suy sét quyền tự chủ của nhóm nhiều hơn thời gian đi ra thị trường. Lộ trình chuyển đổi số phải cung cấp trọng số cho từng lợi ích tiềm năng của Microservices. Đây sẽ là yếu tố then chốt trong việc xác định cách tiếp cận giải pháp cho Microservices.

Khi nào bắt đầu? Bắt đầu nhỏ và sau đó mở rộng !!

Chuyển đổi số hoàn toàn bằng cách sử dụng toàn diện Microservices không phải là một ý tưởng hay. Có thể thách thức rất lớn với nguy cơ thất bại cao. Cách tiếp cận hiển nhiên là bắt đầu quy mô nhỏ và mở rộng khi một số quy trình cơ bản và Microservices đã được thiết lập. Việc chuyển đổi số sử dụng Microservices là một hành trình và nhiều thứ có thể thay đổi. Công nghệ luôn thay đổi - sự lựa chọn công nghệ được thực hiện khi bắt đầu chuyển đổi có thể được thay thế bằng các phiên bản mới của cùng loại hoặc thứ gì đó tốt hơn. Điều quan trọng là phải chuẩn bị và nhận ra nhu cầu thích ứng với những thay đổi, cả thay đổi công nghệ và thay đổi nghiệp vụ. Điều cần thiết là thực hiện từng bước nhỏ, đánh giá, khám phá và sau đó chuyển sang giai đoạn tiếp theo.

Nguyễn Thanh Thảo

Tài liệu tham khảo:

- Tiếp cận chuyển đổi số sử dụng kiến trúc Microservice, tác giả Kiến trúc sư Arlin;

- Kiến trúc Microservices https://smartbear.com/solutions.

254 Go top

Tin nổi bật

Ý kiến về Trang thông tin điện tử Cục Tin học hóa?
1. Đạt yêu cầu, 1180 phiếu (88 %)
2. Chưa đạt yêu cầu, 107 phiếu (8 %)
3. Cần thêm chủ đề, 57 phiếu (4 %)
Tổng số phiếu: 1344
THÔNG KÊ TRUY CẬP
  • Người trực tuyến Người trực tuyến
    • Khách Khách 49
    • Thành viên Thành viên 0
    • Tổng Tổng 49
    • Tổng lượt truy cập: Tổng lượt truy cập: 16558246