SME Platform theo Microservice
Kiến trúc microservices giúp SME Platforms linh hoạt, dễ mở rộng và dễ bảo trì do mỗi microservices hoạt động độc lập, không giới hạn mở rộng Customer Journey và User Journey.

Mở khóa nền tảng
A. Nhận thức
SMEs được chia thành ba nhóm:
Siêu nhỏ: doanh nghiệp có quy mô tổng nguồn vốn dưới 10 tỷ đồng hoặc tổng doanh thu năm dưới 30 tỷ đồng.
Nhỏ: doanh nghiệp có quy mô tổng nguồn vốn từ 10 tỷ đồng đến 100 tỷ đồng hoặc tổng doanh thu năm từ 30 tỷ đồng đến 300 tỷ đồng.
Vừa: doanh nghiệp có quy mô tổng nguồn vốn từ 100 tỷ đồng đến 300 tỷ đồng hoặc tổng doanh thu năm từ 300 tỷ đồng đến 1.000 tỷ đồng.
SME Platform sử dụng kiến trúc Microservice nên có khả năng triển khai linh hoạt cho Enterprise và Banking. Tuy nhiên, đối với doanh nghiệp ở cấp độ này, tích hợp giải pháp từ các đối tác công nghệ lớn như IBM, Oracle, Google và AWS là quan trọng để chia sẻ rủi ro và đảm bảo ổn định hệ thống.
B. Sáng kiến cấu thành Platform
Thông tin này mô tả một hệ thống phần mềm có nhiều tính năng và ưu điểm. Dưới đây là diễn giải chi tiết theo từng Sáng kiến nhóm thành phần:
I. Sáng kiến về Kiến Trúc và Framework
Front-to-Back Separation Framework
Sử dụng framework phổ biến (Springboot + JDBC + Mybatis + Antdesign + VueJS) cho sự phân tách giữa phần front-end và back-end.
Dễ bắt đầu với sự linh hoạt và ít phụ thuộc của code generator.
Microservices Support
Hỗ trợ kiến trúc Cloud Native, Hybrid Cloud và On-Premise.
Cung cấp cơ chế chuyển đổi linh hoạt giữa kiến trúc đơn monolithic và phân tán microservices
Các phản hồi có tính Real-time và Đặt lịch tự đồng cao.
II. Sáng kiến về Về Phát Triển Nhanh và Hiệu Quả
Hiệu Quả Phát Triển Cao
Sử dụng code generator cho các mô hình dữ liệu khác nhau, hỗ trợ tạo các chức năng thêm, xóa, sửa, và truy vấn một cách nhanh chóng.
Hỗ trợ cấu hình menu trực tiếp.
Code Generator Mạnh Mẽ
Cung cấp cơ chế template mạnh mẽ với sự hỗ trợ của nhiều template khác nhau.
Tự động sinh mã nguồn từ Database, API/Service và Front-end.
III. Sáng kiến Về Low Code Capability
Low Code Capability
Hỗ trợ tạo biểu mẫu online và báo cáo thông qua cấu hình trực tuyến.
Hỗ trợ tạo biểu đồ online mà không cần lập trình.
IV. Sáng kiến Về Chức Năng Hệ Thống
Encapsulated Basic Functions: Bao gồm các chức năng cơ bản như quản lý người dùng, vai trò, menu, tổ chức, từ điển dữ liệu, và công việc định kỳ trực tuyến.
Common Packages và Tools: Sử dụng các gói và công cụ phổ biến để đáp ứng 80% yêu cầu dự án.
Excel Import và Export: Hỗ trợ đơn giản việc nhập và xuất dữ liệu Excel.
PDF View và Print: Hỗ trợ đơn giản việc xuất PDF phục vụ In ấn.
Workflow Integration: Tích hợp workflow activiti và flowable, giúp đơn giản hóa phát triển bpm workflow.
V. Sáng Kiến Về Tính Bảo Mật và Quản Lý Dữ Liệu
Data Permissions: Kiểm soát quyền truy cập, quyền nút, và quyền dữ liệu.
Interface Security Mechanism: Kiểm soát quyền truy cập giao diện.
VI. Sáng kiến Về Về Tương Tác và Giao Diện
Page UI và Components: Giao diện trang web có kiểu dáng tinh tế và các thành phần chung được đóng gói.
Query Filter: Hỗ trợ tự động tạo điều kiện truy vấn và tạo điều kiện truy vấn động SQL.
VII. Sáng kiến Về Quản Lý và Giám Sát Hệ Thống
System Monitoring: Cung cấp theo dõi và theo dõi thời gian thực của hoạt động hệ thống.
Message Center: Tích hợp cơ chế thông báo tin nhắn qua Firebase, Zalo, WhatsApp và SMS.
VIII. Các Sáng kiến bổ trợ khác
Mobile Adaptive và Multiple Language Support: Hỗ trợ tốt trên di động và cung cấp giải pháp đa ngôn ngữ.
Distributed File Service: Tích hợp với dịch vụ file phân tán như Minio.
Database Compatibility: Tương thích đầy đủ với nhiều cơ sở dữ liệu phổ biến.
Support SAAS Service Model: Hỗ trợ mô hình dịch vụ SAAS và cung cấp giải pháp kiến trúc đa người dùng.
Form Designer và Row Editing Table: Hỗ trợ thiết kế biểu mẫu và chỉnh sửa bảng dữ liệu dễ dàng.
Interface Docking và Security: Cung cấp cơ chế đóng gói cho việc tích hợp và bảo mật giao diện.
API Gateway and Single Sign-On Integration: Cổng trung tâm để quản lý, điều phối các yêu cầu AP và Cung cấp giải pháp tích hợp đơn sign-on.
Data Change Recording Log: Ghi lại mỗi thay đổi dữ liệu và xem lịch sử thay đổi.
Maven Sub-module Development: Sử dụng phương pháp phát triển maven sub-module.
Menu Dynamic Routing và RBAC: Hỗ trợ định tuyến động của menu và kiểm soát quyền dựa trên vai trò.
New Row Editing Table JVXETable: Hỗ trợ chỉnh sửa bảng với hiệu suất cao và tính linh hoạt.
C. Các thành phần chính
I. Frontend Framework
Mobile App:
iOS, Android
Gợi ý: Flutter, ReactNative.
WebBrowsers:
Google Chrome, MacOS Safari, Microsoft Edge
Gợi ý: VueJS, HTML5, ReactJS, Angularjs.
IoT (Smart Device vs QR-Code)
C/C++
Python
Java
Go (Golang)
Ưu tiên Framework mà ở đó đội ngũ phát triển Developer có nhiều hiểu biết và kinh nghiệm thực chiến.
II. API Gateway vs Single Sign-On
Quản lý Định Tuyến (Routing Management): Kiểm soát và định tuyến yêu cầu đến các dịch vụ phù hợp.
Bảo Mật API: Hỗ trợ các tiêu chuẩn bảo mật như OAuth và JWT để đảm bảo an toàn trong việc truy cập dịch vụ.
Kiểm soát Thông Lượng (Throttling): Quản lý lưu lượng truy cập bằng cách giới hạn số lượng yêu cầu trong một khoảng thời gian.
Quản lý Phiên (Session Management): Theo dõi và quản lý thông tin phiên của người dùng, hỗ trợ việc duy trì trạng thái liên tục.
Bộ Lọc và Kiểm Tra (Filtering and Validation): Lọc và kiểm tra dữ liệu yêu cầu và phản hồi để đảm bảo tính đúng đắn và an toàn.
Giám sát và Ghi Nhật Ký (Monitoring and Logging): Ghi nhật ký và theo dõi hiệu suất để giúp đối phó với sự cố và tối ưu hóa hệ thống.
Chuyển Đổi Dữ Liệu (Data Transformation): Chuyển đổi định dạng dữ liệu giữa yêu cầu và phản hồi để đảm bảo tương thích giữa các hệ thống.
Dễ mở rộng: Hỗ trợ RESTful và SOAP, giúp tạo ra một cổng gateway linh hoạt.
Single Sign-On (SSO):
Quản lý Phiên (Session Management): Hỗ trợ quản lý phiên người dùng, giúp duy trì trạng thái đăng nhập khi họ tương tác với nhiều dịch vụ.
Bảo Mật SSO: Sử dụng các tiêu chuẩn bảo mật như OAuth, OpenID Connect để xác thực và ủy quyền, giúp đảm bảo an toàn trong quá trình xác thực người dùng.
Đồng Bộ Hóa Người Dùng (User Synchronization): Cung cấp cơ chế đồng bộ hóa thông tin người dùng qua các ứng dụng để đảm bảo độ nhất quán trong hệ thống
Hỗ Trợ Single Logout: Cho phép người dùng đăng xuất khỏi tất cả các ứng dụng cùng một lúc để đảm bảo tính nhất quán trong trải nghiệm người dùng.
Thường ở hạng mục API Gateway sẽ có nhiều giải pháp nền tảng kết hợp như Kong API Gateway, IBM Connect, KeyCloak, Spring Eureka API Gateway, CAS, Shiro.
Kế thừa toàn bộ tri thức nền tảng kể trên CTO227 đã Nghiên cứu và Phát triển nền tảng ưu việt phù hợp với tính tiên phong và đậm chất sáng tạo dành riêng cho thị trường Việt Nam - CTO227 Gateway Full Lifecycle API Management.
III. Backend Framework
Spring Boot (Java): Linh hoạt, cộng đồng lớn, hỗ trợ đa dạng tính năng từ Spring Framework, dễ tích hợp với các dịch vụ khác như Spring Cloud.
Express.js (JavaScript - Node.js): Nhẹ nhàng, dễ sử dụng, nhanh chóng xây dựng API, hỗ trợ xử lý các yêu cầu không đồng bộ.
Django (Python): Nhanh chóng phát triển, tự động hóa nhiều công đoạn, có sẵn quản lý admin, hỗ trợ ORM mạnh mẽ.
Ruby on Rails (Ruby): Tiết kiệm thời gian phát triển, chuẩn mực hóa, sử dụng nguyên tắc "Convention over Configuration".
ASP.NET Core (C#): Đa nền tảng, tích hợp chặt chẽ với các sản phẩm Microsoft, hiệu suất cao.
Flask (Python): Nhẹ nhàng, dễ học, phù hợp cho các dự án nhỏ đến trung bình.
Go (Golang): Hiệu suất cao, biên dịch thành mã máy, hỗ trợ đa luồng.
NestJS (JavaScript/TypeScript - Node.js): Dựa trên Angular, hỗ trợ TypeScript, sử dụng decorators giống Angular, có thể tạo API mạnh mẽ.
Ưu tiên Framework mà ở đó đội ngũ phát triển Developer có thể làm chủ SourceCode. Đối với góc nhìn của CTO227 thì Tư duy hệ thống qua trọng hơn.
IV. Microservices Support
Message Queues
Hệ thống hàng đợi tin nhắn cho phép các thành phần khác nhau gửi và nhận thông điệp một cách bất đồng bộ, giúp tăng tính độc lập và linh hoạt trong kiến trúc hệ thống.
Gợi ý: RabbitMQ, Apache Kafka, Amazon SQS, Microsoft Azure Service Bus.
Event Stream
Luồng sự kiện là một phương tiện để theo dõi và xử lý các sự kiện trong thời gian thực, thường được sử dụng để phản hồi tức thì và đồng bộ hóa dữ liệu giữa các thành phần hệ thống.
Gợi ý: Apache Kafka, Apache Flink, AWS Kinesis, Azure Event Hubs.
Batch Job
Công việc hàng loạt là quá trình thực hiện một lượng lớn công việc không thể thực hiện ngay lập tức, thường được lên lịch thực hiện định kỳ hoặc theo yêu cầu.
Gợi ý: Apache NiFi, Apache Airflow, Spring Batch, AWS Batch.
Distributed Transaction và Query
Giao dịch và truy vấn phân tán là kỹ thuật cho phép quản lý giao dịch và truy vấn trên nhiều nút trong môi trường phân tán mà vẫn đảm bảo tính nhất quán.
Gợi ý: XA Transactions, Two-Phase Commit, Sagas, Atomikos, Narayana, Seata.
Notification Sender
Người gửi thông báo là thành phần chịu trách nhiệm gửi thông báo hoặc sự kiện đến các bên liên quan, thường được sử dụng để thông báo về sự kiện quan trọng hoặc thay đổi trong hệ thống.
Gợi ý: Firebase Cloud Messaging (FCM), OneSignal, Amazon SNS, Twilio.
Performance and load testing
Kiểm thử hiệu suất và tải là quá trình kiểm tra khả năng và ổn định của hệ thống dưới áp lực tải cao, nhằm đảm bảo rằng nó có thể xử lý một lượng lớn yêu cầu mà không giảm chất lượng dịch vụ.
Gợi ý: Apache JMeter, Gatling, Locust, LoadRunner, Apache Benchmark (ab), AWS Load Testing Tools, Google Cloud's Load Testing Tools.
VI. Caching giảm tải cho hệ thống
Redis:
Redis là một hệ thống caching và lưu trữ dữ liệu in-memory phổ biến với hiệu suất cao.
Hỗ trợ nhiều kiểu dữ liệu như strings, hashes, lists, sets, và sorted sets.
Có thể sử dụng cho việc lưu trữ cấu trúc dữ liệu phức tạp và làm caching cho database.
Memcached:
Memcached là một hệ thống caching in-memory đơn giản và nhanh chóng.
Phù hợp cho việc caching các đối tượng nhỏ hoặc các giá trị khóa-giá trị đơn giản.
Dễ triển khai và có thể mở rộng dễ dàng bằng cách thêm các node Memcached vào hệ thống.
V. Quản Lý Dữ Liệu
MySQL
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến.
Được sử dụng rộng rãi trong các ứng dụng web và dự án có quy mô nhỏ đến trung bình.
Hỗ trợ nhiều tính năng như giao dịch, khóa cấp độ dòng, và replication.
PostgresSQL
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở mạnh mẽ.
Nổi tiếng với tính mở rộng và khả năng đối mặt với các công việc phức tạp.
Hỗ trợ các tính năng như truy vấn phức tạp, phân vùng, và kiểu dữ liệu người dùng.
MS SQL
MS SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ phát triển bởi Microsoft.
Thường được sử dụng trong môi trường doanh nghiệp và tích hợp chặt chẽ với các sản phẩm Microsoft khác.
Hỗ trợ các tính năng như phân tích dữ liệu, tích hợp dịch vụ báo cáo, và tích hợp tốt với các ứng dụng .NET.
Oracle DB
Oracle Database là một hệ quản trị cơ sở dữ liệu quan hệ do Oracle Corporation phát triển.
Được sử dụng rộng rãi trong các doanh nghiệp lớn và có khả năng mở rộng cao.
Hỗ trợ nhiều tính năng như partitioning, replication, và quản lý nguồn dữ liệu phức tạp.
Mongo DB
MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu.
Lưu trữ dữ liệu dưới dạng JSON-like BSON (Binary JSON).
Phù hợp cho các ứng dụng có cấu trúc dữ liệu linh hoạt và cần mở rộng dữ liệu một cách dễ dàng.
Synchronized Đồng bộ dữ liệu
Apache NiFi: một công cụ mã nguồn mở giúp đồng bộ, quản lý, và chuyển đổi dữ liệu giữa các hệ thống khác nhau.
Talend: Talend là một nền tảng tích hợp dữ liệu mã nguồn mở, cung cấp các công cụ ETL (Extract, Transform, Load).
Oracle GoldenGate: Oracle GoldenGate là một giải pháp đồng bộ dữ liệu và nhất quán dữ liệu trong thời gian thực. Hỗ trợ đồng bộ dữ liệu giữa nhiều hệ quản trị cơ sở dữ liệu, bao gồm Oracle, SQL Server, MySQL, và nhiều hệ thống khác.
VI. Quản Lý và Giám Sát Hệ Thống
Prometheus:
Thu thập và lưu trữ dữ liệu giám sát từ các máy chủ và dịch vụ.
Hỗ trợ truy vấn PromQL để thực hiện truy vấn động và phức tạp.
Có khả năng tự động cảnh báo dựa trên quy tắc cấu hình và trạng thái giám sát.
Grafana:
Hỗ trợ nhiều nguồn dữ liệu, bao gồm Prometheus, InfluxDB, Elasticsearch, MySQL, và nhiều hệ thống khác.
Cung cấp giao diện người dùng đồ họa để tạo và tùy chỉnh các biểu đồ, bảng, và thông báo.
Hỗ trợ dashboards đa ngôn ngữ và đa người dùng.
VII. CI/CD Solution
VIII. Nhóm thành phần khác
Jira
Confluen
Figma
MinIO
EFK (Elasticsearch, Fluentd, Kibana)
IX. Application Performance Monitor
Mục Tiêu: Hỗ trợ các nhà phát triển và quản trị viên hệ thống theo dõi và hiểu rõ về hiệu suất của các ứng dụng và dịch vụ phức tạp phân tán.
Chức Năng Chính:
Theo dõi phân tán: Cung cấp khả năng theo dõi các yêu cầu đi qua các thành phần phân tán của ứng dụng.
Thu thập dữ liệu hiệu suất: Ghi lại các thông tin liên quan đến thời gian phản hồi, tài nguyên hệ thống, và lưu lượng mạng.
Tổng hợp và Hiển thị: Tổng hợp dữ liệu và cung cấp giao diện đồ họa để quản trị viên có thể theo dõi hiệu suất hệ thống dễ dàng.
Hỗ trợ Ngôn ngữ lập trình và Frameworks: Hỗ trợ nhiều ngôn ngữ lập trình và frameworks thông dụng trong việc phát triển ứng dụng phân tán, như Java, .NET, Node.js, và Python.
Mở Rộng: Cho phép mở rộng để tích hợp với các công cụ giám sát khác và mở rộng khả năng theo dõi theo chiều ngang (horizontal scaling).
X. BPM (Business Process Management)
Tổng quan
Mục Tiêu: Quản lý và tự động hóa các quy trình kinh doanh thông qua việc sử dụng mô hình BPMN.
Gợi ý: Apache Activity, Camunda Platform.
Hoạt Động Chính:
Thiết kế Quy Trình: Activity giúp người dùng thiết kế quy trình kinh doanh bằng cách sử dụng ngôn ngữ đồ họa BPMN, tạo ra các biểu đồ mô hình hóa rõ ràng.
Triển Khai: Cung cấp khả năng triển khai quy trình vào môi trường sản xuất để thực hiện và giám sát các nhiệm vụ.
Quản lý Nhiệm Vụ: Theo dõi và quản lý các nhiệm vụ được thực hiện trong quy trình kinh doanh.
Tương Tác Người Dùng và Hệ Thống: Tích hợp với các hệ thống và tương tác với người dùng để thực hiện các bước trong quy trình.
Tính Linh Hoạt: Cho phép định nghĩa các quy trình phức tạp với các luồng điều kiện, sự kiện và phân nhánh.
Giám Sát và Tối Ưu Hóa: Cung cấp công cụ giám sát để theo dõi hiệu suất quy trình và tối ưu hóa chúng dựa trên dữ liệu thực tế.
Last updated
