Microservices là gì?

Bạn đang xem: Microservices là gì? Tại DongnaiArt

Cùng xem Microservices là gì? trên youtube.

Chào các bạn, sau một thời gian dài bận bịu với các dự án sử dụng các công nghệ cũ, hoặc các công nghệ do khách hàng chọn lựa từ trước, mình bỗng nhiên ngỡ ngàng khi nghe phong phanh dự án mới sẽ làm theo kiến trúc Microservices. Dù cũng có tương đối kinh nghiệm làm việc nhưng thời điểm đó mình cũng chưa hình dung ra Microservices là cái quái gì?, chúng ta cần phải xây dựng ứng dụng như thế nào?, … Bắt tay vào tìm hiểu, và điều đầu tiên mình nhận ra rằng -> làm mãi với những công nghệ từ thập kỉ trước không thể làm bản thân tiến bộ được (Note: dự án mình làm gần đây nhất sử dụng các công nghệ java từ những năm 2004 @@), công nghệ đã và đang thay đổi hàng ngày, nếu cứ bảo thủ và không chịu cập nhật thì chúng ta chỉ bước những bước lùi mà thôi.

Lan man quá, quay lại chủ đề chính nhé

Bạn đang xem: microservices là gì

Vậy Microservices là gì nhỉ?

Thực tế có nhiều định nghĩa khác nhau đối với Microservices nhưng hiểu theo cách đơn giản thì, microservice là một kiếu kiến trúc phần mềm. Các module trong phần mềm này được chia thành các service rất nhỏ (microservice). Mỗi service sẽ được đặt trên một server riêng -> dễ dàng để nâng cấp và scale ứng dụng.

Monolith Application là gì?

Bạn đã bao giờ từng làm việc trong những dự án có đặc điểm như sau chưa?

  • Release vài tháng 1 lần
  • Có các đặc điểm và chức năng bao phủ phạm vi rộng
  • Team size lớn
  • Việc debug trở thành thử thách lớn
  • Khó khăn để ứng dụng các công nghệ mới

Đó chính là những đặc điểm của Monolith Application

Các ứng dụng Monolith thường rất lớn – thường sẽ có size hơn 100.000 dòng code. Trong một số trường hợp thậm chí có hơn một triệu dòng code.

Xem thêm: cách tắt ứng dụng chạy ngầm iphone

Xem Thêm : Chia sẻ miễn phí Key Advanced SystemCare 9 10 PRO Final mới nhất

Khi xây dựng phần mềm theo kiến trúc monolith (một khối). Toàn bộ các module (view, business, database, report) đều được gom chung vào một project lớn. Khi deploy, chúng ta sẽ quăng khối code này lên server và config để nó chạy.

Kiến trúc này hoạt động khá ngon vì nó đơn giản, dễ code. Tuy nhiên, khi phần mềm trở nên lớn và phức tạp thì nó lại dần bộc lộ nhược điểm. Do các module đóng với nhau thành một bánh, khi muốn nâng cấp một module, ta phải deploy lại toàn bộ code (người dùng cuối sẽ không sử dụng được toàn bộ các chức năng của hệ thống khi deploy); khi muốn phục vụ nhiều người dùng, ta phải nâng cấp server…

Các thử thách đối với Monolith Application

  • Scalability
  • Ứng dụng các công nghệ mới
  • Ứng dụng automation test
  • Áp dụng quy trình làm việc – Agile?
  • Thích ứng với thực tiễn phát triển hiện đại

Kiến trúc Microservices

Khác biệt với kiến trúc Monolith, hay vì gom tất cả module thành một khối (monolith), ta tách các module thành những service siêu nhỏ. Mỗi service sẽ được đặt trên một server riêng (Có thể dùng server cloud như AWS hoặc Azure), giao tiếp với nhau thông qua mạng (Gửi nhận message qua giao thức HTTP hoặc sử dụng MessageQueue)…

Và một phần mềm xây dựng theo kiến trúc Microservices trông sẽ như nào?

Hình dưới đây sẽ minh họa cho việc phần mềm được xây dựng theo kiến trúc Monolith, một ứng dụng sẽ chứa tất cả các thành phần

Microservices là gì?

Xem thêm: Những hình nền điện thoại hài hước, độc chất nhất

Xem Thêm : Những câu nói hay về mùa đông, cap về mùa đông, stt hay và ý nghĩa cho mùa đông

Còn hình dưới sẽ minh họa việc ứng dụng ở trên khi được xây dựng theo kiến trúc Microservices

Microservices là gì?

Kiến trúc Microservice bao gồm một số thành phần nhỏ, được thiết kế tốt và tương tác qua các message.

Microservices là gì?

Các ưu điểm của Kiến trúc Microservices

