Một dòng mã được viết bởi đồng sáng lập ChatGPT đã khiến công ty thiệt hại hàng chục nghìn USD! Người dùng mạng: Ông chủ tự viết, không tìm được ai chịu trách nhiệm.
Chiếc Lỗi Nghiêm Trọng Đã Làm Chúng Tôi Mất 10,000 Đô La
Đầu tiên, tôi muốn nhấn mạnh rằng những gì tôi sẽ chia sẻ dưới đây là một bài học đắt giá mà chúng tôi đã học được. Mọi thứ có thể đã được tránh nếu chúng tôi dành thêm thời gian và nỗ lực. Nhưng dưới áp lực thời gian, chúng tôi đã hành động vội vàng và phải hứng chịu hậu quả.
Chúng tôi đã ra mắt sản phẩm của mình vào tháng 5 năm ngoái với hy vọng khiêm tốn. Khi chúng tôi nhận được khách hàng đầu tiên chỉ sau chưa đầy một giờ kể từ khi ra mắt, chúng tôi cảm thấy như đang ở trên mây. Đó là một khoảnh khắc đáng nhớ mà chúng tôi không bao giờ quên. Tuy nhiên, niềm vui ngắn chẳng tày gang khi chúng tôi nhận được hơn 40 email phàn nàn chỉ sau một đêm. Hệ thống dường như đã sụp đổ, và vấn đề duy nhất là người dùng không thể đăng ký.
Để hiểu rõ hơn về tình hình, hãy để tôi giới thiệu sơ lược về công việc kinh doanh của chúng tôi. Vào mùa xuân này, chúng tôi đã tham gia chương trình Y Combinator (YC) mùa 23 và bắt đầu tìm kiếm cách kiếm lợi nhuận từ sản phẩm của mình. Đối tác của chúng tôi trong YC, Dalton, đã đề xuất tập trung vào người dùng trả phí và tăng gấp đôi mức giá dự kiến ban đầu. Cuối cùng, mặc dù không thoải mái lắm, chúng tôi đã quyết định đặt mức giá là 40 đô la mỗi tháng.
Sau cuộc họp, chúng tôi bắt đầu thiết kế mô hình kinh doanh của mình. Ban đầu, dự án của chúng tôi sử dụng toàn bộ công nghệ NextJS, nhưng sau đó chúng tôi quyết định chuyển sang Python/FastAPI. Với sự giúp đỡ của ChatGPT, chúng tôi đã hoàn thành công việc và tích hợp stripe một cách suôn sẻ. Tuy nhiên, vấn đề bắt đầu xuất hiện ngay sau đó và chúng tôi phải làm việc liên tục trong suốt 5 ngày tiếp theo, một trong những khoảng thời gian khó khăn nhất trong tháng.
Những ngày ấy, chúng tôi không thể ngủ yên giấc vì mỗi sáng thức dậy là một đống email phàn nàn. Chúng tôi ước tính rằng chỉ riêng phần lớn người dùng phàn nàn đã khiến chúng tôi mất hơn 10,000 đô la. Điều này không bao gồm những người dùng khác không đủ kiên nhẫn để gửi email phàn nàn. Mỗi ngày, chúng tôi đều cố gắng phản hồi tất cả các email này. Người dùng than phiền về biểu tượng tải không ngừng quay, và chúng tôi đã thử tạo tài khoản mới để kiểm tra vấn đề. Tuy nhiên, quy trình đăng ký vẫn diễn ra suôn sẻ và chúng tôi không thể tái tạo vấn đề.
Có điều kỳ lạ là sau giờ làm việc, số lượng email phàn nàn giảm đáng kể. Thời gian từ khi phát hiện vấn đề đến khi giải quyết thực sự kéo dài như cả tháng. Trong 5 ngày, chúng tôi đã nhận được hàng trăm email, hàng ngàn dòng nhật ký giám sát và liên tục trao đổi với các kỹ sư stripe trên Discord. Cuối cùng, sau vài giờ nghiên cứu 5 tệp tin quan trọng, chúng tôi đã tìm ra nguyên nhân của vấn đề. Bạn có thể xem ảnh chụp màn hình dưới đây để tự tìm câu trả lời:

Nếu bạn không tìm thấy, thì nguyên nhân chính nằm ở dòng mã sau đây, đã gây ra một tuần khó khăn nhất trong cuộc đời chúng tôi và khiến chúng tôi thiệt hại hàng nghìn đô la:

Điều xảy ra là trong quá trình chuyển đổi từ Prisma/Typescript sang Python/SQLAlchemy, chúng tôi đã sao chép và dán mã do ChatGPT tạo ra và nó hoạt động tốt. Tuy nhiên, chúng tôi đã không nhận ra rằng chúng tôi vẫn đang sử dụng Next API để chèn dữ liệu vào cơ sở dữ liệu, trong khi Python chỉ đọc dữ liệu. Khi chúng tôi bắt đầu chèn dữ liệu trong Python, chúng tôi đã tạo một mô hình SQLAlchemy mới, nhưng cuối cùng lại sử dụng định dạng cũ của mã do ChatGPT tạo ra.
Vấn đề nằm ở dòng 56, nơi chúng tôi truyền một chuỗi ID cố định thay vì sử dụng hàm hoặc lambda để tạo UUID cho mỗi bản ghi. Điều này có nghĩa là mỗi lần một người dùng mới đăng ký, họ sẽ sử dụng cùng một ID, gây ra xung đột ID. Nhưng do cấu trúc backend của chúng tôi, vấn đề này không dễ dàng bị phát hiện.
Chúng tôi chạy 8 tác vụ ECS trên Amazon Web Services, mỗi tác vụ chứa 5 phiên bản của backend. Điều này chỉ là tạm thời, nhưng chúng tôi có rất nhiều điểm thưởng AWS nên đã chọn cách này. Điều này có nghĩa là mỗi người dùng có 40 ID duy nhất để đăng ký. Trong thời gian làm việc, chúng tôi thường xuyên cập nhật, cung cấp 40 ID mới cho khách hàng. Tuy nhiên, vào ban đêm, khi không có cập nhật, số lượng ID khả dụng nhanh chóng cạn kiệt, gây ra xung đột ID.
Sau khi giải quyết vấn đề, chúng tôi cuối cùng cũng có thể ngủ ngon và không còn lo lắng về việc bị người dùng phàn nàn vào buổi sáng. Nhìn lại, dù 5 ngày đó là một trải nghiệm khó khăn, nhưng đó là một phần không thể thiếu trong hành trình khởi nghiệp của chúng tôi.
Tóm tắt 5 từ khóa
- Kinh doanh trực tuyến
- ChatGPT
- Stripe
- Backend
- Xung đột ID
© Thông báo bản quyền
Bản quyền bài viết thuộc về tác giả, vui lòng không sao chép khi chưa được phép.
Những bài viết liên quan:
Không có đánh giá...