0

SAP dưới góc nhìn kỹ thuật: Kiến trúc hệ thống ERP tích hợp và cách nó vận hành ở quy mô doanh nghiệp

SAP giải quyết bài toán gì ở level hệ thống?

sap-solutions-1200x630-1542083397373948501153-crop-15420834380941893047732.jpg Nếu bỏ toàn bộ lớp “ERP marketing”, SAP thực chất giải quyết một bài toán rất cụ thể:

Làm sao để nhiều domain (finance, sales, inventory, HR…) cùng thao tác trên một state mà không bị lệch dữ liệu

Trong system design hiện đại, đây chính là bài toán:

  • Distributed data consistency
  • Cross-domain transaction
  • Single source of truth

Cách phổ biến hiện nay:

  • Microservices + eventual consistency
  • Event bus + message queue
  • Saga pattern

Cách SAP làm:

  • Centralized data model
  • Synchronous transaction
  • Strong consistency mặc định

Đây là khác biệt cốt lõi.

SAP hoạt động như một “transaction engine” chứ không phải app

Trong SAP, mọi thứ xoay quanh transaction.

Ví dụ một flow: Create Sales Order

Ở level system, nó không phải 1 action đơn giản, mà là:

  • Insert vào bảng sales (SD)
  • Update tồn kho (MM)
  • Ghi nhận accounting entry (FI)
  • Trigger workflow khác nếu cần

Tất cả nằm trong một LUW (Logical Unit of Work)

Tức là:

  • Either commit tất cả
  • Hoặc rollback toàn bộ

Không có chuyện:

  • Sales thành công nhưng accounting fail
  • Inventory chưa sync

=> Đây là ACID xuyên domain, thứ mà microservices rất khó làm.

Kiến trúc: Domain modular nhưng data không bị tách

sap-servicesdesaturatefinal-1542083579345245147079.jpg SAP chia hệ thống thành các module:

  • FI (Finance)
  • MM (Material)
  • SD (Sales)
  • PP (Production)

Nhưng quan trọng:

  • Không có database riêng cho từng module
  • Không có service boundary rõ như microservices

Thay vào đó:

  • Tất cả share chung một schema lớn
  • Quan hệ table chồng chéo mạnh

=> Đây là shared database architecture

Ưu điểm:

  • Không cần sync
  • Không có eventual consistency

Nhược điểm:

  • Coupling cực cao
  • Scale theo kiểu vertical là chính

SAP HANA thay đổi execution model như thế nào?

SAP HANA không chỉ là database, mà thay đổi luôn cách code chạy.

Trước HANA:

  • App server xử lý logic
  • DB chỉ lưu trữ
  • Batch job để aggregate Sau HANA:
  • Logic được đẩy xuống DB
  • Query chạy trực tiếp trên RAM
  • Aggregation realtime

Ví dụ:

Thay vì:

SELECT data -> load lên app -> xử lý -> trả về

Chuyển thành:

DB tự xử lý logic -> trả về kết quả cuối

=> Gọi là code push-down

Điều này khiến:

  • SQL trở thành nơi xử lý chính
  • App layer mỏng đi

S/4HANA: Loại bỏ data duplication để giảm complexity

SAP S/4HANA giải quyết vấn đề lớn của SAP cũ: Data redundancy

Trước đây:

  • Có nhiều bảng aggregate
  • Có bảng tổng hợp riêng cho reporting

Sau S/4HANA:

  • Giữ 1 bảng chính
  • Query trực tiếp

Điều này dẫn tới:

  • Không cần ETL
  • Không cần sync BI
  • Report realtime

So sánh nhanh với microservices

Tiêu chí SAP Microservices
Data Centralized Distributed
Consistency Strong (ACID) Eventual
Transaction Cross-module Saga
Coupling High Low
Scaling Vertical Horizontal
Debug Khó (vì lớn) Khó (vì phân tán)

Điểm thú vị:

  • SAP chọn consistency → chấp nhận coupling
  • Microservices chọn scale → chấp nhận inconsistency

Vì sao SAP vẫn sống khỏe dù “không modern”?

Lý do không nằm ở công nghệ, mà ở bài toán:

SAP tối ưu cho:

  • Enterprise lớn
  • Quy trình phức tạp
  • Sai lệch dữ liệu = rủi ro lớn

Trong các hệ này:

  • Consistency quan trọng hơn scale
  • Correctness quan trọng hơn speed

=> Kiến trúc SAP phù hợp hơn microservices trong nhiều case

Những điểm dev sẽ “vỡ đầu” khi làm SAP

8.1. Data model cực lớn

  • Hàng nghìn table
  • Quan hệ phức tạp
  • Không có document rõ như REST API

8.2. ABAP không giống ecosystem phổ biến

  • Không phải OOP thuần
  • Syntax riêng
  • Debug kiểu riêng

8.3. Không có boundary rõ

Trong microservices: Service A không biết DB service B

Trong SAP: Module A có thể query thẳng data module B

=> Debug khó hơn nhiều

8.4. Custom = technical debt

  • Custom nhiều → upgrade khó
  • Nhưng không custom → business không fit

Kết luận

Nếu nhìn SAP như một công cụ, sẽ rất khó hiểu vì sao nó lại phức tạp và tốn kém đến vậy. Nhưng khi nhìn nó như một “hệ điều hành cho doanh nghiệp”, mọi thứ trở nên hợp lý hơn.

SAP được thiết kế để giải quyết bài toán mà nhiều hệ thống khác gặp phải: làm sao để toàn bộ dữ liệu và quy trình trong một tổ chức lớn có thể vận hành thống nhất, không bị rời rạc.

Đó cũng chính là lý do SAP không phù hợp với mọi doanh nghiệp, nhưng lại trở thành lựa chọn gần như bắt buộc khi hệ thống đạt đến một mức độ phức tạp nhất định.

=> Tham khảo: https://bizflycloud.vn/tin-tuc/sap-la-gi-20181113115730288.htm


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí