1 điểm bởi GN⁺ 4 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Dịch vụ CI bắt đầu bằng dùng thử miễn phí đã gửi một hóa đơn $1.000 thay vì dừng dịch vụ sau khi vượt hạn mức, khiến người dùng phải gánh khoản phí ngoài dự kiến
  • Blacksmith là một startup YC thay thế GitHub Actions, quảng bá là dịch vụ drop-in replacement nhanh hơn và rẻ hơn
  • Trong điều kiện dùng thử miễn phí, không cần thẻ tín dụng, khi vượt hạn mức thì tác vụ không dừng lại mà mức sử dụng tiếp tục tích lũy theo biểu giá công khai để tính phí
  • Phần lớn người dùng sẽ kỳ vọng hạn mức miễn phí là một hard cap cho đến trước khi nhập thông tin thanh toán, nên chính sách này là một cách làm bất thường mà dưới 5% người dùng có thể đoán trước
  • Cách để người dùng không có thẻ tín dụng tiếp tục dùng vượt mức rồi sau đó gửi hóa đơn quá hạn là thực tiễn tệ hại, có lợi cho người dùng lạm dụng và làm xói mòn niềm tin

Bối cảnh — thử thay thế GitHub Actions

  • Khi lưu lượng xử lý PR tăng lên, CI ngày càng lộ rõ là chậm và đắt, khiến sự bất mãn với GitHub Actions tích tụ
  • Sau khi được giới thiệu, tác giả thử dùng Blacksmith
    • Blacksmith là một startup YC tự nhận là drop-in replacement của GitHub Actions, nhấn mạnh nhanh hơn và rẻ hơn
  • Sau khi nhập cấu hình GitHub và áp dụng, kết quả thực sự nhanh hơn, còn chi phí thì chưa rõ vì đang trong thời gian dùng thử miễn phí

Diễn biến dẫn đến hóa đơn

  • Email cảnh báo đầu tiên: tổ chức đó đã dùng hết 80% số phút miễn phí trong tháng này, đồng thời yêu cầu đăng ký thẻ tín dụng để tránh bị gián đoạn
    • Lúc này lẽ ra nên kiểm tra mức sử dụng, nhưng tác giả không dừng lại mà tiếp tục làm việc
  • Hai tuần sau nhận được thông báo "đã chi $500.60 cho Blacksmith trong tháng này"
    • Vì vẫn đang dùng thử miễn phí nên thông tin này không có vẻ là thật; cũng không có thẻ tín dụng, không ảnh hưởng tới người dùng production, và chỉ giống như một trong nhiều email cảnh báo mức sử dụng
  • Hai tuần sau nữa, trong khoảng thời gian ngắn liên tiếp nhận được thông báo "hãy đăng ký thẻ để tránh gián đoạn" → hóa đơn $1.081 → thông báo quá hạn sau hai ngày
    • Tổng số tiền trong thông báo quá hạn là $1.081,45
    • Theo hợp đồng, điều khoản thanh toán yêu cầu trả ngay khi hóa đơn được tạo

Giải thích về cách diễn đạt "gián đoạn"

  • Thông thường, khi dùng miễn phí không có thẻ tín dụng và chạm hạn mức thì dịch vụ sẽ bị ngắt (= gián đoạn), nhưng trong trường hợp này lại dẫn thẳng tới hóa đơn $1.000 bị xử lý là quá hạn ngay
  • Giải thích từ đội hỗ trợ Blacksmith
    • Cách diễn đạt "disruption" không có nghĩa là dừng dịch vụ mà là gắn cờ tài khoản để xem xét hoạt động đáng ngờ, v.v.
    • Không có câu chữ nào nói rõ các tác vụ đang chạy sẽ tự động dừng; khi vượt hạn mức miễn phí thì workflow không bị cắt mà mức sử dụng tiếp tục tích lũy theo biểu giá công khai
  • Trên thực tế, họ chưa từng nói rõ rằng tác vụ sẽ dừng khi chạm hạn mức, cũng chưa từng nói rằng "miễn phí, không cần thẻ" đồng nghĩa với việc không thể phát sinh chi phí tới hàng nghìn đô; tất cả đều là giả định dựa trên thông lệ