Hiện nay, các ứng dụng thường rất lớn và liên tục được update ví dụ như facebook, linkin,… . Với kiến trúc monolith, việc gom toàn bộ ứng dụng vào một khối làm việc nâng cấp trở nên khó khăn và mất thời gian. Để giải quyết vấn đề đó, các ứng dụng lớn cần thiết được tách ra thành các service nhỏ. Mỗi service quản lý một cơ sở dữ liệu riêng, nằm trên một server riêng, tách biệt hoàn toàn với nhau. Các ưu điểm như sau:

  • Điều quan trọng nhất là rất dễ nâng cấp và scale up, scale down. Giả sử bạn làm một trang web liên quan tới vận tải, kho bãi. Khi số lượng xe hay hàng hóa tăng lên, chỉ việc nâng cấp server cho service liên quan đến nghiệp vụ kho vận(ngược lại, có thể giảm server nếu cần thiết). Với cloud computing, việc nâng cấp server vô cùng dễ dàng chỉ với vài cú click chuột. Điều này rất khó thực hiện với monolith.
  • Do tách biệt nên nếu một service bị lỗi, toàn bộ hệ thống vẫn hoạt động bình thường. Với monolith, một module bị lỗi có thể sẽ kéo sập toàn bộ hệ thống.
  • Các service nằm tách biệt nhau, chúng có thể được sử dụng các ngôn ngữ lập trình riêng, database riêng. VD service xử lý ảnh có thể viết bằng C++, service tổng hợp data có thể viết bằng Python.
  • Có thể áp dụng được các quy trình tự động hóa, như build, deploy, monitoring,…
  • Khi chia nhỏ các service, team size sẽ giảm và mọi người sẽ làm việc hiệu quả hơn

Tuy nhiên không phải là không có nhược điểm

  • Các module giao tiếp qua mạng nên có thể tốc độ không cao bằng monolith. Ngoài ra, mỗi module phải tự giải quyết các vấn đề về bảo mật, transaction, lỗi kết nối, quản lý log files.
  • Việc đảm bảo tính đồng nhất trong dữ liệu sẽ trở nên phức tạp hơn
  • Sử dụng nhiều service nên việc theo dõi, quản lý các service này sẽ phức tạp hơn
  • Cần một đội ngũ thật ngon để thiết kế và triển khai bao gồm software architect xịn

Việc xây dựng phần mềm theo kiến trúc nào hoàn toàn phụ thuộc vào phạm vi bài toán mà ứng dụng đó đặt ra, hiện tại thì theo đánh giá của mình Monolith phù hợp với các ứng dụng cỡ vừa và nhỏ, còn Microservices sẽ phù hợp với những ứng dụng lớn => chúng ta cần cân nhắc cẩn thận khi sử dụng để tránh trường hợp mang dao mổ trâu đi thịt gà =)). Qua bài viết hy vọng sẽ chia sẻ được phần nào kiến thức tổng hợp mình đã tìm hiểu. Thanks!

Xem thêm: thu hoạch cảm tình đảng

Nguồn: https://dongnaiart.edu.vn
Danh mục: Tin tức

Lời kết: Trên đây là bài viết Microservices là gì?. Hy vọng với bài viết này bạn có thể giúp ích cho bạn trong cuộc sống, hãy cùng đọc và theo dõi những bài viết hay của chúng tôi hàng ngày trên website: Dongnaiart.edu.vn

Related Posts

Xổ Số W88: Mô Hình Cược Mới Mẻ và Lợi Nhuận Khủng

Xổ Số W88: Mô Hình Cược Mới Mẻ và Lợi Nhuận Khủng

Xổ số W88 đã khiến cả cộng đồng game thủ và những người đam mê cá cược chao đảo với mô hình cược cực kỳ đa dạng và…

Xổ số Thừa Thiên Huế: Lựa chọn hàng đầu của lô thủ!

Xổ số Thừa Thiên Huế: Lựa chọn hàng đầu của lô thủ!

Có thể bạn quan tâm Phụ lục là gì? Vai trò và vị trí của phụ lục trong bài luận văn Lỗ tiểu lệch thấp – Một…

Điều khác biệt của chương trình đào tạo quốc tế cấp trung học sở 

Điều khác biệt của chương trình đào tạo quốc tế cấp trung học sở 

Chương trình đào tạo quốc tế chắc hẳn không còn là điều gì đó quá xa lạ với mọi người. Song vẫn còn rất nhiều bậc phụ…

Kèo châu Á là gì? Kinh nghiệm cá cược kèo châu Á bất bại 2024

Kèo châu Á là gì? Kinh nghiệm cá cược kèo châu Á bất bại 2024

Kèo châu Á là gì? Kèo châu Á là một loại kèo cá cược phổ biến trong bóng đá và nhiều môn thể thao khác tại thabet. Đây…

Lý do bạn nên tải app Sin88 về điện thoại tham gia cá cược

Lý do bạn nên tải app Sin88 về điện thoại tham gia cá cược

Bạn muốn tìm kiếm một sân chơi cá cược uy tín, chất lượng và mang đến những trải nghiệm tuyệt vời? Sin88 – ứng dụng cá cược…

Bắn cá đổi thưởng là gì? Kinh nghiệm chơi bắn cá đổi thưởng luôn thắng

Bắn cá đổi thưởng là gì? Kinh nghiệm chơi bắn cá đổi thưởng luôn thắng

Bắn cá đổi thưởng là gì? Bắn cá U888 đổi thưởng là một loại hình giải trí trực tuyến phổ biến trong ngành game online. Dưới đây là…