Bạn đang xem: Microservice là gì
Bạn có thể tìm thấy khá nhiều tài nguyên giới thiệu và nói về tính chất cũng như lợi ích của Microservices tuy nhiên không phải ai cũng hiểu và có cái nhìn chính xác về kiến trúc này. Hi vọng bài viết dưới đây sẽ mang đến cho bạn cái nhìn khách quan về các ưu, nhược điểm của Microservices từ đó tìm ra phương pháp áp dụng khoa học và hiệu quả cho công việc, dự án của mình.
Microservices là gì?
Microservices là một kiểu kiến trúc cấu trúc một ứng dụng mà ứng dụng này là tổng hợp của nhiều services nhỏ và độc lập có thể chạy riêng biệt, phát triển và triển khai độc lập. Trong Kiến trúc đã cho, mỗi dịch vụ đều khép kín và thực hiện một chức năng duy nhất.
![*](https://licadho.org/wp-content/uploads/2021/09/imager_1_2039_700.jpg)
![*](https://licadho.org/wp-content/uploads/2021/09/imager_2_2039_700.jpg)
Sự khác biệt giữa kiến trúc nguyên khối và microservices
Hãy xem xét một ứng dụng thương mại điện tử như mỗi trường hợp sử dụng để hiểu sự khác biệt giữa cả hai.
![*](https://licadho.org/wp-content/uploads/2021/09/imager_3_2039_700.jpg)
![*](https://thienmaonline.vn/microservice-la-gi/imager_4_2039_700.jpg)
Sự khác biệt chính mà chúng ta quan sát được trong sơ đồ trên là tất cả các tính năng ban đầu nằm trong một instance duy nhất và chia sẻ một cơ sở dữ liệu. Nhưng sau đó, với microservice, mỗi tính năng được phân bổ một microservice khác nhau, xử lý dữ liệu riêng và thực hiện các chức năng khác nhau.
Xem thêm: Lan Games Garena – Chơi đế Chế Trực Tuyến
![*](https://thienmaonline.vn/microservice-la-gi/imager_5_2039_700.jpg)
Decoupling: Các dịch vụ trong một hệ thống phần lớn được tách rời. Vì vậy, toàn bộ ứng dụng có thể dễ dàng được xây dựng, thay đổi và thu nhỏComponentization: Microservice được coi là các thành phần độc lập có thể dễ dàng thay thế và nâng cấpBusiness Capabilities: Microservice rất đơn giản và tập trung vào một khả năng duy nhấtAutonomy: Các nhà phát triển và nhóm có thể làm việc độc lập với nhau, do đó tăng tốc độContinous Delivery: Cho phép phát hành phần mềm thường xuyên, thông qua tự động hóa có hệ thống về tạo, kiểm tra và phê duyệt phần mềmResponsibility: Microservice không tập trung vào các ứng dụng như dự án. Thay vào đó, họ coi các ứng dụng là sản phẩm mà họ chịu trách nhiệmDecentralized Governance: Trọng tâm là sử dụng đúng công cụ cho đúng công việc. Điều đó có nghĩa là không có mẫu chuẩn hóa hoặc bất kỳ mẫu công nghệ nào. Các nhà phát triển có quyền tự do lựa chọn các công cụ hữu ích tốt nhất để giải quyết vấn đề của họAgility: Microservice hỗ trợ phát triển nhanh. Bất kỳ tính năng mới nào cũng có thể nhanh chóng được phát triển và loại bỏ một lần nữa
Independent Development: Tất cả các microservice có thể được phát triển dễ dàng dựa trên chức năng riêng của nóIndependent Deployment: Dựa trên các chức năng riêng biệt, chúng có thể được triển khai riêng lẻ trong bất kỳ ứng dụng nàoFault Isolation: Ngay cả khi một dịch vụ của ứng dụng không hoạt động, hệ thống vẫn tiếp tục hoạt độngMixed Technology Stack: Các ngôn ngữ và công nghệ khác nhau có thể được sử dụng để xây dựng các dịch vụ khác nhau của cùng một ứng dụngGranular Scaling: Các thành phần riêng lẻ có thể chia tỷ lệ theo nhu cầu, không cần phải chia tỷ lệ tất cả các thành phần lại với nhauVí dụ áp dựng vào thực tiễn
Chúng ta hãy sử dụng một trường hợp sử dụng cổ điển của một ứng dụng giỏ hàng.Khi bạn mở một ứng dụng giỏ hàng, tất cả những gì bạn thấy chỉ là một trang web . Nhưng, đằng sau hậu trường, ứng dụng giỏ hàng có một dịch vụ chấp nhận thanh toán, dịch vụ cho dịch vụ khách hàng, v.v.Giả sử rằng các nhà phát triển của ứng dụng này đã tạo ra nó trong một khung nguyên khối. Nhìn vào sơ đồ bên dưới:
Tất cả các tính năng được đặt cùng nhau trong một cơ sở mã duy nhất và nằm dưới một cơ sở dữ liệu.
Bây giờ, giả sử rằng có một thương hiệu mới sắp xuất hiện trên thị trường và các nhà phát triển muốn đưa tất cả các chi tiết của thương hiệu sắp tới vào ứng dụng này. Sau đó, họ không chỉ phải làm lại dịch vụ cho các nhãn mới mà còn phải điều chỉnh lại hệ thống hoàn chỉnh và triển khai nó cho phù hợp.
Để tránh những thách thức như vậy, các nhà phát triển ứng dụng này đã quyết định chuyển ứng dụng của họ từ kiến trúc nguyên khối sang kiến trúc mới hơn. Tham khảo sơ đồ bên dưới để hiểu kiến trúc của ứng dụng giỏ hàng.
Điều này có nghĩa là các nhà phát triển không tạo ra web microservice, logic microservice hoặc database microservice. Thay vào đó, họ tạo ra các microservice riêng cho tìm kiếm, đề xuất, dịch vụ khách hàng, v.v.
Xem thêm: Cổ Tức Là Gì – Cách Chia Cổ Tức Bằng Tiền Mặt
Kiểu kiến trúc cho ứng dụng này không chỉ giúp các nhà phát triển vượt qua tất cả các thách thức đối với kiến trúc trước đó mà còn giúp ứng dụng giỏ hàng được xây dựng, triển khai và mở rộng quy mô dễ dàng.
Có một danh sách dài các công ty sử dụng microservice để xây dựng các ứng dụng, đây chỉ là một vài cái tên:
Chuyên mục: Hỏi Đáp