Bản thân mình thấy rằng Microservices là một kỹ thuật phát triển phần mềm khá là thông minh và mang lại nhiều ưu điểm khi vận hành phần mềm.
Trong bài viết này, mình sẽ trình bày những điểm cơ bản và quan trọng trong kiến trúc Microservices.
Kiến trúc nguyên khối (monolithic) là gì?
Trước khi tìm hiểu về Microservices thì chúng ta cần biết về kiến trúc nguyên khối trước. Trong kiến trúc này, tất cả các module và tính năng (Nhập liệu, xuất dữ liệu, xử lý lỗi, giao diện người dùng, xử lý nghiệp vụ các kiểu ...) đều được phát triển trên cùng một hệ thống duy nhất (một đơn vị).
Sau khi phát triển xong, cả hệ thống được deploy và đưa lên cùng một máy chủ. Khi hệ thống cần chỉnh sửa một chức năng hoặc một module nào thì phải deploy lại phiên bản mới của cả hệ thống và đưa toàn bộ hệ thống mới lên máy chủ.
Kiến trúc Microservices là gì?
Trong kiến trúc Microservices, phần mềm (hệ thống) sẽ được chia thành những thành phần hoặc module nhỏ. Mỗi thành phần sẽ được phát triển độc lập nhưng vẫn gắn liền với hệ thống chính với vai trò như một plugin. Các công cụ và kỹ thuật để phát triển các thành phần đó có thể giống nhau hoặc khác nhau cũng chẳng sao. Các thành phần sẽ giao tiếp với nhau thông qua các API mà thành phần cung cấp. Microservices định hình xu hướng mới cho việc phát triển các ứng dụng hệ thống phân tán.
Những ưu điểm của Microservices
Microservices có những ưu điểm sau đây:
- Dễ phát triển, dễ cập nhật và dễ bảo trì.
- Deploy các thành phần khác nhau nằm trên các máy chủ khác nhau. Nên vì thế có thể xác định phần cứng cần thiết cho mỗi thành phần.
- Có thể phát triển các thành phần bằng các công cụ và công nghệ khác nhau. Ngôn ngữ lập trình và cơ sở dữ liệu cũng có thể khác nhau.
- Mỗi thành phần được chia sẽ tương đối nhỏ hơn nguyên khối. Vì thế sẽ dễ đọc và hiểu mã nguồn hơn, chạy nhanh hơn và IDE sẽ tải nhanh hơn.
- Khi một thành phần nào đó cần deploy thì những thành phần còn lại nằm trên máy chủ khác sẽ vẫn hoạt động.
Những nhược điểm của Microservices
Bên cạnh những ưu điểm rõ rệt dễ nhận thấy thì các công ty áp dụng kiến trúc Microservices vào phát triển hệ thống cũng đối mặt với những thách thức sau:
- Việc phát triển các ứng dụng theo kiến trúc Microservices khá là phức tạp.
- Phải thay đổi tư duy lập trình khi mà đã quen với việc phát triển ứng dụng nguyên khối.
- Chi phí sẽ đắt hơn so với kiến trúc nguyên khối
- Vấn đề bảo mật, mỗi thành phần cần có một cơ chế bảo mật cho riêng mình.
Đăng nhận xét