Microservice là gì? | Comdy

Related Articles

  • Trung Nguyen
  • 03/05/2020

  • 11 min read

Microservices là gì?

Microservices là một mẫu kiến ​​trúc hướng dịch vụ trong đó các ứng dụng được xây dựng như một tập hợp các đơn vị dịch vụ độc lập nhỏ nhất khác nhau. Đây là một phương pháp kỹ thuật phần mềm tập trung vào việc phân tách ứng dụng thành các mô-đun chức năng đơn với các giao diện được xác định rõ. Các mô-đun này có thể được triển khai và vận hành độc lập bởi các nhóm nhỏ sở hữu toàn bộ vòng đời của dịch vụ.

Thuật ngữ “micro” dùng để chỉ kích thước của một microservice phải được quản lý bởi một nhóm phát triển (5 đến 10 nhà phát triển). Trong phương pháp này, các ứng dụng lớn được chia thành các đơn vị độc lập nhỏ nhất.

Kiến trúc nguyên khối là gì?

Nói một cách đơn giản thì kiến ​​trúc nguyên khối (Monolithic Architecture) giống như một thùng chứa lớn, trong đó tất cả các thành phần của một ứng dụng được ghép thành một gói duy nhất.

Chúng ta hãy bàn luận về một ví dụ về một website thương mại điện tử trong toàn cảnh kiến ​ ​ trúc nguyên khối .Kiến trúc nguyên khối của một website thương mại điện tửTrong bất kể website thương mại điện tử nào, có 1 số ít tính năng tiêu chuẩn như Search, Rating và Review và Payment. Những tính năng này hoàn toàn có thể được khác hàng truy vấn bằng trình duyệt của họ .Khi nhà tăng trưởng website thương mại điện tử tiến hành ứng dụng, nó là một khối duy nhất. Mã cho những tính năng khác nhau như Search, Rating và Review và Payment nằm trong một gói duy nhất và trên cùng một sever .Để lan rộng ra ứng dụng, bạn cần phải chạy ứng dụng này trên nhiều sever .

Kiến trúc microservice là gì?

Kiến trúc microservice là một phương pháp phát triển kiến ​​trúc cho phép xây dựng một ứng dụng từ một tập hợp các dịch vụ nhỏ và độc lập được phát triển cho từng nghiệp vụ.

Hãy lấy ví dụ về ứng dụng thương mại điện tử ở trên được tăng trưởng với kiến ​ ​ trúc microservice. Trong trường hợp này, mạng lưới hệ thống được tạo từ những microservices, mỗi microservice tập trung chuyên sâu vào một nhiệm vụ duy nhất .Các tính năng Search, Rating và Review và Payment giờ đây là những microservices độc lập và hoàn toàn có thể liên lạc với nhau .Kiến trúc microservice cho web thương mại điện tửTrong kiến trúc nguyên khối, toàn bộ những thành phần hợp lại thành một mô-đun duy nhất. Nhưng trong kiến trúc microservice, chúng được chia nhỏ thành những mô-đun riêng không liên quan gì đến nhau ( microservice ) tiếp xúc với nhau .Giao tiếp giữa những dịch vụ là một tiếp xúc phi trạng thái trong đó mỗi cặp nhu yếu và phản hồi là độc lập. Do đó, microservice hoàn toàn có thể tiếp xúc thuận tiện. Trong kiến trúc microservice, mỗi microservice có cơ sở tài liệu riêng không liên quan gì đến nhau .

Kiến trúc microservice với kiến ​​trúc nguyên khối

