Microservices là gì?

Microservices Architecture Ngân hàng số ~6 phút đọc

Microservices (Kiến trúc Microservices) là gì?

Kiến trúc Microservices là phương pháp thiết kế phần mềm trong đó ứng dụng được chia nhỏ thành các dịch vụ độc lập, mỗi dịch vụ chịu trách nhiệm thực hiện một chức năng riêng biệt. Các dịch vụ này có thể được phát triển, triển khai và bảo trì một cách độc lập với nhau. Mỗi microservice hoạt động như một tiến trình riêng biệt, giao tiếp với các dịch vụ khác thông qua các giao thức nhẹ như API RESTful hoặc message queue, giúp hệ thống ngân hàng trở nên linh hoạt và dễ mở rộng hơn so với kiến trúc nguyên khối truyền thống.

Tại sao Microservices quan trọng trong ngân hàng?

  • Đảm bảo tính liên tục hoạt động: Khi một microservice gặp sự cố, các dịch vụ khác vẫn hoạt động bình thường, tránh tình trạng "sập một phần là sập toàn bộ" như kiến trúc truyền thống.
  • Tăng tốc độ phát triển sản phẩm: Các đội phát triển có thể làm việc đồng thời trên nhiều dịch vụ khác nhau, sử dụng công nghệ phù hợp cho từng chức năng cụ thể mà không phụ thuộc lẫn nhau.
  • Hỗ trợ mở rộng linh hoạt theo nhu cầu: Hệ thống có thể tự động scale up hoặc scale down từng dịch vụ riêng lẻ dựa trên lưu lượng truy cập, tối ưu chi phí vận hành trong các đợt cao điểm như cuối tháng hay ngày lễ.
  • Dễ dàng cập nhật và nâng cấp: Việc nâng cấp một dịch vụ không yêu cầu triển khai lại toàn bộ hệ thống, giảm đáng kể thời gian chết và rủi ro trong quá trình vận hành.

Cách hoạt động của Microservices

Nguyên lý hoạt động cơ bản

Trong kiến trúc Microservices, hệ thống được phân rã thành nhiều service nhỏ, mỗi service đảm nhiệm một chức năng cụ thể:

  1. Service tách biệt: Mỗi microservice sở hữu cơ sở dữ liệu riêng, không chia sẻ dữ liệu trực tiếp với các dịch vụ khác.
  2. Giao tiếp qua API: Các service tương tác với nhau thông qua giao diện lập trình ứng dụng (API) theo chuẩn RESTful hoặc thông qua message queue như RabbitMQ, Apache Kafka.
  3. Đóng gói container: Các dịch vụ được đóng gói trong container (phổ biến nhất là Docker), đảm bảo tính nhất quán môi trường từ phát triển đến sản xuất.
  4. Triển khai đám mây: Hệ thống được triển khai trên nền tảng đám mây với khả năng tự động cân bằng tải và auto-scaling.

Minh họa kiến trúc

┌─────────────────────────────────────────────────────┐
│                    API Gateway                       │
├──────────┬──────────┬──────────┬────────────────────┤
│  Service │  Service │  Service │      Service        │
│   User   │  Account │ Payment  │    Notification     │
│  Profile │  Balance │ Gateway  │      Service        │
├──────────┴──────────┴──────────┴────────────────────┤
│  Database │  Database │  Database │    Database      │
│   User    │  Account  │  Payment  │   Notification   │
└───────────┴───────────┴───────────┴──────────────────┘

Công nghệ stack phổ biến

Thành phần Công nghệ phổ biến
Container Docker, Kubernetes
API Gateway Kong, Nginx, AWS API Gateway
Message Queue RabbitMQ, Apache Kafka
Monitoring Prometheus, Grafana
Database PostgreSQL, MongoDB, Redis

Ví dụ thực tế

Ví dụ 1: Hệ thống Internet Banking

Ngân hàng A triển khai kiến trúc Microservices cho hệ thống Internet Banking với các service chính:

  • Service Xác thực (Auth Service): Xử lý đăng nhập, mã OTP, xác thực hai yếu tố
  • Service Tài khoản (Account Service): Quản lý thông tin tài khoản, số dư, lịch sử giao dịch
  • Service Chuyển tiền (Transfer Service): Xử lý giao dịch chuyển khoản nội bộ và liên ngân hàng
  • Service Thông báo (Notification Service): Gửi SMS, email, push notification khi có giao dịch

Khi Khách hàng B thực hiện chuyển tiền 50 triệu đồng:

  1. Yêu cầu được gửi đến API Gateway
  2. Auth Service xác thực danh tính khách hàng
  3. Account Service kiểm tra số dư
  4. Transfer Service thực hiện giao dịch
  5. Notification Service gửi tin nhắn xác nhận cho khách hàng

Nếu Notification Service gặp lỗi, ba dịch vụ còn lại vẫn hoạt động bình thường — khách hàng vẫn chuyển tiền được dù có thể không nhận được tin nhắn ngay lập tức.

Ví dụ 2: Xử lý thanh toán ngày cao điểm

Trong dịp Black Friday hoặc Tết Nguyên đán, lưu lượng giao dịch thanh toán tăng đột biến 500-800%. Với kiến trúc Microservices:

  • Payment Service có thể scale từ 5 instance lên 50 instance
  • Auth Service (lưu lượng thấp hơn) chỉ cần scale lên 10 instance
  • Chi phí cloud được tối ưu vì chỉ trả cho resource thực sự sử dụng

