Hiểu một cách Microservices là gì

Thảo luận trong 'Rao Vặt Tổng Hợp' bắt đầu bởi thetvbytesoft, 14/10/19.

  1. thetvbytesoft

    thetvbytesoft Cựu Thành Viên

    Tham gia ngày:
    13/5/19
    Bài viết:
    149
    Đã được thích:
    0
    Điểm thành tích:
    0
    Giới tính:
    Nam
    hiểu đơn giản, microservice là phương pháp đặc biệt triển khai hệ thông phần mềm, khá phổ biến trong những năm gần đây. Đặc biệt, nó có khả năng mở rộng nên ứng dụng trong nhiều nền tảng, thiết bị trải rộng trên web, di động, Internet of Things, các thiết bị đeo tay...cần hỗ trợ trong tương lai. Rất nhiều người chủ đã chuyển đổi từ Monolithic sang kiến trức mới này

    [​IMG]


    Đây chưa hẳn là một phương pháp mới. Vì có hình thành từ những năm đầu thế kỷ 21, nhưng tới tháng 5/2011. thuật ngữ "microservices" mới phổ biến hơn, trong các hội thảo kiến trúc sư phần mềm tại Venice. Để làm rõ về Microservices, chúng ta sẽ tìm hiểu theo Martin Fowler như sau:

    Xem thêm: phần mềm quản lý doanh nghiệp

    The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.

    Xem thêm: mvc

    Hơi khó hiểu chút. Bạn có thể hiểu máy móc Microsevices chia các ứng dụng lớn thành các ứng dụng nhỏ kết nối với nhau. Mỗi dịch vụ đảm nhiệm một chức năng riêng biệt và các dịch vụ ấy được kết nối với nhau tạo nên một tổng thể hài hòa. Ví dụ nha, mỗi dịch vụ như một quầy hàng chuyên biệt trong siêu thị, mỗi quầy bán một mặt hàng riêng, được liên kết với nhau thông qua mã số quầy hàng.

    Xem thêm: asp.net là gì

    Quay trở lại Monolithic, vậy nó "bán" cái gì trong siêu thị? ... Monolithic là một tổng đại lý, gộp chung các mặt hàng vào một cửa hàng lớn _ all in one.,

    Monolithic có cấu trúc module khá hợp lý, đóng gói thành một khối tổng thế, các khối "đóng cửa bảo nhau" bên trong, dễ viết, dễ triển khai, liên kết với nhau chặt chẽ. Nhưng cũng chính vì thế, chặt chẽ quá khó "cởi". Khi muốn deployment phải khởi chạy toàn bộ các khối, nếu khối nào "dẹo" thì nguy cơ "dẹo" cả hệ thống khá cao. Chưa kể khi hệ thống phình to, sự ràng buộc làm việc upgrade trở nên khó khăn, nhiều khi phải đập đi xây lại. Bảo trì cũng vô cùng tốn kém mà mất thời gian. Thử tưởng tượng hệ thống có 3 triệu dòng code mà mang ra chỉnh sửa, nghĩ thôi đã thấy áp lực rồi!

    Microservices xuất hiện như để xóa đi những rắc rối đó.

    Dễ nâng cấp và scale, việc nâng cấp các service tách biệt khiến nó trở nên dễ dàng hơn.

    Cũng vì tách biệt nên khi một sevice có yểu mệnh mà "dẹo" thì cũng không quá ảnh hưởng đến hệ thống, có thể phục hồi nhanh chóng.

    Các service có thể dùng các ngôn ngữ / framework khác nhau. Không còn hiện tượng "không cùng ngôn ngữ không nói chuyện".

    Dễ dàng kiểm thử, thay thế, bảo trì các service.

    Nhưng tất nhiên, nó cũng có những nhược điểm

    Hệ thống được chia thành các service nhỏ, cũng vì nhỏ mà nhiều khi quá nhỏ, trở nên khó kiểm soát.

    Các service phải giao tiếp bên ngoài với nhau nên nhiều khi tốc độ không cao. Mà nhiều khi chúng nó còn chả nói chuyện được với nhau ấy chứ.

    Mỗi service sẽ có database riêng, cách thức hoạt động riêng nên tính đồng nhất không được đảm bảo, phức tạp.

    Nếu các service sử dụng các chức năng của service khác một cách xếp chồng như bậc thang, thì một service "dẹo" vẫn ảnh hưởng to lớn đến hệ thống.

    Các nhược điểm trên cũng đưa ra nhược điểm là triển khai Microservices khó hơn rất nhiều, đòi hỏi bạn phải có kiến thức để vận hành hệ thống trơn tru, mà có lẽ kiến thức chưa đủ, kinh nghiệm nữa!

    Nôm na là vậy! Microservice vẫn là lý tưởng hướng đến cho những hệ thống trong tương lai!
     

Chia sẻ trang này