Kiến trúc Microservice Kiến trúc Monolithic
Tách các tính năng của ứng dụng vào các dịch vụ nhỏ, độc lập và có thể giao tiếp với nhau. Một duy nhất chứa tất cả các tính năng của ứng dụng
Khởi động dịch vụ tương đối nhanh. Khởi động dịch vụ mất nhiều thời gian hơn.
Cô lập lỗi thì dễ dàng. Ngay cả khi một dịch vụ ngừng hoạt động, dịch vụ khác có thể tiếp tục hoạt động. Để xử lý vấn đề này, chỉ cần sửa lỗi, kiểm thử và xuất bản dịch vụ gặp lỗi. Cô lập lỗi thì khó khăn. Nếu bất kỳ tính năng nào đó không hoạt động, cả hệ thống có thể ngừng hoạt động. Để xử lý vấn đề này cần phải xác định nơi xảy ra lỗi, sửa lỗi, kiểm thử và xuất bản lại toàn bộ ứng dụng.
Tất cả các microservice được liên kết lỏng lẻo nên những thay đổi trên một microservice không ảnh hưởng đến những microservice khác. Kiến trúc nguyên khối được liên kết chặt chẽ. Thay đổi trong một mô-đun mã ảnh hưởng đến mô-đun khác
Các doanh nghiệp có thể phân bổ tài nguyên tùy theo nhu cầu của từng microservice. Vì tất cả các tính năng của ứng dụng đều nằm trong một mô-đun nên không thể phân bổ tài nguyên theo từng tính năng.
Phân bổ nhiều tài nguyên phần cứng cho dịch vụ được sử dụng thường xuyên. Trong ví dụ về thương mại điện tử ở trên, số lượng người dùng kiểm tra danh sách sản phẩm và tìm kiếm nhiều hơn so với thanh toán. Vì vậy, nhiều tài nguyên có thể được phân bổ cho microservice tìm kiếm và liệt kê sản phẩm. Mở rộng quy mô ứng dụng là thách thức cũng như lãng phí trong kiến trúc nguyên khối.
Microservice luôn luôn nhất quán và khả năng sẵn sàng cao. Các công cụ phát triển bị quá tải vì quá trình cần phải bắt đầu lại từ đầu.
Dữ liệu được liên kết. Điều này cho phép mỗi microservice sử dụng mô hình dữ liệu phù hợp nhất với nhu cầu của mình. Dữ liệu được tập trung.
Nhiều nhóm nhỏ tập trung phát triển song song các tính năng. Đội ngũ lớn và cần nhiều nỗ lực để quản lý nhóm.
Thay đổi trong mô hình dữ liệu của một microservice không ảnh hưởng đến các microservice khác. Thay đổi trong mô hình dữ liệu ảnh hưởng đến toàn bộ cơ sở dữ liệu
Tương tác với các microservice khác bằng cách sử dụng các interface được chỉ định Không áp dụng
Microservice hoạt động theo nguyên tắc tập trung vào sản phẩm, không phải dự án Đặt trọng tâm vào toàn bộ dự án
Có thể sử dụng các công nghệ khác nhau cho các microservice khác nhau. Toàn bộ hệ thống sử dụng chung một stack công nghệ.

Những thách thức của microservice

  • Các microservice dựa vào nhau và chúng sẽ phải liên lạc với nhau.
  • So với các hệ thống nguyên khối, có nhiều dịch vụ hơn để giám sát được phát triển bằng các ngôn ngữ lập trình khác nhau.
  • Vì nó là một hệ thống phân tán, nó là một mô hình phức tạp vốn có.
  • Các dịch vụ khác nhau sẽ có cơ chế riêng biệt, dẫn đến một lượng lớn bộ nhớ cho dữ liệu phi cấu trúc.
  • Quản lý và làm việc nhóm hiệu quả rất cần thiết để ngăn chặn các vấn đề xếp tầng.
  • Tái tạo một vấn đề sẽ là một nhiệm vụ khó khăn khi nó đã có một phiên bản và trở lại trong phiên bản mới nhất.
  • Triển khai độc lập rất phức tạp với microservice.
  • Kiến trúc microservice mang lại nhiều hoạt động trên cao.
  • Thật khó để quản lý ứng dụng khi các dịch vụ mới được thêm vào hệ thống
  • Một loạt các chuyên gia lành nghề là cần thiết để hỗ trợ các dịch vụ siêu nhỏ phân tán không đồng nhất
  • Microservice rất tốn kém, vì bạn cần duy trì không gian máy chủ khác nhau cho các nhiệm vụ kinh doanh khác nhau.

SOA với microservice

Các dịch vụ SOA được duy trì trong tổ chức triển khai bởi một sổ ĐK hoạt động giải trí như một list thư mục. Các ứng dụng cần tra cứu những dịch vụ trong sổ ĐK và gọi dịch vụ .

Ở một thế giới khác, SOA giống như một dàn nhạc nơi mỗi nghệ sĩ đang biểu diễn với nhạc cụ của mình trong khi giám đốc âm nhạc đưa ra hướng dẫn cho tất cả mọi người.

Mặt khác, microservice là một dạng phong thái kiến ​ ​ trúc hướng dịch vụ trong đó những ứng dụng được kiến thiết xây dựng như một tập hợp những dịch vụ nhỏ hơn khác nhau thay vì một ứng dụng hoặc ứng dụng .Microservice giống như một đoàn kịch nơi mỗi vũ công độc lập và biết họ cần phải làm gì. Vì vậy, nếu họ bỏ lỡ 1 số ít bước, họ biết làm thế nào để quay lại đúng trình tự .Dưới đây là so sánh cụ thể giữa SOA và microservice

Tham số SOA Microservices
Kiểu thiết kế Trong SOA, các thành phần phần mềm được đưa ra thế giới bên ngoài để sử dụng dưới dạng dịch vụ. Dịch vụ vi mô là một phần của SOA. Đây là một triển khai của SOA.
Phụ thuộc Đơn vị kinh doanh phụ thuộc. Họ độc lập với nhau.
Kích thước của phần mềm Kích thước phần mềm lớn hơn bất kỳ phần mềm thông thường nào Kích thước của Phần mềm luôn nhỏ trong microservice
Ngăn xếp công nghệ Ngăn xếp công nghệ thấp hơn so với microservice. Ngăn xếp công nghệ microservice có thể rất lớn
Bản chất của ứng dụng Nguyên khối trong tự nhiên Đầy đủ trong tự nhiên
Độc lập và tập trung Các ứng dụng SOA được xây dựng để thực hiện nhiều nhiệm vụ kinh doanh. Chúng được xây dựng để thực hiện một nhiệm vụ kinh doanh duy nhất.
Triển khai Quá trình triển khai tốn nhiều thời gian. Triển khai đơn giản và ít tốn thời gian.
Hiệu quả chi phí Tiết kiệm chi phí hiệu quả. Ít chi phí hiệu quả.
Khả năng mở rộng Ít hơn so với microservice. Khả năng mở rộng cao.
Logic kinh doanh Các thành phần logic nghiệp vụ được lưu trữ bên trong miền dịch vụ đơn

