V VCareer Báo cáo kiến trúc · dành cho PM · 07/2026

Tổng quan kiến trúc hệ thống

Kiến trúc hệ thống VCareer

Bản tóm tắt dành cho quản lý sản phẩm, đã lược bỏ chi tiết kỹ thuật chuyên sâu: sản phẩm cung cấp những gì, các thành phần phối hợp ra sao, hiện trạng triển khai, và cách hệ thống bảo vệ dữ liệu người dùng.

Sản phẩm
5 năng lực chính
Nền tảng
AWS · SG (chờ cutover)
Tuân thủ
NĐ 13 Việt Nam
Đội ngũ
4 người + AI
Người dùng
Pilot VinUni CECS
01

Tóm tắt về sản phẩm

VCareer là nền tảng hỗ trợ nghề nghiệp ứng dụng AI, hiện triển khai thử nghiệm (pilot) cho sinh viên năm 3–4 của VinUni CECS. Sinh viên luyện phỏng vấn với AI qua giọng nói, nhận đánh giá và phản hồi, xây dựng CVportfolio; nhà tuyển dụng và cố vấn kết nối, đánh giá hồ sơ và đặt lịch mentor — trên cùng một nền tảng.

Bối cảnh
Hệ thống hiện vận hành production trên Vercel. Đội kỹ thuật đã hoàn tất xây dựng và kiểm chứng hạ tầng thay thế trên AWS (nền tảng đám mây của Amazon) — ứng dụng vận hành ổn định, phản hồi 200 OK — nhưng chưa chuyển người dùng thật sang: bước cutover được hoãn có chủ đích và có thể hoàn nguyên chỉ bằng thao tác đổi DNS. Việc chuyển đổi không ảnh hưởng tới tính năng người dùng; mục tiêu là đóng các khoảng trống bảo mật, tách dữ liệu theo môi trường và chuẩn bị cho giai đoạn mở rộng. Chi tiết trạng thái ở mục 05.
02

VCareer làm được gì

Năm nhóm năng lực sản phẩm chính. Mỗi năng lực kèm một cách ví von ngắn gọn để hình dung nhanh.

🎙️F3

Phỏng vấn AI trực tiếp

Sinh viên trao đổi thời gian thực với người phỏng vấn AI qua giọng nói, có hỗ trợ tiếng Việt. Hệ thống vận hành trên nhiều nền tảng AI (LiveKit, Google Gemini Live, OpenAI).

Ví như: một buổi phỏng vấn thử với người đối thoại AI sẵn sàng 24/7.

📊F4

Đánh giá & phản hồi

Sau buổi phỏng vấn, hệ thống chấm điểm theo khung năng lực chuẩn (SFIA), kèm bằng chứng cụ thể (trích dẫn câu trả lời và lý do), cùng báo cáo coaching để cải thiện.

Ví như: một giám khảo giải trình rõ căn cứ cho từng điểm số, thay vì đánh giá cảm tính.

📄F5·F6

Công cụ CV & JD

Tải CV lên để AI đọc và bóc tách, sử dụng trình tạo CV (xuất PDF), kiểm tra CV, và so khớp CV với mô tả công việc (JD) để nhận diện phần còn thiếu.

Ví như: một trợ lý rà soát CV và chỉ ra những điểm phù hợp và chưa phù hợp với vị trí ứng tuyển.

🌐F8

Tạo Portfolio bằng AI

AI tự động tạo trang portfolio cá nhân và xuất bản thành trang web công khai tại đường dẫn riêng /p/tên-bạn.

Ví như: AI dựng sẵn một website giới thiệu bản thân; xuất bản và có liên kết chia sẻ chỉ bằng một thao tác.

🤝F9·F10·F11

Tuyển dụng & Cố vấn

Nhà tuyển dụng đăng tin, tiếp nhận và đánh giá ứng viên. Cố vấn (advisor) theo trường hỗ trợ sinh viên và đặt lịch mentor (đồng bộ Google/Microsoft Calendar).