Phân biệt Microservices với kiến trúc liên quan

Tiêu chí Microservices Monolith (Kiến trúc nguyên khối) Service-Oriented Architecture (SOA)
Cấu trúc Nhiều service nhỏ, độc lập Một khối ứng dụng duy nhất Các service lớn, phụ thuộc
Cơ sở dữ liệu Mỗi service có DB riêng Chia sẻ một DB chung Thường chia sẻ dữ liệu
Triển khai Độc lập từng service Toàn bộ ứng dụng Phụ thuộc vào nhau
Công nghệ Linh hoạt, đa ngôn ngữ Một công nghệ duy nhất Đa dạng nhưng phức tạp
Khả năng mở rộng Scale riêng từng service Scale toàn bộ ứng dụng Scale theo service nhưng hạn chế
Khôi phục lỗi Cô lập, không ảnh hưởng toàn hệ thống Lỗi một phần ảnh hưởng toàn bộ Phụ thuộc vào mức độ liên kết

Câu hỏi thường gặp trong đề thi

  1. Đặc điểm quan trọng nhất giúp phân biệt kiến trúc Microservices với kiến trúc nguyên khối (Monolith) là gì?

    • A. Sử dụng đám mây để lưu trữ dữ liệu
    • B. Các dịch vụ có thể phát triển, triển khai và bảo trì một cách độc lập
    • C. Sử dụng cơ sở dữ liệu quan hệ để lưu trữ thông tin
    • D. Chỉ hoạt động trên nền tảng di động
  2. Trong kiến trúc Microservices của ngân hàng, khi Service A cần truy cập dữ liệu từ Service B, phương thức giao tiếp nào được sử dụng phổ biến nhất?

    • A. Shared Database (Cơ sở dữ liệu chia sẻ trực tiếp)
    • B. API RESTful hoặc Message Queue
    • C. Remote Procedure Call (RPC) qua mạng riêng ảo VPN
    • D. Truyền file qua giao thức FTP
  3. Lợi ích nào sau đây thể hiện rõ nhất ưu điểm của Microservices trong việc xử lý giao dịch ngân hàng vào các dịp cao điểm?

    • A. Giảm chi phí phần cứng server vì sử dụng chung tài nguyên
    • B. Khả năng scale độc lập từng dịch vụ theo lưu lượng thực tế
    • C. Đảm bảo tất cả giao dịch luôn được xử lý đồng thời
    • D. Loại bỏ hoàn toàn lỗi phần mềm trong hệ thống

Tổng kết

Kiến trúc Microservices là xu hướng công nghệ then chốt trong quá trình chuyển đổi số của các ngân hàng Việt Nam, giúp xây dựng hệ thống linh hoạt, khả năng mở rộng cao và đảm bảo tính liên tục hoạt động. Điểm cốt lõi cần nhớ: mỗi microservice hoạt động độc lập với cơ sở dữ liệu riêng và giao tiếp thông qua API. Khi ôn thi, hãy tập trung vào sự khác biệt giữa Microservices và kiến trúc nguyên khối, đồng thời hiểu rõ cách các dịch vụ tương tác với nhau trong môi trường ngân hàng số hiện đại. Chúc các thí sinh luyện thi thành công!

🎓

Luyện thi với kiến thức này

Thuật ngữ này thường xuất hiện trong đề thi tuyển dụng ngân hàng

Chia sẻ thuật ngữ này:

🔗 Thuật ngữ liên quan 8

B

Bảo vệ dữ liệu cá nhân

Ngân hàng số & Thanh toán

Bảo vệ dữ liệu cá nhân trong lĩnh vực ngân hàng là tập hợp các quy định, chính sách, quy trình và bi...

C

Core Banking

Công nghệ ngân hàng (T24, Core Banking)

Core Banking (Hệ thống ngân hàng lõi) là hệ thống phần mềm trung tâm được thiết kế để xử lý các nghi...

H

Hệ thống core banking

Kế toán ngân hàng

Hệ thống core banking (còn gọi là hệ thống ngân hàng lõi) là phần mềm trung tâm của các tổ chức tín ...

H

Hệ thống xử lý giao dịch thẻ

Công nghệ ngân hàng

Hệ thống xử lý giao dịch thẻ là tập hợp các thành phần phần cứng, phần mềm, mạng truyền dữ liệu và q...

N

Ngân hàng Nhà nước Việt Nam

Pháp lý ngân hàng

Ngân hàng Nhà nước Việt Nam (tên tiếng Anh: State Bank of Vietnam - SBV) là cơ quan ngang bộ thuộc C...

V

Ví điện tử

Thanh toán

Ví điện tử là một ứng dụng công nghệ cho phép người dùng lưu trữ tiền tện tử dưới dạng số dư trong t...

M

mobile banking

Công nghệ ngân hàng

Mobile banking là dịch vụ ngân hàng điện tử được triển khai trên nền tảng thiết bị di động như smart...

Ứng dụng ngân hàng số

Ngân hàng số & Thanh toán

Ứng dụng ngân hàng số là phần mềm được các tổ chức tín dụng, ngân hàng phát triển và cung cấp trên n...