Mục lục
Hiện nay, với sự phát triển của các công nghệ đã thay đổi cách chúng ta xây dựng kiến trúc của một ứng dụng. Cùng với sự phát triển của Docker, cloud service... đã mang lại cho chúng ta khả năng phát triển các giải pháp phân tán, có thể mở rộng và đáng tin cậy hơn. Trong bài viết này mình sẽ so sánh kiến trúc microservices và monolith để thấy được ưu nhược điểm của từng loại. Để hình dung rõ sự khác biệt các bạn có thể xem hình dưới đây.
Như chúng ta thấy ứng dụng phát triển theo kiến trúc monolith đơn giản hơn ứng dụng phát triển theo microservice rất nhiều lần. Để so sánh hai loại kiên trúc trên chúng ta cùng xem xét qua các điểm sau.
Deployment
Ứng dụng Monolith cho phép bạn thiết lập việc deployment của mình một lần và sau đó chỉ cần điều chỉnh nó dựa trên những thay đổi đang diễn ra. Tuy nhiên, nếu như chỉ cần có một lỗi duy nhất trong quá trình deployment và nếu mọi thứ trục trặc, bạn có thể phá vỡ toàn bộ dự án của mình.
Microservices đòi hỏi nhiều công việc hơn; bạn sẽ cần phải deploy từng microservice một cách độc lập và cố gắng thống nhất định dạng của ci / cd để giảm lượng thời gian cần thiết để thực hiện việc đó cho mỗi microservice mới.Nếu xảy ra sự cố, chỉ có một microservice nhỏ gặp vấn đề. Việc khôi phục một microservices nhỏ cũng dễ dàng hơn nhiều so với toàn bộ ứng dụng monolith.
Bảo trì
Nếu bạn định sử dụng kiến trúc microservices, bạn sẽ cần một DevOps cho nhóm của bạn và chuẩn bị cho bản thân.các kiến thức về DevOps bởi vì không phải developer nào cũng có thể làm việc tốt với docker hoặc các công cụ như Kubernetes, Docker Swarm, Mesosphere...
Độ tin cậy
Kiến trúc Microservices có ưu điểm hơn hẳn về độ tin cậy. Việc một microservice gặp sự cố chỉ ảnh hưởng đến những khách hàng sử dụng nó và các service khác vẫn hoạt động. Ví dụ khi phát triển ứng dụng ngân hàng nếu như microservice cho chức năng rút tiền gặp sự cố thì chỉ có các chức năng mà service này cung cấp không hoạt động điều này tốt hơn rất nhiều so với việc toàn bộ ứng dụng không hoạt động.
Khả năng mở rộng
Đối với khả năng mở rộng, microservices lại phù hợp hơn. Các tài nguyên có thể được sử dụng cẩn thận hơn và chỉ cho phép bạn mở rộng quy mô các phần yêu cầu nhiều tài nguyên hơn. Ứng dụng monolith rất khó mở rộng quy mô bởi vì ngay cả khi bạn chạy nhiều worker hơn . Mỗi worker chạy một dự án duy nhất(quản lý tài nguyên không hiệu quả).
Phát triển
Cách tốt nhất để đối phó với microservices là xây dựng tệp soạn thảo docker của bạn ngay từ đầu và phát triển thông qua Docker. Điều này giúp bạn giảm thời gian làm quen với những người mới; chỉ cần chạy hệ thống từ đầu và khởi chạy tất cả các dịch vụ nhỏ khi cần thiết. Mặt khác. khi bạn phát triển một microservice, bạn có thể gặp trường hợp mà bạn không cần chạy các phần khác của ứng dụng. Điều này dẫn đến ít vấn đề về git conflict hơn do quá trình chia nhỏ tasks tốt hơn và khả năng cô lập các developer trên các microservices.
Releasing
Các microservices nhỏ hơn và có kiến trúc giao tiếp microservices phù hợp cho phép bạn release các tính năng mới nhanh hơn bằng cách giảm thời gian QA, thời gian xây dựng và thời gian thực hiện kiểm tra. Ứng dụng Monolith có rất nhiều phụ thuộc nội bộ không thể chia nhỏ.
Tổng kết
Sử dụng kiến trúc monolith khi
- dự án nhỏ, có số lượng nhỏ dev, chi phí thấp.
- có kinh nghiệm phát triển trên các framework vững chắc, chẳng hạn như Ruby on Rails, Laravel, v.v.
- không nhận được hàng triệu đô đầu tư để thuê DevOps hoặc dành thêm thời gian cho kiến trúc phức tạp.
Sử dụng kiến trúc microservice khi
- deadline phát triển dự án lớn.
- team dev có kiến thức về nhiều ngôn ngữ khác nhau.
- quan tâm nhiều đến khả năng phát triển và mở rộng của sản phẩm
TÀI LIỆU THAM KHẢO
https://dev.to/alex_barashkov/microservices-vs-monolith-architecture-4l1m
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty