2021 年,我創辦了一家名為 Linvo 的新創公司,這是一款 LinkedIn 自動化工具。它產生了很多錢,但燒錢率也很高。
我可以告訴你,作為一個年輕的企業家(完全自力更生),我損失了大部分錢😆
我的系統的問題是它不斷故障;我不是世界上最好的程式設計師,但讓我詳細說明一下。
Linvo 在其生命週期中進行了幾次迭代。我使用了我所知道的技術:React 和 NestJS。
基本上,任何自動化的雲端抓取都會涉及建立任務然後解決它們。
它看起來像這樣:
Cron 每 10 分鐘執行一次,尋找新的事情要做,並將其發送到佇列。
工作人員從佇列中取出任務並處理它們。
將所有內容儲存到資料庫。
這是一個非常簡單的解決方案,在多個 EC2 (AWS) 和 Redis 上運作。
理論上,它應該有效 - 是的,您需要水平擴展工作人員,但這不是我的問題。
我開始經歷其他事情——記憶體洩漏。
您可能知道, Puppeteer - 一種 chromium 自動瀏覽器,很重(與您電腦上的 Chrome 相同),而且我執行了很多它們 - 它們耗盡了我的記憶體 - 導致伺服器停止工作並佔用網路頻寬。
重構聽起來就像 - 是的,讓我們這樣做,但我的 Intercom 支援充滿了支援票(我已經有很多用戶),而且我知道我必須建立一些瘋狂的重構。
我有一個解決方案的想法 - 讓我們使用 AWS lambda。
拉姆達啟動
做任務
死亡(大部分時間)
它不會影響你的網路。
它會死掉並且不會導致記憶體洩漏。
它有點貴,因為 Lambda 並不意味著無限期地執行——這會消除整個概念,但我很絕望。 (嗯,好處是你不需要考慮規模。)
這是新的基礎設施:
事件橋 cron 每 1 分鐘執行一次(這是最小值)
為佇列建立六個事件的 Lambda(使其像 cron 每 10 秒執行一次)
SQS隊列(再見,Redis)
Lambda 以自動縮放功能脫穎而出(是嗎?)
正如您可能從上下文中了解到的那樣 - 現在我完全使用 AWS,但我不介意 - 只介意如何在我的計算機上測試它。
以前,我使用Sam 。和Serverless幾乎一樣快速地創造整個環境。
是的,他們確實帶來了一些本地測試。他們可以獲得您的 lambda 並將其轉變為端點!耶!
但我使用的是 Event Bridge、SQS 和 Lambda。那是不可能的。
我遇過localstack 。它本來應該幫助我在我的電腦上建立整個 AWS 堆疊,但當時很多東西都不受支持,例如 Lambda 層。我在使用它時不知所措。
因此,我開始建立我的「自己的」基礎設施,在 AWS 上部署了一個「測試」SQS,並用它執行本地程式碼(一個呼叫函數的函數),但結果很糟糕。
我在生產方面做得不好;我感覺這個詞當時就壓在我身上。
我只是想擺脫這家新創公司;我甚至免費向人們提供它,吸引了顧客並擺脫了這個問題。
長話短說,我設法以低價出售了該系統,但最近,我發現了一些有趣的事情。
我想我的痛苦是真實的,儘管我會很高興在當天找到它 - 我很高興它今天還活著。
Winglang幫助您建立與我使用的相同的雲端基礎設施,但好處是:
它不需要您使用任何設定檔。您基本上用程式碼定義了整個基礎設施(您可以檢查他們的整個預檢和飛行中文件)
你可以在本地執行它 - 謝謝你,上帝,🙏🏻🙏🏻🙏🏻🙏🏻,包括所有基礎設施。
您可以將其部署到任何雲端供應商,並且不必使用 AWS。他們實際上可以產生任何 Terraform 或雲端結構,以便於部署。
我和Winglang的創始人Elad(著名的CDK的建置者)進行了交談,他說了一些讓我抽搐的話。
當您在飛機上時,您實際上可以處理您的專案並為其編寫測試🤯
我自己無法給他們足夠的星星 - 但請幫我一個忙,給他們的存儲庫加星標,當然,將其用於您的下一個專案。
https://github.com/winglang/wing
我對翼朗很生氣。我希望他們早點這麼做。現在他們出現了。什麼時候一切都與人工智慧有關?
我建立了一個新的 YouTube 頻道,主要涉及技術、開源和行銷:)
如果您對此感興趣,請隨時在這裡訂閱:
https://www.youtube.com/@nevo-david?sub\_confirmation=1