Microservices là gì? Lợi ích của việc ứng dụng Microservice vào hệ thống

0
Dịch vụ dạy kèm gia sư lập trình

Bạn đã bao giờ nghe tới hai khái niệm Microservices và API chưa? Gần đây, khi công nghệ điện toán đám mây phát triển, người ta nhắc nhiều đến microservices, còn API thì quá quen rùi đúng không?

Trước đây, mình cũng hay nhầm lẫn, cứ tưởng microservice và API là hai kỹ thuật giống nhau. Nhưng khi làm việc nhiều, tìm hiểu kỹ hơn thì mới nhận ra, chúng là hai khái niệm bổ sung cho nhau.

Mặc dù, microservice cho phép người dùng truy cập vào tài nguyên thông qua API. Nhưng chiều ngược lại, không phải mọi microservice đều dùng, hay cần tới API.

Qua bài viết này sẽ tổng hợp lại kiến thức trong quá trình mình tìm hiểu microservice là gì.

Tổng quan Microservice và API

Mình đã có hẳn một bài viết về tìm hiểu đầy đủ về API, khái niệm API là gì và ứng dụng của nó trong các dự án thực tế. Bạn có thể tham khảo lại nhé.

Ở đây, mình chỉ tóm gọn lại như sau:

Microservice là kỹ thuật chia hệ thống ứng dụng lớn thành những phần chạy độc lập với nhau. Theo binh pháp tôn tử, người ta gọi là “Chia để trị”.

Microservices-va-monolithic

Nhờ cách làm này mà nhà phát triển sẽ linh hoạt hơn trong việc xây dựng hệ thống, đẩy nhanh được tiến độ dự án do các team có thể làm việc đồng thời.

Mặt khác, API là cầu nối giao tiếp, trao đổi dữ liệu giữa các microservice với nhau. Nhờ API mà các Microservice hoạt động độc lập nhưng dữ liệu vẫn được đồng bộ với nhau.

Có rất nhiều loại microservice chỉ thực hiện các tác vụ nội bộ, không cần phải trao đổi dữ liệu với bên ngoài. Tương tự, cũng có rất nhiều cách tạo API mà không cần sử dụng microservice. Do vậy, mình mới nói hai công nghệ này thực chất là bổ sung cho nhau, chứ không phải cạnh tranh trực tiếp với nhau.

Microservice là gì?

Microservice là những phần mềm nhỏ, chạy độc lập trong hệ thống, thực hiện duy nhất một tác vụ nào đó.

Ví dụ đơn giản cho dễ hình dung hơn nhé. Để xây dựng một ứng dụng web, theo cách truyền thống, chúng ta sẽ xây dựng theo mô hình MVC và đóng gói hết vào một dự án. Từ phần giao diện, Database, quản trị, các tác vụ quản lý, lập lịch.v.v… đều đóng gói cùng nhau.

Với cách làm này, các thành phần trong dự án có thể tương tác trực tiếp với nhau. Tuy nhiên, nếu một trong các thành phần này gặp sự cố thì cả ứng dụng sẽ bị sập.

Còn với cách làm theo kiểu microservice, chúng ta sẽ chia ứng dụng web thành những phần nhỏ và chạy độc lập với nhau. Ví dụ phần giao diện riêng, phần xử lý dữ liệu với database riêng… các thành phần này giao tiếp với nhau thông qua API.

microservices-example

Lợi ích sử dụng Microservice

Kiến trúc microservice là đại diện cho việc thay đổi mô hình so với kiến trúc nguyên khối truyền thống.

Tự dưng mình nghĩ tới hai thằng GIT và SVN. Nó cũng tương đồng so câu chuyện chúng ta đang đề cập tới ở đây. Tức là, với microservice, chúng ta xây dựng phần mềm theo kiểu phân tán, các thành phần độc lập với nhau từ khâu phát triển, kiểm thử cho tới deploy.

Dưới đây là một số ưu điểm của Microservice so với kiến trúc truyền thống:

  • Mã nguồn nhỏ gọn: Thay vì phải tạo một phát cả cái oto to đùng, bạn sẽ xây dựng từng phần như động cơ, phần khung, bánh… rồi lắp ghép lại.
  • Phát triển độc lập: Vì các microservice là các dự án khác nhau, độc lập với nhau nên các team có thể phát triển cùng lúc, deploy độc lập trên các hạ tầng khác nhau…
  • Dể mở rộng: Không phải tất cả chức năng của hệ thống đều được người dùng sử dụng nhiều. Thay vì phải nâng cấp tài nguyên máy chủ cho cả hệ thống thì chỉ cần tập trung nâng cấp tài nguyên cho microservice nào thực sự cần mà thôi.

Khi nào thì sử dụng Microservice cho hệ thống của bạn?

Mỗi kỹ thuật, công nghệ đều có ưu điểm và nhược điểm riêng, với microservice cũng vậy.

Khi nào thì microservice phù hợp với hệ thống của bạn?

Dưới đây là một số trường hợp mà bạn nên sử dụng microservice:

  • Khi tái cấu trúc ứng dụng cũ: Do nhu cầu thực tiễn, hệ thống của bạn cần phải chuyển nhà lên hạ tầng cloud, hoặc cần thay đổi chức năng, thêm tính năng mới… Đây là lúc bạn nghĩ tới microservice, nó cho phép bạn xây dựng dần dần và giảm độ phức tạp về kỹ thuật.
  • Xử lý dữ liệu thời gian thực: Ví dụ các hệ thống của ngân hàng, đặt phòng trực tuyến… đều nền sử dụng microservice để thực hiện các hoạt động yêu cầu độ trễ thấp, trả kết quả ngay lập tức.
  • Các ứng dụng cung cấp tài nguyên cho bên thứ ba: Vì ứng dụng của bạn dạng kiểu cung cấp dịch vụ, người sử dụng là một bên thứ 3 nào đó. Do đó, có thể sẽ cần tới nhiều tài nguyên như CPU, RAM… nên microservice sẽ là lựa chọn phù hợp để sử dụng hiệu quả tài nguyên máy chủ.

Trên đây là những kiến thức cơ bản và tổng quan nhất khi tìm hiểu Microservice là gì. Mặc dù còn đơn giản nhưng nó giúp bạn có cái nhìn toàn diện trước khi quyết định tìm hiểu và áp dụng kiến trúc nào vào dự án của bạn.

Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trướcThuật toán đảo ngược chuỗi liên kết (Linked List)
Bài tiếp theo6 câu lệnh NPM hữu ích – Web dev mà bỏ qua sẽ vô cùng tiếc
Thanh Thư
Khi cuộc sống dồn bạn vào bước đường cùng, đừng hỏi: tại sao là tôi? Mà hãy nói rằng: cứ thử tôi đi!

Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Thông báo