Kiến trúc hệ thống tham chiếu

Một hệ thống vận hành thực tế,
được xây dựng và vận hành công khai.

Một hệ thống do Nathaniel Jay Adams tự thiết kế, xây dựng và vận hành cho chính công việc giảng dạy của mình. Đây không phải một triển khai tại trường đại học và không được giới thiệu như vậy — mà là một ví dụ thực tế về kiến trúc dữ liệu, kỷ luật tích hợp và tiêu chuẩn vận hành nêu trên.

Xem phim về kiến trúc hệ thống

Sơ đồ động do WorldWise Learning thực hiện, dựa trên lược đồ dữ liệu và cấu hình lịch chạy của chính hệ thống. Người dẫn, Minh, là avatar AI với giọng nói AI, được tạo bằng Google Vids. Không hiển thị bản ghi thật, dữ liệu sinh viên hay số liệu nào. Hình nền trung tâm dữ liệu là hình ảnh do AI tạo ra.

Hệ thống được xây dựng như thế nào, qua từng giai đoạn

  1. Vấn đề

    Giảng dạy cho nhiều chương trình tạo ra cùng một khối lượng công việc mỗi tuần: hồ sơ nằm rải rác trong nhiều tài liệu, tiến bộ được theo dõi thủ công, và không có nơi nào để rà soát toàn bộ minh chứng của một học kỳ.

  2. Kiến trúc hệ thống

    Một ứng dụng kết xuất phía máy chủ, chạy trên dịch vụ lưu trữ đám mây được quản lý với cơ sở dữ liệu quan hệ, được triển khai liên tục từ hệ thống quản lý mã nguồn và chỉ truy cập được sau khi xác thực. Trung lập về nhà cung cấp ngay từ thiết kế: tài sản là mô hình dữ liệu, không phải nhà cung cấp.

    Ứng dụng
    Next.js 16 · React · TypeScript
    Dữ liệu
    PostgreSQL qua Prisma · ranh giới dữ liệu được kiểm tra bằng Zod
    Thư viện phụ thuộc khi chạy
    12, có chủ ý
    Truy cập
    Có xác thực; không có giao diện công khai
  3. Những gì đã được xây dựng

    Một mô hình miền dữ liệu gồm mười bảng, bao quát toàn bộ hoạt động giảng dạy thay vì một tính năng riêng lẻ, với một trung tâm điều hành để lập kế hoạch hằng tuần ở lớp trên cùng.

    • Học viên · Giáo viên · Buổi học · Học liệu
    • Đánh giá · Thanh toán
    • Tài liệu nguồn · Hàng đợi rà soát
    • Tình trạng tích hợp · Lịch sử các lần chạy theo lịch
  4. Tích hợp dữ liệu và mức độ sẵn sàng cho AI

    Hai tác vụ theo lịch chạy hằng ngày: sự kiện trên lịch được đối chiếu thành buổi học, và hồ sơ giảng dạy được sao chép sang Notion. Một quy trình xử lý tệp nguồn cục bộ riêng theo dõi tệp bằng mã băm nội dung, nhờ đó các thay đổi, bản trùng lặp và tệp bị mất đều được phát hiện thay vì phỏng đoán.

    Hệ thống không gọi đến mô hình ngôn ngữ, và đó là chủ ý. Việc theo dõi tài liệu nguồn và hàng đợi để con người rà soát chính là nền tảng đối chiếu nguồn và giám sát mà một trợ lý dựa trên truy xuất nguồn cần có. Kỷ luật dữ liệu đi trước; mô hình chỉ được bổ sung sau, nếu minh chứng cho thấy điều đó là xứng đáng.

  5. Vận hành thực tế

    Hệ thống tự chạy theo lịch mà không cần người trông coi, như một hạ tầng đang hoạt động thực tế chứ không phải bản trình diễn. Bộ lập lịch chỉ bảo đảm độ chính xác theo giờ và không chạy lại lần gọi bị lỗi, nên thiết kế chấp nhận cả hai điều này: hai tác vụ có khung giờ bắt đầu cách nhau một giờ (không phụ thuộc vào việc tác vụ kia hoàn tất), mọi lần chạy đều được ghi lại bền vững, và lần chạy bị bỏ lỡ được hiển thị rõ thay vì được mặc định là đã chạy. Các yêu cầu theo lịch đều được xác thực và bị từ chối theo nguyên tắc an toàn nếu thiếu khóa bí mật. Các sự cố do thông tin xác thực hết hạn, quyền truy cập trên máy chủ và thay đổi API của bên thứ ba đã được chẩn đoán và khắc phục trong môi trường vận hành thực tế — phần việc không bao giờ xuất hiện trong một nguyên mẫu.

  6. Minh chứng

    Các sơ đồ được tạo từ chính lược đồ dữ liệu và cấu hình lập lịch của hệ thống.
    Không sơ đồ nào chứa dữ liệu của người học, nhân sự hay tổ chức.

    Kiến trúc trong thực tế
    Một hệ thống, từ giảng dạy đến minh chứngHồ sơ giảng dạy được cập nhật bằng các tác vụ chạy theo lịch. Lịch sử chạy và tình trạng kết nối giúp kiểm tra được kết quả. Các đường nối thể hiện luồng xử lý, không phải khóa ngoại trong cơ sở dữ liệu.
    01 / Kiến trúc

    Hai tầng,
    một hệ thống.

    Giảng dạy là điều diễn ra.
    Vận hành lưu giữ minh chứng.

    Lõi giảng dạy Quan hệ giảng dạyLesson liên kết với Student, Instructor, Material và Assessment. Student còn liên kết với Assessment và Payment. Payment không có quan hệ trực tiếp với Lesson.
    StudentNgười học
    InstructorGiáo viên
    LessonTrải nghiệm học tập
    AssessmentTiến bộ
    MaterialHọc liệu
    PaymentHọc phí của học viên
    Tầng vận hành
    SourceDocument Tệp nguồnReviewItem Hàng đợi rà soátIntegrationHealth Tình trạng kết nốiCronRun Lịch sử chạy
    Xem minh chứng kiến trúc

    Sáu mô hình giảng dạy, bốn mô hình vận hành. Mỗi Lesson thuộc về một Student và một Instructor; Material là tùy chọn. Assessment thuộc về Student và có thể tham chiếu đến Lesson. Payment thuộc về Student, không thuộc về Lesson.

    ReviewItem có thể tham chiếu đến SourceDocument. IntegrationHealth và CronRun là các bảng độc lập. Hai tầng là cách nhóm theo khái niệm, không phải một quan hệ trong cơ sở dữ liệu.

    02 / Tự động hóa

    Hai tác vụ hằng ngày.
    Một trình tự có chủ ý.

    Đưa lịch vào trước.
    Rồi sao chép hồ sơ giảng dạy ra ngoài.

    11:00 UTCLịch → Buổi học
    1. Lịch
    2. Đối chiếu
    3. Buổi học
    Cách nhau 1 giờ
    12:00 UTCHồ sơ giảng dạy → Notion
    1. Cơ sở dữ liệu
    2. Đồng bộ
    3. Notion
    Mỗi lần gọi tác vụ được ủy quyền
    tạo một bản ghi CronRun.
    Xem minh chứng lập lịch

    0 11 * * * → /api/cron/daily-sync
    0 12 * * * → /api/cron/notion-sync

    Khung giờ bắt đầu cách nhau một giờ; thứ tự hoàn tất không bị cố định. Tác vụ lúc giữa trưa sao chép dữ liệu học viên, giáo viên, buổi học, thanh toán và đánh giá sang Notion.

    Việc băm và rà soát tệp nguồn là một quy trình xử lý cục bộ riêng, không thuộc tác vụ đám mây lúc giữa trưa. Các yêu cầu phải có khóa bí mật cron; yêu cầu không được ủy quyền bị từ chối trước khi tạo lần chạy.

    03 / Khả năng giám sát

    Không lỗi nào
    bị bỏ qua trong im lặng.

    Thấy được tác vụ nào đã chạy, điều gì hiệu quả,
    và điều gì cần lưu ý.

    1. ChạyBắt đầu thực hiện
    2. Đã ghi nhậnĐã lưu lịch sử
    3. Cập nhật tình trạngTrạng thái kết nối
    4. Lỗi được hiển thịViệc cần xử lý được hiển thị
    Lịch sử chạyTác vụ · thời gian · kết quả · lỗiCronRun
    Tình trạng kết nốiTình trạng · lần đồng bộ gần nhất · lỗi gần nhất

    Kết nối truy cập được không chứng minh rằng tác vụ định kỳ đã chạy thành công. Cả hai tín hiệu đều quan trọng.

    Xem minh chứng giám sát

    CronRun
    job · startedAt · finishedAt · ok · error · trigger

    IntegrationHealth
    healthy · lastSyncAt · lastError

    Trạng thái được suy ra, không phải trường dữ liệu sức khỏe được lưu sẵn: ok, failed, missed, blocked, none. “Missed” nghĩa là lần chạy thành công gần nhất đã quá cũ; đây không phải một số đếm được đo lường. Tình trạng kết nối do phần tích hợp Notion lưu riêng, tách biệt với việc hoàn tất lần chạy.

    Đây là minh họa cho thiết kế ghi nhận, không phải công cụ giám sát trực tiếp hay sự bảo đảm trước mọi sự cố hạ tầng. Không hiển thị bản ghi mẫu hay số liệu bịa đặt nào.

    Kiến trúc được trích xuất từ mã nguồn. Không có bản ghi thực.Hiểu hệ thống. Kiểm tra minh chứng.

  7. Khả năng chuyển giao

    Mô hình này chuyển sang công việc cấp tổ chức mà không thay đổi: một mô hình dữ liệu được xác định rõ, một quy trình đối chiếu chạy theo lịch, trợ giúp có căn cứ nguồn dưới sự rà soát của con người, và khả năng giám sát vẫn đứng vững trước sự cố thực tế. Điều thay đổi đối với một trường đại học là quản trị, quy mô và vị trí của khâu rà soát — chứ không phải kiến trúc.

Quay lại Hệ thống trong thực tế Trao đổi về dự án