Xây dựng Viblo Interview - Từ ý tưởng đến dịch vụ đầu tiên tổng hợp câu hỏi phỏng vấn dành cho IT-er (Phần 2)
Link bài viết Phần 1 tại đây
Tiếp theo Phần 1, hãy cùng chúng tôi nhìn lại hành trình Phát triển, triển khai, vận hành hệ thống Viblo Interview, cũng như Đánh giá sau 2 năm triển khai và nhìn nhận một số thách thức trong tương lai của dịch vụ.
Bước 2: Phát triển
Phát triển hệ thống
Áp dụng phương pháp Agile Scrum
Vì là một dự án phát triển phục vụ cho cộng đồng, giúp tổng hợp các câu hỏi phỏng vấn trong lĩnh vực CNTT, nên các tính năng cũng như yêu cầu của dự án được điều chỉnh và thay đổi liên tục. Trong bối cảnh này, phương pháp Agile Scrum đã giúp team giải quyết những khó khăn đó như sau:
- Linh hoạt thích ứng: Các sprint ngắn cho phép team nhanh chóng điều chỉnh ưu tiên và tính năng dựa trên phản hồi của Product Owner, Scrum Master cũng như cả team.
- Phát triển lặp: Việc tạo ra các phiên bản sử dụng được sau mỗi sprint giúp cả team sớm tiếp cận và đóng góp ý kiến, dẫn đến sản phẩm phù hợp hơn với nhu cầu thực tế.
- Cải tiến liên tục: Các buổi retrospective giúp team không ngừng cải thiện quy trình làm việc, đáp ứng tốt hơn với các thay đổi.
- Ưu tiên giá trị: Phương pháp này giúp team tập trung vào các tính năng mang lại giá trị cao nhất cho cộng đồng người dùng.
- Quản lý thay đổi hiệu quả: Khả năng điều chỉnh backlog và kế hoạch sprint linh hoạt giúp dễ dàng tích hợp các yêu cầu mới.
Kiểm thử hệ thống
Các phương pháp kiểm thử
Trong dự án này, chúng tôi đã áp dụng nhiều phương pháp kiểm thử khác nhau để đảm bảo chất lượng và hiệu suất của sản phẩm. Một trong những công cụ chính mà chúng tôi sử dụng là Test Performance một sản phẩm được phát triển nội bộ bởi team. Test Performance được thiết kế đặc biệt để kiểm tra hiệu năng trang web với các tính năng nổi bật sau:
- User-friendly Test Builder: Cho phép tạo các kịch bản kiểm thử một cách dễ dàng và trực quan, giúp cả những người không có chuyên môn kỹ thuật cao cũng có thể tham gia vào quá trình kiểm thử.
- Script Editor for complex scripts: Cung cấp một trình soạn thảo script mạnh mẽ, cho phép tạo và chỉnh sửa các kịch bản kiểm thử phức tạp, đáp ứng các yêu cầu kiểm thử đặc biệt của dự án.
- Various testing scenarios: Hỗ trợ nhiều kịch bản kiểm thử khác nhau, từ kiểm thử đơn giản đến các trường hợp phức tạp, giúp bao quát được nhiều khía cạnh của ứng dụng web.
- Real-time performance tracking: Cung cấp khả năng theo dõi hiệu suất theo thời gian thực, giúp nhóm phát triển nhanh chóng phát hiện và xử lý các vấn đề về hiệu năng.
- Efficient scheduling: Cho phép lên lịch tự động cho các bài kiểm thử, tối ưu hóa thời gian và nguồn lực trong quá trình kiểm thử.
Với việc sử dụng Test Performance, chúng tôi có thể thực hiện kiểm thử hiệu năng một cách toàn diện, đảm bảo rằng trang web của chúng tôi có thể xử lý tải cao và đáp ứng nhanh chóng trong nhiều tình huống khác nhau. Điều này giúp nâng cao trải nghiệm người dùng và đảm bảo tính ổn định của hệ thống.
Đánh giá và cải thiện sau kiểm thử
Sau mỗi đợt kiểm thử, chúng tôi tiến hành đánh giá kết quả để xác định các điểm mạnh và yếu của hệ thống. Quá trình này bao gồm các bước sau:
Phân Tích Kết Quả Kiểm Thử: Dựa trên dữ liệu thu thập từ Test Performance, chúng tôi phân tích hiệu năng của hệ thống để tìm ra các điểm cần cải thiện.
Xác Định Vấn Đề: Từ kết quả phân tích, chúng tôi xác định các vấn đề cụ thể ảnh hưởng đến hiệu năng và ổn định của trang web.
Đề Xuất Giải Pháp: Đội ngũ phát triển đưa ra các giải pháp kỹ thuật nhằm khắc phục các vấn đề đã xác định, từ việc tối ưu mã nguồn đến điều chỉnh cấu hình hệ thống.
Thực Hiện Cải Tiến: Các giải pháp được triển khai và thử nghiệm lại để đảm bảo các vấn đề đã được giải quyết và hệ thống hoạt động tốt hơn.
Lập Kế Hoạch Kiểm Thử Lại: Dựa trên các cải tiến đã thực hiện, chúng tôi lên kế hoạch cho các đợt kiểm thử tiếp theo để đảm bảo các cải tiến đạt hiệu quả mong muốn.
Quá trình đánh giá và cải thiện sau kiểm thử giúp chúng tôi không ngừng nâng cao chất lượng và hiệu năng của sản phẩm, đảm bảo hệ thống luôn đáp ứng tốt các yêu cầu của người dùng và hoạt động ổn định trong mọi điều kiện.
Bước 3: Triển khai và vận hành hệ thống
Triển khai hệ thống
Viblo Interview hính thức ra mắt vào 03/04/2023. Ban đầu, chúng tôi sử dụng CI, một sản phẩm tự phát triển của team, để tự động hóa quá trình triển khai. Sau đó, chúng tôi chuyển qua sử dụng GitHub Actions cho CI/CD để tự động hóa quá trình kiểm thử và triển khai.
Quy trình vận hành
Giám Sát Hệ Thống: chúng tôi sử dụng Monitor một sản phẩm do team tự phát triển có các tính năng như theo dõi các chỉ số quan trọng như apdex và latency để đánh giá chất lượng hệ thống.
Phát hiện và cảnh báo kịp thời các sự cố (incidents) xảy ra trong hệ thống: Gửi thông báo tự động đến người phụ trách khi phát sinh vấn đề, giúp xử lý nhanh chóng và nâng cao chất lượng sản phẩm. Cung cấp giao diện trực quan để người dùng dễ dàng theo dõi và phân tích hiệu suất hệ thống.
Quản Lý Log (Logging): Có khả năng xem log trực tiếp trên server. Tập trung và phân tích log để phát hiện và điều tra các vấn đề.
Sao Lưu Dữ Liệu (Backup): Sử dụng dịch vụ database cloud của Linode, cung cấp tính năng sao lưu tự động và đảm bảo an toàn dữ liệu.
Quy Trình Xử Lý Sự Cố
Phát Hiện Sự Cố: Công cụ giám sát Monitor sẽ phát hiện và gửi cảnh báo về slack khi có sự cố xảy ra.
Phân Tích Sự Cố: Đội ngũ DevOps sẽ phân tích nguyên nhân gây ra sự cố dựa trên log và dữ liệu giám sát.
Khắc Phục Sự Cố: Thực hiện các biện pháp khắc phục sự cố, bao gồm khởi động lại dịch vụ, thay đổi cấu hình, hoặc triển khai lại mã nguồn.
Báo Cáo Sự Cố: Sau khi sự cố được khắc phục, chúng tôi lập báo cáo (INCIDENT Report) chi tiết về thời gian, nguyên nhân, mức độ nghiêm trọng, phạm vi ảnh hưởng và giải pháp khắc phục và trạng thái xử lý đồng thời cập nhật quy trình để ngăn ngừa sự cố tương tự trong tương lai.
Bằng cách tận dụng Monitor và các công cụ khác, chúng tôi đảm bảo một quy trình vận hành hệ thống hiệu quả, cho phép phát hiện sớm và xử lý nhanh chóng các vấn đề, đồng thời không ngừng cải thiện chất lượng và hiệu suất của sản phẩm.
Đánh giá sau 2 năm triển khai
Phản hồi và Đánh giá hiệu quả dịch vụ
Về chất lượng nội dung
-
Tăng cường kiến thức: Viblo Interview đã đạt được mục tiêu cung cấp nội dung chất lượng cao cho người dùng. Các câu hỏi phỏng vấn được đóng góp bởi các lập trình viên, kỹ sư có chuyên môn, kinh nghiệm trong ngành công nghệ thông tin, đảm bảo tính chính xác và hữu ích.
-
Phản hồi từ cộng đồng: Người dùng đánh giá cao về chất lượng nội dung. Các nội dung giúp người dùng chuẩn bị tốt hơn cho phần phỏng vấn và nắm vững kiến thức cần thiết.
Ngoài ra, dịch vụ vẫn còn gặp một số lỗi, vấn đề trong quá trình sử dụng:
- Người dùng gặp khó khăn khi tạo một câu hỏi có tag mới chưa có trên hệ thống. Đội ngũ phát triển Viblo Interview đã bổ sung thêm tính năng duyệt kèm tag mới khi gửi duyệt câu hỏi.
- Người dùng gặp khó khăn khi tìm kiếm câu hỏi, khi công cụ chưa hỗ trợ tìm kiếm theo từ khóa, mà cần phải tìm toàn bộ nội dung câu hỏi. Đội ngũ phát triển đã sử dụng elasticsearch để cải thiện chức năng tìm kiếm, giúp người dùng thuận tiện hơn để tra cứu các câu hỏi phỏng vấn chỉ bằng các từ khóa.
- Một số câu hỏi chưa có câu trả lời, khiến quá trình chuẩn bị phỏng vấn chưa hoàn thiện. Với sự phát triển của các công cụ Generative AI, Viblo Interview cũng đã nhanh chóng áp dụng các Chatbot AI để gợi ý câu trả lời cho toàn bộ các câu hỏi phỏng vấn đang có mặt trên hệ thống.
Các câu hỏi trên Viblo Interview đều có câu trả lời gợi ý từ Chatbot AI.
Về tính năng dịch vụ
-
Cập nhật thường xuyên: Viblo Interview đã liên tục cập nhật tính năng để đáp ứng nhu cầu của người dùng. Các câu hỏi mới được cập nhật khi có các tag (thẻ) mới, liên quan đến các chủ đề thịnh hành. Các tính năng mới bao gồm Đề xuất bài viết về các nội dung liên quan đến câu hỏi phỏng vấn, Cải thiện công cụ tìm kiếm theo từ khóa câu hỏi, hoặc theo tác giả câu hỏi, và Đề xuất câu trả lời từ Chatbot AI.
-
Giao diện thân thiện: Giao diện dễ sử dụng và thân thiện với người dùng, giúp người dùng tìm kiếm thông tin một cách nhanh chóng và thuận tiện.
Về công nghệ phát triển
- Sử dụng công nghệ hiện đại: Viblo Interview đã áp dụng các công nghệ mới như Machine Learning và Elasticsearch để cải thiện trải nghiệm người dùng.
- Tối ưu hóa hiệu suất: Dịch vụ đã tối ưu hóa hiệu suất, giảm thời gian tải trang và tăng tốc độ truy cập.
Viblo Interview đã đạt được một số thành tựu sau 2 năm chính thức ra mắt. Tuy nhiên, việc tiếp tục cải thiện và phát triển là hết sức cần thiết để duy trì một dịch vụ mang lại giá trị và hỗ trợ tốt nhất cho sự phát triển của cộng đồng.
Những thách thức của dịch vụ: các công cụ Generative AI
Hiện nay, sự xuất hiện và phát triển nhanh chóng của các công cụ Generative AI đã tạo ra những thách thức đáng kể cho dịch vụ của chúng tôi, đặc biệt là về mặt số lượng người truy cập. Các công cụ AI này có khả năng tạo ra nội dung tự động, đa dạng và phong phú, có thể đáp ứng nhu cầu thông tin của người dùng một cách nhanh chóng và hiệu quả. Điều này dẫn đến việc một số người dùng có thể chuyển sang sử dụng các công cụ AI thay vì truy cập trực tiếp vào dịch vụ của chúng tôi, gây ra sự sụt giảm về lưu lượng truy cập.
Để đối phó với thách thức này, chúng tôi tập trung vào việc nâng cao chất lượng dịch vụ và phát triển nội dung độc quyền. Phát triển các tính năng và dịch vụ độc đáo, tích hợp công nghệ AI để tăng tính tương tác và cá nhân hóa, đồng thời tối ưu hóa SEO để đảm bảo khả năng hiển thị trên các công cụ tìm kiếm. Bằng cách kết hợp sức mạnh của con người và công nghệ AI, chúng tôi tin rằng có thể không chỉ duy trì mà còn tăng số lượng người truy cập, tạo ra một dịch vụ không thể thay thế và mang lại giá trị tốt nhất cho người dùng trong kỷ nguyên AI.
Kế hoạch nâng cấp dịch vụ
Kế hoạch nâng cấp dịch vụ của chúng tôi bắt đầu bằng việc thu thập phản hồi chi tiết từ người dùng và đánh giá các xu hướng công nghệ mới. Sử dụng Monitor, Test Performance chúng tôi phân tích kỹ lưỡng hiệu suất hệ thống hiện tại đối với số lượng người dùng hiện có. Điều này giúp chúng tôi xác định chính xác liệu hệ thống có đang đáp ứng đủ nhu cầu hay không. Dựa trên những phân tích này, chúng tôi lên kế hoạch nâng cấp phù hợp, có thể bao gồm việc mở rộng cơ sở hạ tầng, tối ưu hóa hiệu suất, hoặc tích hợp các công nghệ mới. Mục tiêu của chúng tôi là đảm bảo dịch vụ luôn đáp ứng được nhu cầu của người dùng hiện tại, đồng thời có khả năng mở rộng để phục vụ số lượng người dùng ngày càng tăng trong tương lai.
© Tác giả: Software Engineer Huy Hoang, Community Development Specialist Ngoc Anh
All rights reserved