API giao thức dây đơn giản (HTTP với XML JSON) được điều khiển bằng SDK / Khách hàng
Logic nghiệp vụ có thể sống trên các miền doanh nghiệp Service Bus giống như các lớp giữa các dịch vụ Middleware

Công cụ microservice

1) Wiremock: Kiểm tra microservice

WireMock là một thư viện linh động để khai thác và chế nhạo những dịch vụ web. Nó hoàn toàn có thể định thông số kỹ thuật phản hồi được trả về bởi API HTTP khi nhận được nhu yếu đơn cử. Nó cũng được sử dụng để kiểm tra microservice .

Liên kết tải xuống: http://wiremock.org/

2) Docker

Docker là dự án Bất Động Sản nguồn mở được cho phép tất cả chúng ta tạo, tiến hành và chạy những ứng dụng bằng cách sử dụng những thùng chứa. Bằng cách sử dụng những thùng chứa này, những nhà tăng trưởng hoàn toàn có thể chạy một ứng dụng dưới dạng một gói duy nhất. Nó được cho phép bạn gửi thư viện và những nhờ vào khác trong một gói .

Liên kết tải xuống: https://www.docker.com/

3) Hystrix

Hystrix là một thư viện java chịu lỗi. Công cụ này được phong cách thiết kế để phân tách những điểm truy vấn vào những dịch vụ, mạng lưới hệ thống và thư viện của bên thứ 3 trong một thiên nhiên và môi trường phân tán như microservice. Nó cải tổ mạng lưới hệ thống toàn diện và tổng thể bằng cách cách ly những dịch vụ thất bại và ngăn ngừa hiệu ứng xếp tầng của những lỗi .

Liên kết tải xuống: https://github.com/Netflix/Hystrix

Thực tiễn tốt nhất về kiến ​​trúc microservice

  • Lưu trữ dữ liệu riêng biệt cho mỗi microservice
  • Giữ mã của một mức độ trưởng thành tương tự.
  • Xây dựng riêng cho từng dịch vụ Micro
  • Luôn luôn coi như không quốc tịch.

Tóm lược

  • Microservice là một mẫu kiến ​​trúc hướng dịch vụ trong đó các ứng dụng được xây dựng như một tập hợp các đơn vị dịch vụ độc lập nhỏ nhất khác nhau.
  • Microservice Architecture là một phong cách phát triển kiến ​​trúc cho phép xây dựng một ứng dụng như một tập hợp các dịch vụ tự trị nhỏ được phát triển cho một lĩnh vực kinh doanh.
  • Kiến trúc nguyên khối giống như một thùng chứa lớn, trong đó tất cả các thành phần phần mềm của ứng dụng được ghép thành một gói duy nhất
  • Trong microservice, mọi đơn vị của toàn bộ ứng dụng phải là nhỏ nhất và nó có thể cung cấp một mục tiêu kinh doanh cụ thể
  • Trong kiến ​​trúc nguyên khối, cơ sở mã lớn có thể làm chậm toàn bộ quá trình phát triển. Bản phát hành mới có thể mất vài tháng. Bảo trì mã là khó khăn
  • Hai loại Dịch vụ vi mô là 1) Không quốc tịch 2) Có trạng thái
  • Các dịch vụ vi mô dựa vào nhau và họ sẽ phải liên lạc với nhau. Giúp bạn nhấn mạnh vào một tính năng cụ thể và nhu cầu kinh doanh
  • Kiến trúc hướng dịch vụ được biết đến một cách ngắn gọn là SOA là một sự phát triển của điện toán phân tán dựa trên mô hình thiết kế yêu cầu hoặc trả lời cho các ứng dụng đồng bộ và không đồng bộ
  • Trong SOA, các thành phần phần mềm được đưa ra thế giới bên ngoài để sử dụng dưới dạng dịch vụ trong khi Micro Service là một phần của SOA. Đây là một triển khai của SOA
  • Wiremock, Docker và Hystrix là một số Công cụ dịch vụ phổ biến

Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian làm việc

Bạn hoàn toàn có thể vui mắt đưa Comdy vào whitelist của trình chặn quảng cáo ❤ ️ để tương hỗ chúng tôi trong việc trả tiền cho dịch vụ tàng trữ web để duy trì hoạt động giải trí của website .

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories