Giới thiệu
Trong môi trường làm việc của đội ngũ IT Support, việc tiếp nhận và xử lý các trường hợp (case) khác nhau hàng ngày là điều phổ biến. Tuy nhiên, theo thời gian, có thể sẽ có những trường hợp đã từng xảy ra nhưng bị lãng quên. Để giải quyết vấn đề này, chúng ta có thể áp dụng khái niệm "Second Brain" – một phương pháp giúp lưu trữ và tổ chức kiến thức một cách hiệu quả.
Obsidian là một công cụ ghi chú mạnh mẽ hỗ trợ định dạng Markdown, cho phép tạo liên kết giữa các bài viết hoặc ghi chú, từ đó xây dựng một mạng lưới kiến thức phong phú. Nó cũng cung cấp các mẫu (template) để tổ chức nội dung theo cách hợp lý. Theo phương pháp "Second Brain" của Tiago Forte, quy trình thường diễn ra qua bốn bước:
- Capture: Nhanh chóng ghi lại kiến thức hoặc bối cảnh dưới dạng ghi chú ngắn.
- Organize: Sắp xếp cấu trúc thông tin (chẳng hạn như PARA: Projects/Areas/Resources/Archives).
- Distill: Tinh gọn nội dung (tóm tắt, checklist, quy trình).
- Express: Áp dụng kiến thức – tạo ra hướng dẫn, runbook, phản hồi cho các case, đào tạo.
Tuy nhiên, một trong những hạn chế của Obsidian là nó là ứng dụng ghi chú theo kiểu local-first, tức là không thể chia sẻ dễ dàng với người khác. Vậy làm thế nào để xây dựng "Second Brain" cho đội ngũ IT Support? Giải pháp là sử dụng hệ thống chia sẻ kiến thức thông qua Obsidian.
Chúng ta sẽ sử dụng Obsidian như một công cụ để tạo nên một Knowledge Base, sau đó đẩy lên Git dưới dạng pull request để các thành viên trong đội có thể kiểm tra nội dung. Tiếp theo, chúng ta sẽ sử dụng GitHub Actions để tạo Static Site Generator (SSG), chuyển đổi dữ liệu từ Markdown (Obsidian) thành HTML/CSS/JS tĩnh. Cuối cùng, chúng ta sẽ lưu trữ các tệp này trên dịch vụ hosting như GitHub Pages hoặc Cloudflare Pages.
Ưu và nhược điểm
Ưu điểm:
- Tốc độ nhanh (tệp tĩnh trên CDN).
- An toàn (không có máy chủ để bị tấn công).
- Chi phí thấp và dễ dàng mở rộng.
- Phù hợp cho tài liệu, Knowledge Base, blog và trang web doanh nghiệp.
Nhược điểm:
- Nội dung mới cần phải được tái xây dựng để hiển thị trên web.
- Các tính năng động phải dựa vào client-side hoặc Functions/Serverless API.
Cloudflare Pages là gì?
Tại sao lại chọn Cloudflare Pages? Bởi vì chúng ta đang ở trong bối cảnh sử dụng Cloudflare. Cloudflare Pages là nền tảng giúp các nhà phát triển dễ dàng triển khai (deploy) các trang web Frontend hoặc ứng dụng Jamstack, kết nối với GitHub hoặc GitLab, và tự động triển khai lên hệ thống CDN toàn cầu của Cloudflare với một URL cho môi trường sản xuất và chứng chỉ SSL miễn phí.
Lợi ích của Cloudflare Pages
- Kết nối với GitHub/GitLab: Người dùng có thể kết nối dự án của mình với các Git repositories như GitHub hoặc GitLab.
- Triển khai tự động: Khi mã nguồn được push lên repository, Cloudflare Pages sẽ tự động xây dựng và triển khai trang web.
- CDN toàn cầu: Trang web sẽ được triển khai lên mạng lưới CDN của Cloudflare, giúp người dùng trên toàn thế giới truy cập nhanh chóng.
- URL cho môi trường sản xuất: Cloudflare Pages sẽ tự động tạo URL cho trang web mà không cần mua thêm tên miền.
- SSL miễn phí: Được cung cấp chứng chỉ SSL sẵn có, giúp bảo mật trang web mà không cần cấu hình thêm.
- CI/CD tích hợp: Có pipeline CI/CD tích hợp sẵn, giúp quy trình phát triển và triển khai trở nên mượt mà hơn.
Cách cấu hình Cloudflare Pages
Trong phần này, chúng ta sẽ cấu hình Cloudflare Pages để sử dụng Qautz, một Static Site Generator, nhằm chuyển đổi dữ liệu Markdown trong GitHub của đội thành các tệp HTML tĩnh và công khai trên trang web của Cloudflare Pages.
Ghi chú: Vì đây là dự án nội bộ của công ty, chúng tôi không thể cung cấp mã nguồn đầy đủ, mong các bạn thông cảm.
Các yêu cầu cần thiết:
- Tài khoản Cloudflare.
Các bước thực hiện
-
Sau khi đăng nhập vào Cloudflare, bạn sẽ vào trang Dashboard, tại menu bên trái chọn "Compute (Worker) --> Worker & Pages".
-
Tại trang "Get Started", chọn "Import a repository" vì chúng ta sẽ sử dụng phương pháp SSG. Nhấn nút "Get Started".
-
Tại trang "Import a repository", nhấn nút "GitHub".
-
Cloudflare sẽ đưa bạn đến trang GitHub, nơi bạn cần chọn Org/Repo, sau đó sẽ đến trang "Install & Authorize Cloudflare Workers and Pages".
-
Chọn "Only select repositories" và nhấn nút "Select repositories". Từ danh sách tất cả repository trong Org/Repo, hãy chọn repository mong muốn và nhấn nút "Install & Authorize".
-
Quay lại trang "Get Started" của Cloudflare (trong một số trường hợp, có thể cần xác nhận danh tính để cấp quyền truy cập). Chọn tab "Pages" và đến "Import an existing Git repository" rồi nhấn nút "Get Started".
-
Tại trang "Deploy a site from your account", chọn tab "GitHub" và từ danh sách tài khoản GitHub, nhấn nút "Begin setup".
-
Tại trang "Set up builds and deployments", bạn sẽ cần cấu hình như sau:
- "Project name": Tên repository (chỉ đọc).
- "Production branch": Tên nhánh trong git sẽ được triển khai lên Cloudflare Pages.
- "Framework preset": Chọn None (không cần chọn framework nếu bạn sử dụng SSG như NextJS, Gatsby, v.v.)
Ghi chú: Vì chúng ta sử dụng Quartz nên không cần chọn framework.
- Build command:
bash ./scripts/setup_quartz.sh
(chạy shell script). - Build output directory:
site/public
(thư mục lưu trữ các tệp sau khi xây dựng xong static site). - Sau đó nhấn nút "Save and Deploy".
-
Bạn sẽ được chuyển đến trang "Building and deploying", quá trình xây dựng static site sẽ diễn ra tại đây.
-
Khi quá trình hoàn tất, bạn có thể truy cập theo URL
https://{projectname}.pages.dev
.
Kết luận
Bài viết này đã giới thiệu cách mà đội ngũ IT Support có thể tổ chức lại kiến thức rải rác thành một nơi tập trung thông qua khái niệm "Second Brain". Chúng ta đã sử dụng Obsidian để ghi chú và liên kết kiến thức, chuyển đổi nội dung thành trang web bằng Quartz (SSG), và sau đó triển khai lên Cloudflare Pages. Điều này không chỉ giúp tăng tốc độ truy cập với CDN, mà còn tự động hóa quá trình triển khai từ Git, tạo preview cho các pull request, và tích hợp HTTPS miễn phí. Kết quả là tạo ra một quy trình làm việc giống như DevOps cho tài liệu: viết → mở PR → xem xét → hợp nhất → trang web tự động cập nhật, giúp đội ngũ phản hồi nhanh chóng cho các trường hợp lặp lại, đạt tiêu chuẩn và mở rộng kiến thức trong dài hạn.