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 : tranh tô màu trái cây cho bé 3 tuổi

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 : Tổ chức tín dụng tiếng Anh là gì?

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

Top 5 nhà cái giao dịch rút tiền nhanh chóng và hiệu quả

Top 5 nhà cái giao dịch rút tiền nhanh chóng và hiệu quả

Trong thế giới cá cược trực tuyến, việc chọn lựa nhà cái có dịch vụ giao dịch rút tiền nhanh chóng và hiệu quả là một yếu…

Bíp kíp bắt kèo đá gà trực tiếp uy tín, đơn giản cho kê thủ

Bíp kíp bắt kèo đá gà trực tiếp uy tín, đơn giản cho kê thủ

Các trang cá cược ngày nay đã phát triển một loạt các kèo đá gà trực tiếp, mang lại sự đa dạng và cơ hội kiếm tiền…

Cách lựa chọn nhà cái trực tuyến uy tín và chất lượng

Cách lựa chọn nhà cái trực tuyến uy tín và chất lượng

Khi quyết định tham gia cá cược trực tuyến, việc lựa chọn một nhà cái uy tín và chất lượng là điều vô cùng quan trọng. Trên…

Cược Đá Gà HB88 Và Những Ưu Đãi Ngập Tràn Tại Nhà Cái 

Cược Đá Gà HB88 Và Những Ưu Đãi Ngập Tràn Tại Nhà Cái 

Sảnh đá gà HB88 được xem là một trong những điểm đến cá cược hấp dẫn, mang đến những trận đấu đầy kịch tính, căng thẳng. Trong…

Roulette là gì? Kinh nghiệm chơi Roulette luôn thắng từ cao thủ

Roulette là gì? Kinh nghiệm chơi Roulette luôn thắng từ cao thủ

Roulette là gì? Roulette là một trò chơi sòng bạc phổ biến được chơi trên một bàn quay có chứa một bánh xe quay và một bảng…

Giải thích kèo chấp 1.5 – Các mẹo chơi hiệu quả 

Giải thích kèo chấp 1.5 – Các mẹo chơi hiệu quả 

Bóng đá được mệnh môn thể thao vua, là niềm đam mê của không ít người hâm mộ trên toàn thế giới. Kèo chấp 1.5 trong bóng…