Ví như: một sàn kết nối sinh viên — nhà tuyển dụng — cố vấn trên cùng một nền tảng.

03

Sơ đồ kiến trúc hệ thống

Sơ đồ chi tiết dành cho người đọc có nền kỹ thuật: ranh giới giữa dịch vụ AWS và các dịch vụ SaaS giữ ngoài AWS, cùng 10 luồng dữ liệu chính.

Trình duyệt Dịch vụ AWS-native SaaS — giữ ngoài AWS request WebRTC trực tiếp ①–⑩ luồng dữ liệu
Hiện trạng
Sơ đồ mô tả kiến trúc đích trên AWS. Thực tế hiện tại: production vẫn phục vụ qua Vercel (AWS đã dựng & kiểm chứng, chờ cutover); riêng agent phỏng vấn vẫn chạy trên máy chủ VPS.
Trình duyệt — React 19 client
Giao diện
UI đa ngôn ngữ
/vi · /en · next-intl
Âm thanh
WebRTC audio
micro · loa · ICE
②③
Xem trước
Portfolio iframe
preview site
🔊 Luồng âm thanh (③) — trình duyệt nối THẲNG tới LiveKit SFU / OpenAI / Gemini ⇄ ⇄ ⇄ KHÔNG qua CloudFront / ALB / Fargate
① HTTPS: mọi request web đi qua tầng edge AWS
AWS · ap-southeast-1 (Singapore)
Tầng Edge
CDN · Tường lửa · TLS
CloudFront + WAF
ACM cert · security headers · rate-based
Cân bằng tải
ALB
idle timeout ≥300s
Tầng ứng dụng — Next.js 16 standalone (ECS Fargate)
In-process middleware
proxy.ts
next-intl → auth gate → portfolio subdomain rewrite
Render server-first
RSC Pages
src/app/[locale]/**
Mutation nhẹ
Server Actions
src/app/actions/**
REST · token · webhook
Route Handlers
src/app/api/** · token routes
①②⑤
Domain (server-only)
src/server/**
scoring · resolve-engine · recruiter
Clients + logic thuần
src/lib/**
realtime · livekit · storage(S3) · cv-*
⑥⑦⑩
Việc nền in-process
next/after()
drain chấm điểm · enqueue
Job nặng một lần
ECS RunTask
portfolio agent · Cursor SDK · 300s
Worker chạy dài
Agent phỏng vấn
LiveKit agent service
đích: Fargate · hiện: VPS
↓ ↘⑤ egress MP4 & ⑥ lưu file (presigned URL)
Lưu trữ AWS
Object storage
Amazon S3 + CloudFront
audio · video · pdf · ảnh · versioning ON
⑤⑥
Vận hành · Hạ tầng
Cron
EventBridge → Lambda
cost-rollup · booking-reminders
Bí mật · config
Secrets Manager + SSM
đọc lúc boot → env
Quyền hạ tầng
IAM task role · OIDC
creds ngắn hạn
Registry
ECR
image · scan-on-push
Log · metric · alarm
CloudWatch → SNS
→ Slack
Gọi API ra Internet (NAT / VPC endpoint): ⑥ DB & cache · ⑦ AI · email · ⑩ analytics
Dịch vụ SaaS & AI — giữ nguyên ngoài AWS
Database
Neon Postgres
Drizzle · HTTP driver
Cache · rate limit
Upstash Redis
sliding + ISR cache
Interview · chat
OpenAI Realtime
engine legacy · chat
②③⑦
AI đa năng
Google Gemini
Gemini Live · parse CV
②③⑦
Media SFU
LiveKit Cloud
engine mặc định · egress
③④⑤
Portfolio agent
Cursor SDK
Claude Opus thinking
Email
Resend
verify · reset · notify
Error tracking
Sentry
PII scrubbed
Analytics
PostHog
server + client event

10 luồng dữ liệu chính

Request thường: Browser → CloudFront + WAF → ALB → proxy.ts → RSC / Server Actions / API.
Cấp thẻ tạm (ephemeral token): Browser → token route (xác thực) → mint secret ngắn hạn → OpenAI / Gemini / LiveKit.
WebRTC âm thanh: Browser ⇄ LiveKit SFU / OpenAI / Gemini — nối thẳng, không qua CloudFront/ALB/Fargate.
Agent phỏng vấn: LiveKit SFU ⇄ agent worker (đích: ECS Fargate · hiện: VPS).
Ghi hình & webhook: LiveKit → egress MP4 → S3; room_finished webhook → API.
Dữ liệu miền: API / src/server → Neon (DB) · S3 (presigned) · Upstash Redis (cache).
Việc nền: next/after() drain chấm điểm; ECS RunTask tạo portfolio (Cursor SDK).
Cron: EventBridge Scheduler → Lambda / route — cost-rollup (hằng ngày), booking-reminders (15 phút).
Bí mật: Secrets Manager / SSM → IAM task role → biến môi trường lúc container boot (không static key).
Quan sát: App → Sentry (lỗi) · PostHog (analytics) · CloudWatch → SNS → Slack (alarm).
04

Hệ thống vận hành ra sao

Có thể hình dung hệ thống như một tòa nhà văn phòng: mỗi yêu cầu của người dùng lần lượt đi qua cổng an ninh, quầy lễ tân, bộ phận xử lý, rồi truy xuất dữ liệu từ các kho lưu trữ — và gọi thêm các dịch vụ chuyên biệt bên ngoài khi cần.

Khách tới
Người dùng
trình duyệt web
Cổng an ninh + tăng tốc
CloudFront + WAF
chặn tấn công · phân phối nhanh
Lễ tân điều phối
Cân bằng tải (ALB)
phân bổ đều yêu cầu
Bộ phận xử lý
Ứng dụng VCareer
Next.js · nhân bản được để chịu tải
Ứng dụng đọc & lưu dữ liệu tại 3 kho
Tủ hồ sơ
Neon Postgres
dữ liệu có cấu trúc: người dùng, tin tuyển, điểm…
Kho lưu trữ lớn
Amazon S3
tệp dung lượng lớn: audio, video, PDF, ảnh
Bộ nhớ tạm tốc độ cao
Upstash Redis
chống lạm dụng + tăng tốc trang
Và gọi các dịch vụ chuyên biệt bên ngoài khi cần
OpenAI · Gemini
giọng nói AI, đọc CV, chấm điểm
LiveKit
truyền âm thanh phỏng vấn
Cursor SDK
tạo portfolio
Resend
gửi email
🔑 Nguyên tắc an toàn cốt lõi: "chìa khóa gốc" (API key) để gọi các dịch vụ AI chỉ tồn tại ở phía máy chủ, trình duyệt người dùng không bao giờ tiếp cận. Khi cần kết nối trực tiếp với AI giọng nói, trình duyệt chỉ nhận một "thẻ ra vào tạm thời" (ephemeral token) — tự động hết hiệu lực sau thời gian ngắn.
Đây là thiết kế đích
Sơ đồ trên mô tả kiến trúc mục tiêu trên AWS. Ở thời điểm hiện tại, ứng dụng web đã vận hành thử trên AWS nhưng người dùng thật vẫn được phục vụ bởi Vercel; riêng phần xử lý âm thanh phỏng vấn (mục "Phỏng vấn AI trực tiếp") vẫn chạy trên máy chủ VPS hiện hữu — việc chuyển phần này lên AWS được hoãn lại có chủ đích. Chi tiết trạng thái ở mục 05.
05

Trạng thái triển khai & rủi ro

Hạ tầng AWS đã hoàn tất xây dựng và kiểm chứng, phần lớn khoảng trống bảo mật đã được đóng. Ứng dụng web đã vận hành thực tế trên AWS (phản hồi 200 OK), kho lưu trữ đã sẵn sàng. Hạng mục lớn còn lại là cutover — chuyển người dùng thật từ Vercel sang AWS (đang hoãn có chủ đích) — cùng các hạng mục vận hành, khôi phục thảm họa và tuân thủ. Con số 80% là chỉ báo định hướng, không phải số đo chính xác.

Hạ tầng AWS đã xây dựng & kiểm chứngCao
Bảo mật & quyền riêng tưCao
Cutover production, vận hành & khôi phục (DR)Còn khoảng trống
✅ Đã xây dựng & kiểm chứng
  • Ứng dụng web vận hành trên AWS (Fargate) sau tường lửa CloudFront + WAF — đã kiểm chứng phản hồi 200 OK.
  • Kho tệp Amazon S3 sẵn sàng: dữ liệu và mã nguồn đã hoàn tất, bật lưu nhiều phiên bản (chống mất/ghi đè).
  • Tách cơ sở dữ liệu riêng cho các môi trường dev / staging / production.
  • Đóng nhiều khoảng trống bảo mật: tường lửa WAF, security header, quyền tối thiểu (IAM), loại bỏ khóa cố định.
  • Xác thực email bắt buộc · kiểm tra đầu vào tại mọi API · chống lạm dụng (rate limit).
  • Giám sát lỗi và chi phí (Sentry, PostHog, CloudWatch → cảnh báo Slack).
  • Cơ chế triển khai an toàn "blue/green" và lịch cron trên AWS đã thiết lập sẵn.
⚠️ Cần hoàn thiện
  • !Cutover production — chuyển người dùng thật từ Vercel sang AWS mốc lớn nhất đang hoãn có chủ đích; có thể hoàn nguyên bằng đổi DNS.
  • !Phần xử lý âm thanh phỏng vấn vẫn ở máy chủ VPS hiện hữu — việc chuyển lên AWS được hoãn (mới hoàn tất đóng gói image).
  • !Kích hoạt cron trên AWS và tắt cron Vercel đúng thời điểm cutover (hiện tạm tắt để tránh trùng lặp), đồng thời nâng lên 2 bản chạy song song (HA).
  • !Xác nhận các tác vụ nặng vận hành ổn định trong container (tạo portfolio, đọc ảnh/PDF) — đã chạy thử, cần tiếp tục theo dõi.
  • !Kế hoạch khôi phục thảm họa (DR) chính thức — mục tiêu thời gian phục hồi và bài diễn tập, hiện chưa có.
  • !Hồ sơ chuyển dữ liệu xuyên biên giới (Nghị định 13, gửi Bộ Công an) — cần lập chính thức.
  • !Giám sát chi phí hạ tầng thường trực qua AWS Budgets và chuẩn hóa quy trình review trên môi trường staging.
06

Bảo mật & quyền riêng tư

Hệ thống xử lý dữ liệu cá nhân nhạy cảm (CV, bản ghi âm phỏng vấn, thông tin liên hệ), do đó quyền riêng tư được thiết kế ngay từ đầu chứ không vá về sau.

🔑

Bí mật chỉ ở máy chủ

Mọi khóa bí mật và logic nhạy cảm chỉ tồn tại ở phía máy chủ. Trình duyệt chỉ nhận thẻ tạm ngắn hạn để kết nối trực tiếp với AI giọng nói — không bao giờ tiếp cận khóa gốc. Tệp cũng chỉ truy cập qua đường dẫn tạm thời có giới hạn thời gian.

⚖️

Chống thiên vị khi đánh giá

Dữ liệu nhân khẩu (giới tính, xuất thân…) được cô lập tuyệt đốikhông bao giờ dùng để chấm điểm ứng viên — chỉ phục vụ thống kê tổng hợp nhằm kiểm tra tính công bằng. Đây là một nguyên tắc bất biến của hệ thống.

🌏

Nơi lưu trữ dữ liệu

Toàn bộ hệ thống và dữ liệu cá nhân đặt tại Singapore (AWS chưa có trung tâm dữ liệu tại Việt Nam). Theo Nghị định 13, cần lập hồ sơ đánh giá chuyển dữ liệu xuyên biên giới gửi Bộ Công an — không phải rào cản, nhưng cần hoàn thiện đúng thủ tục.

🗓️

Tự động xóa đúng hạn

Dữ liệu được dọn theo lịch tuân thủ Nghị định 13: thông tin liên hệ tuyển dụng ẩn sau 90 ngày, lịch sử xem hồ sơ xóa sau 18 tháng, hồ sơ audit lưu khoảng 3 năm.

🛡️

Nhiều lớp phòng thủ

HTTPS toàn bộ · tường lửa WAF ngăn tấn công và lạm dụng · kiểm tra mọi dữ liệu đầu vào trước khi lưu · phân quyền theo 5 vai trò (sinh viên, nhà tuyển dụng, cố vấn, quản trị, kiểm duyệt).

HTTPSWAFRBAC 5 vai tròRate limit
👁️

Sinh viên kiểm soát danh tính

Tên và ảnh đại diện chỉ hiển thị cho nhà tuyển dụng khi sinh viên cho phép. Chỉ nhóm pilot VinUni được truy cập. Danh tính ứng viên còn được mã hóa một chiều khi cần ẩn.

07

Từ điển thuật ngữ

Giải nghĩa nhanh các thuật ngữ kỹ thuật thường gặp khi trao đổi với đội phát triển.

AWS Amazon Web Services
Nhà cung cấp hạ tầng đám mây (máy chủ, lưu trữ) — "khu văn phòng cho thuê" nơi hệ thống vận hành.
ECS Fargate
Hình thức thuê máy chủ "trọn gói" của AWS: chỉ cần đưa ứng dụng vào vận hành, AWS đảm nhận phần hạ tầng — nơi "bộ phận xử lý" của VCareer hoạt động.
CloudFront + WAF
Cổng an ninh + trạm tăng tốc: ngăn tấn công, đồng thời phân phối nội dung nhanh từ điểm gần người dùng.
ALB Load Balancer
Lễ tân điều phối: phân bổ đều yêu cầu cho các bản ứng dụng đang chạy song song.
Neon Postgres
Tủ hồ sơ: cơ sở dữ liệu lưu thông tin có cấu trúc — người dùng, tin tuyển dụng, điểm số…
Amazon S3
Kho lưu trữ lớn: lưu tệp dung lượng lớn — bản ghi âm, video, PDF, hình ảnh.
Redis (Upstash)
Bộ nhớ tạm tốc độ cao: chống lạm dụng và giúp trang tải nhanh hơn.
Ephemeral token
Thẻ ra vào tạm thời: cho phép trình duyệt kết nối trực tiếp với AI mà không lộ khóa gốc; tự hết hiệu lực sau thời gian ngắn.
Engine nền tảng phỏng vấn
Nền tảng AI vận hành buổi phỏng vấn (LiveKit / Gemini / OpenAI) — có thể thay đổi mà không sửa giao diện.
Rubric · SFIA
Khung chấm điểm chuẩn về năng lực nghề — bảo đảm đánh giá nhất quán và có căn cứ.
Nghị định 13
Quy định bảo vệ dữ liệu cá nhân của Việt Nam — chi phối cách lưu trữ, xóa và chuyển dữ liệu.
Blue/green deploy
Phương thức cập nhật an toàn: dựng bản mới song song rồi mới chuyển sang, giữ bản cũ để hoàn nguyên nếu có sự cố.
Cutover
Thời điểm chuyển người dùng thật từ nền tảng cũ (Vercel) sang nền tảng mới (AWS).