Bốn điểm tranh luận

  • 1. Có thể tính phí như vậy không

    • Theo điều khoản Blacksmith tại thời điểm 8/6, có hàm ý rằng quyền tính phí được thiết lập trên tiền đề người dùng cung cấp thông tin thanh toán
    • Tuy vậy, SaaS hoàn toàn có thể đưa nghĩa vụ thanh toán phần vượt mức trong thời gian dùng thử miễn phí vào điều khoản
    • Việc agent chạy nhiều tác vụ CI khiến chạm hạn mức miễn phí là điều có thể dự đoán, và người dùng cũng đã nhận được giá trị từ dịch vụ, nên về bản chất đây không hẳn là bất lương mà chỉ là một cách làm gây bất ngờ — kết luận là vẫn có thể làm vậy
  • 2. Người dùng có bị bất ngờ không

    • Tỷ lệ người dùng có thể dự đoán sẽ nhận hóa đơn cho dịch vụ miễn phí, không cần thẻ khi dùng vượt mức được ước tính là dưới 5%
    • Nếu hỏi chatbot, ngay cả khi không nhắc tới email cảnh báo đăng ký thẻ, câu trả lời vẫn nghiêng mạnh về "sẽ bị ngắt" — một dấu hiệu cho thấy chính sách này là bất thường
    • Đa số người dùng kỳ vọng hạn mức miễn phí là một hard cap cho đến trước khi nhập thông tin thanh toán
  • 3. Dịch vụ có nên làm vậy không

    • Cho phép dùng vượt mức rồi gửi hóa đơn quá hạn có thể làm tăng chỉ số doanh thu ngắn hạn, nhưng khả năng thu hồi thực tế là không chắc chắn và các khoản phải thu, nợ xấu sẽ bùng lên mạnh
    • Kết luận là thực tiễn tệ hại
      • Để người dùng không có thẻ tiếp tục tích lũy mức dùng vượt hạn tạo ra phiền toái cho cả nhà cung cấp lẫn khách hàng, đồng thời chủ yếu cho thêm dư địa miễn phí với người dùng lạm dụng vốn không có ý định trả tiền
      • Dù có thể thổi phồng doanh thu ngắn hạn, rất khó cho rằng chi phí về niềm tin và lạm dụng lại nhỏ hơn phần doanh thu tăng thêm
    • Giải pháp thay thế: cảnh báo trước theo kiểu "CI sẽ dừng nếu không đăng ký thẻ trong vòng 72 giờ"
    • Lý do họ chọn cách lập hóa đơn sau chỉ có thể đoán — growth hack quá đà, quản lý trung gian chạy theo mục tiêu doanh thu quý, nợ kỹ thuật giữa hệ thống thanh toán và provisioning, hoặc có thể là một trào lưu trong giới startup YC
      • Xét tới đà tăng trưởng bùng nổ giữa giai đoạn hỗn loạn của GitHub vào mùa xuân, tác giả đoán đây đơn giản là một sự bỏ sót trong quản lý
    • Đội hỗ trợ trả lời rằng họ sẽ xem xét các cách để giảm bớt kiểu nhầm lẫn này trong tương lai
  • 4. Dù vậy có tiếp tục dùng Blacksmith không

    • Tác giả đã thử quay lại GitHub Actions nhưng vẫn thấy bất tiện như cũ
    • Blacksmith đã tăng trưởng bùng nổ nhờ giải quyết nhanh nút thắt trong chu kỳ phát triển
    • Cuối cùng vẫn là chủ nghĩa thực dụng — ưu tiên tốc độ phát triển nhanh đã lấn át sự khó chịu với chính sách tính phí
      • Sau khi đồng ý trả tiền, phản hồi từ đội hỗ trợ cũng thân thiện hơn, và khả năng quay lại là rất cao

Hai lời khuyên cho độc giả

  • Nếu bạn xây dựng SaaS, đa số người dùng kỳ vọng tài khoản miễn phí sẽ bị tạm dừng trước khi mức sử dụng vượt hạn tiếp tục tích lũy, nên việc gửi hóa đơn sẽ bị nhiều người đón nhận tiêu cực
  • Nếu bạn định thử Blacksmith, ít nhất trong thời gian tới, an toàn hơn là giảm mức sử dụng trước khi chạm hạn mức dùng thử

