Tìm hiểu về kiến trúc SOA. Khác biệt giữa SOA và Microservice?

SOA là gì?

Là viết tắt của từ Service-Oriented Architecture – kiến trúc hướng dịch vụ:

Hiểu một cách cơ bản, SOA là tập hợp các dịch vụ kết nối “mềm dẻo” với nhau, có giao tiếp được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng.

SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến quy trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.

Hay nói cách khác:

SOA là một kiểu kiến trúc phần mềm gồm nhiều thành phần độc lập được thể hiện thành những dịch vụ (service), mỗi dịch vụ thực hiện quy trình nghiệp vụ nào đó của doanh nghiệp.

TỪ GÓC ĐỘ DOANH NGHIỆP THÌ CÓ THỂ COI SOA LÀ MỘT PHƯƠNG PHÁP ĐỂ TÁI CẤU TRÚC HẠ TẦNG THÔNG TIN CỦA DOANH NGHIỆP.

Ưu điểm của việc sử dụng SOA?

  1.  tái sử dụng phần mềm. Nếu một dịch vụ có quy mô và kích thước phù hợp sau đó nó có thể được tái sử dụng cho lần kế tiếp. Điều này đồng nghĩa sẽ làm giảm công sức phát triển và chi phí về mặt tài chính cho cả hai phía: nhà phát triển phần mềm và các khách hàng (doanh nghiệp).
  2. linh hoạt khi mở rộng, kết nối và tích hợp. Giả sử rằng các dịch vụ sẽ không được tái sử dụng, thì ta có thể đưa ra nhiều giá trị nếu ta làm cho hệ thống CNTT chỉnh sửa dễ dàng hơn.

Khác biệt giữa SOA và microservice

Nếu bạn làm việc trong lĩnh vực Cloud thì hẳn bạn có biết đến những tranh cãi xung quanh SOA và microservice. Sau cùng thì các khái niệm này đều nhắm đến 2 vấn đề đó là microservice và phương pháp phát triển phần mềm Agile.

Thoáng qua thì 2 khái niệm này có vẻ giống nhau, cùng là cách tiếp cận khác với phương pháp truyền thống monolithic nguyên khối, tách ra thành các service độc lập, có khả năng mở rộng, tuy nhiên về bản chất hai kiến trúc này có một số điểm khác biệt, chúng ta cần nắm rõ.

  • Khác biệt chính giữa SOA và microservice nằm ở chỗ phạm vi áp dụng. Trong khi SOA thường áp dụng đối với phạm vi các doanh nghiệp nơi các ứng dụng giao tiếp với nhau ESB, microservice hướng đến việc phát triển các ứng dụng nơi mà giao tiếp giữa các thành phần trong một ứng dụng.

Lựa chọn SOA hay Microservice

Cả hai cách tiếp cận đều có lợi thế của chúng, vì vậy làm thế nào bạn có thể xác định cách nào sẽ hoạt động tốt nhất cho mục đích của bạn?

Nói chung, nó phụ thuộc vào mức độ lớn và đa dạng của môi trường ứng dụng của bạn.

Các môi trường lớn hơn, đa dạng hơn cho phép kiến ​​trúc hướng dịch vụ (SOA) hỗ trợ tích hợp giữa các ứng dụng không đồng nhất và các giao thức nhắn tin thông qua bus dịch vụ doanh nghiệp (ESB). Các môi trường nhỏ hơn, bao gồm các ứng dụng web và di động, không yêu cầu lớp giao tiếp mạnh mẽ như vậy và dễ dàng phát triển hơn bằng cách sử dụng kiến ​​trúc microservices.

Tham khảo:

https://www.ibm.com/cloud/blog/soa-vs-microservices#:~:text=The%20main%20difference%20between%20SOA%20and%20microservices%3A%20Scope&text=To%20put%20it%20simply%2C%20service,when%20you%20neglect%20this%20difference.

Leave a Reply

Your email address will not be published. Required fields are marked *