1 bình luận

 
Ý kiến trên Hacker News
  • Vài năm trước khi tôi mua chiếc điện thoại đầu tiên có Internet, nhà mạng quảng cáo trong thời gian dùng thử có 300 phút miễn phí nên tôi đã nghĩ là quá hời
    Tháng đầu tiên tôi dùng dịch vụ Internet 297 phút, rồi mới biết “phút” đó chỉ áp dụng cho cuộc gọi, và tôi dính một hóa đơn quá hạn khoảng 12.000 đô la cho Internet di động. Kiểu giá vô lý như 360 đô la mỗi MB
    Cuối cùng nhà mạng thua trong một vụ kiện tập thể lớn, không phải vì quảng cáo “phút” mà vì họ đã không thông báo rõ chi phí dữ liệu cho bất kỳ ai. Chung cuộc tôi nhớ là chỉ trả khoảng 300 đô la, còn thỏa thuận 600 đô la thì bị chuyển sang thu hồi nợ rồi tôi dàn xếp 50% với bên thu nợ

    • Vì vậy tôi khá đồng cảm với việc mặc định đặt giới hạn sử dụng cứng
    • Từ rất lâu trước đây, bạn gái tôi lúc đó đã đi nghỉ cùng mẹ cô ấy và có thêm Roaming Bundle vào điện thoại
      Trong chuyến đi, nhà mạng gọi tới nói rằng phí roaming đã lên tới 1.700 bảng, và nhân viên tư vấn bảo “đừng lo”, cứ chặn thanh toán tự động tháng này cho chắc, rồi khi hóa đơn được tạo thì gọi lại
      Vài tuần sau họ xác nhận tổng cuối cùng vào khoảng 2.000 bảng, và khi tôi hỏi “chẳng phải các anh nói sẽ có tin nhắn cảnh báo khi dùng khoảng một nửa và gần hết gói sao, vậy sao không có?”, họ nói đã nghe lại bản ghi cuộc gọi và thừa nhận đúng là họ đã tư vấn như vậy
      Sau đó họ nói lẽ ra ban đầu phải đề xuất một gói khác giá 150 bảng, mức sử dụng thực tế chỉ khoảng 75% lượng dữ liệu của gói đó, và tính cả gói cũ 25 bảng thì chốt cho chúng tôi 75 bảng. Thế nên đến giờ tôi vẫn là khách hàng của nhà mạng đó
    • Hồi đó dữ liệu cũng bị tính theo phút à? Tôi chỉ nhớ mức giá theo kB và MB
  • Chà, tôi hoàn toàn không ngờ là sẽ có hóa đơn gửi tới khi mình thậm chí còn chưa đăng ký thẻ
    Đây cũng có vẻ là một ví dụ nữa cho thấy “tính phí và đo đếm rất khó, thậm chí có thể là bài toán kỹ thuật lớn hơn cả bản thân dịch vụ thực tế”
    Hôm nay tôi đang xem thử dịch vụ này vì GitHub Actions của chúng tôi quá chậm; trông thì có vẻ ổn nhưng nếu kiểu này thì tôi còn phải giám sát nó sát sao hơn hầu hết các bản dùng thử, thành ra lại tốn thêm thời gian
    Thường thì các dịch vụ kiểu này sẽ dừng khi hết thời gian dùng thử, lúc đó bạn chọn “nó đáng giá nên đăng ký” hoặc “không đáng nên quay lại như cũ”

    • Có khá nhiều công ty sẽ cứ thanh toán hóa đơn nếu nó trông hợp lý và có vẻ có căn cứ công việc
      Có những trò lừa đảo nhắm vào điều này, và một số nhà cung cấp cũng có thể lợi dụng điểm đó. Nếu 30% khách hàng cứ thế bắt đầu trả tiền, thì việc xử lý các thắc mắc còn lại vẫn đáng làm. Ít nhất là cho tới khi thiệt hại danh tiếng bắt đầu xuất hiện
      Một ví dụ đơn giản mà ai có tên miền chắc từng gặp: khi gần đến ngày hết hạn, nhiều công ty sẽ gửi “hóa đơn” trông như phí gia hạn tên miền. Nếu đọc chữ nhỏ thì sẽ thấy đó là “đề nghị chào hàng”, nhưng bề ngoài nó giống hệt hóa đơn, và một số người cứ thế thanh toán
    • Tôi là nhà sáng lập của Depot. Cứ thoải mái dùng thử
      Chúng tôi có dùng thử miễn phí thực sự theo thời gian và không làm mấy trò kỳ quặc như vậy. Bạn cũng có thể đặt giới hạn sử dụng để tránh chi phí tăng vọt ngoài ý muốn
      [0] https://depot.dev
    • Ở đây có sự giao thoa giữa lời giải thích “tính phí là khó” và vấn đề niềm tin của người dùng
    • OpenAI trước đây cũng từng tính phí kiểu này
    • Startup phải đổi mới để sống sót, và YC có vẻ không ngăn cản kiểu “đổi mới” này nếu đó là startup có khả năng kiếm bộn tiền
  • Điều này làm tôi nhớ tới cách làm ăn của Austrian NIC
    Thông thường tên miền sẽ hết hạn nếu bạn không gia hạn, nhưng ở Áo, nếu bạn không chủ động hủy bằng fax thì nó sẽ tự động gia hạn sang năm sau, và nếu không trả tiền thì sẽ bị chuyển sang thu hồi nợ[1]
    Ít nhất với tên miền cấp cao nhất mã quốc gia (ccTLD), không hề có quy tắc nào rằng “không gia hạn thì tên miền phải hết hạn”. Đó chỉ là tập quán, mà tập quán tạo ra giả định, và những giả định đó có thể bị dùng để đánh lừa con người
    Nhìn chung, kinh doanh có mô hình trả trước, ví dụ như McDonalds, và mô hình trả sau, ví dụ như nhà hàng ngồi ăn tại chỗ. Áp giá trả sau cho một dịch vụ mà theo tập quán là trả trước thì đúng là lừa đảo hoàn hảo
    [1] https://www.reddit.com/r/sysadmin/comments/1bnjus/the_austri...

    • Nếu là nhà cung cấp dịch vụ Đức thì cũng không có gì đáng ngạc nhiên. Dù vậy, trong 10 năm qua mọi thứ đã khá hơn nhiều
    • Thực tế là cách một quốc gia quản lý ccTLD của mình hoàn toàn không có các quy tắc do Mỹ áp đặt như với tên miền cấp cao chung (gTLD)
    • Chuyện đó bây giờ vẫn thế à, hay chỉ là ngày xưa thôi? Bài được dẫn là từ 10 năm trước
  • Điều khoản nói rằng để sử dụng dịch vụ của Blacksmith Software Inc, bạn phải tạo tài khoản, liên kết tài khoản GitHub trong quá trình thiết lập, cài đặt tích hợp GitHub của Blacksmith cho tổ chức của bạn, và thêm phương thức thanh toán hợp lệ như thẻ tín dụng được xử lý qua Stripe
    Chỉ với các hợp đồng lớn thì bạn mới có thể yêu cầu thanh toán bằng hóa đơn; và khi cung cấp thông tin thanh toán, bạn cho phép họ tính phí sử dụng vào thẻ tín dụng, hoặc nếu là hợp đồng thanh toán bằng hóa đơn thì đồng ý thanh toán đúng hạn theo điều khoản thanh toán
    Nếu người này không ký hợp đồng lớn và không yêu cầu thanh toán bằng hóa đơn, thì đó là vi phạm điều khoản, cứ bảo họ biến đi là được

  • 1.000 đô la một tháng, rốt cuộc đang làm gì với CI vậy?
    Chúng tôi dùng Warp build, rẻ hơn GitHub khoảng 50%, mà 6 người chạy khá nặng trên nhiều repository thì cũng chỉ khoảng 150 đô la mỗi tháng. Còn có cả build Rust nữa, vốn là trường hợp tệ hơn nhiều về thời gian build
    Tôi không biết Blacksmith có cung cấp runner lớn hơn không, nhưng nếu đang dùng runner lớn thì cần kiểm tra xem có đáng không. Runner gấp đôi không có nghĩa là build sẽ nhanh gấp đôi. Tôi đặt mục tiêu rồi chọn kích cỡ CI phù hợp với mục tiêu đó
    Cũng cần caching. TypeScript có thể xử lý bằng Nx nếu code được tách thành các package
    Ở chỗ làm cũ, chúng tôi có một tác vụ đo thời gian sau khi chạy, và vì GitHub Markdown hỗ trợ Mermaid nên biểu diễn bằng biểu đồ Gantt
    Tôi không nhớ liệu GitHub API có lấy được thời gian của workflow hiện tại hay không, nên có thể đó là workflow thứ hai
    Việc đầu tiên hơi cần thao tác tay một chút, còn phần còn lại thì có lẽ agent xử lý trong vòng 5 phút

  • Về lâu dài, cách làm ăn như vậy có vẻ không đúng đắn.
    Ngay cả khi ai đó vì sơ suất mà thực sự trả “hóa đơn”, họ cũng sẽ đánh mất rất nhiều thiện cảm và tự quảng bá cách hành xử đáng ngờ của mình cho toàn bộ giới công nghệ.

    • Tôi luôn dùng thẻ ảo rồi hủy với những nơi yêu cầu thẻ tín dụng cho bản dùng thử miễn phí. Nhìn họ càu nhàu vì không thể tính phí thật sự cũng khá buồn cười.
  • Với tư cách là khách hàng từng hài lòng sử dụng Blacksmith, Depot và Ubicloud vào những thời điểm khác nhau, tôi đồng ý rằng cả ba đều cung cấp runner GitHub Actions rẻ hơn chính GitHub, nhưng lần tính phí này thì kỳ quặc.
    Tuy vậy, cũng cần nói rằng để ra hóa đơn 1.000 USD thì phải dùng CI rất nhiều. Mức đó vượt xa nhu cầu sở thích rồi, và với cùng mức sử dụng thì trên GitHub cũ chắc đã tốn gấp đôi. Điều này gần hơn với việc yêu cầu một doanh nghiệp có nhu cầu compute thực sự phải trả tiền thật.

    • Cũng tự hỏi không biết xét về chi phí thì dùng kiểu máy chủ chuyên dụng có khi còn hợp lý hơn không.
  • Chuyện này làm tôi nhớ đến trải nghiệm với Gusto.
    Tháng 5 năm ngoái tôi đăng ký dịch vụ bù trừ lương theo tín dụng thuế R&D, và phí được tính theo một tỷ lệ của khoản lợi ích mà chúng tôi nhận được. Chúng tôi nộp hồ sơ thuế liên bang vào tháng 9, nên đương nhiên trước tháng 10 sẽ chưa có khoản bù trừ lương nào.
    Thế mà họ vẫn tính phí cho một dịch vụ chưa hề cung cấp, khiến dòng tiền ra còn tăng ngay từ ngày đầu, trái ngược hoàn toàn với mục đích của công cụ. Họ nói rằng khi tôi bấm vào ô chọn thì phần chữ nhỏ có ghi “tính phí khi đăng ký”, nhưng tôi thấy điều đó khá vô lý, và giờ vẫn nghĩ vậy.

    • Tôi có thể hỏi họ đã tính bao nhiêu và trong bao lâu không?
  • Blacksmith nên vào ngay chủ đề này và tự mình giải thích.
    Và tác giả có thể cho biết mức sử dụng này trên GitHub Actions sẽ tốn bao nhiêu không?

  • Câu hỏi “liệu bạn có tiếp tục dùng Blacksmith dù đã gặp một bất ngờ khó chịu và cách hỗ trợ khách hàng cộc cằn như vậy không?” khá thú vị, và tôi cũng hiểu cách đánh giá mang tính thực dụng đó.
    Tuy nhiên, Blacksmith cũng có thể bị vụ này phản đòn. Nếu vậy thì hy vọng họ sẽ thay đổi cách hành xử, nhưng như nhiều startup khác, họ cũng có thể просто thất bại.
    Vì thế, có lẽ khôn ngoan nhất là tiếp tục dùng nhưng không bị phụ thuộc vào dịch vụ này cho đến khi triển vọng thành công của họ rõ ràng hơn. Khi đó mới nên cân nhắc tận dụng các tính năng của nền tảng.
    Dù vậy, tôi vẫn không chắc có thể tin Blacksmith đến mức nào, hay liệu họ có muốn khiến việc rời đi sau này trở nên khó khăn hơn không.
    Còn về GitHub Actions, Microsoft rất giỏi trong việc tạo ra những sản phẩm và tính năng đủ tốt để dùng, nhưng không đủ tốt để khiến người ta chuyển sang một lựa chọn vượt trội hơn sau khi họ đã kiểm soát được nền tảng. GitHub Actions là một ví dụ rõ ràng, Teams cũng vậy, và danh sách còn dài. Với tôi, đó giống như một phiên bản hiện đại của kiểu hành vi phản cạnh tranh những năm 1990: dựng rào cản đủ lớn để đối thủ không thể chen vào và bóp nghẹt đổi mới. Tôi không thích điều đó.