河南夢之網網絡科技有限公司
夢之網科技出品
掃描關注夢之網科技微信公眾賬號

掃小程序碼聯系客服

創建一家互聯網公司需要幾個人?一個就夠了-鄭州小程序開發

夢之網科技?2019-10-07?文章動態?

參與:高璇、張倩

創建一個互聯網公司需要幾個人?一位來自舊金山的軟件工程師告訴我們:一個就夠了。這位工程師創建了一個名為「Listen Notes」的播客搜索引擎,像谷歌一樣可以方便地搜索海量播客資源。在這篇文章中,這位工程師向我們介紹了他創建「Listen Notes」用到的各種「無聊」技術。

創建一家互聯網公司需要幾個人?一個就夠了-鄭州小程序開發

Listen Notes 地址:https://www.listennotes.com/

創建一家互聯網公司需要幾個人?一個就夠了-鄭州小程序開發

Listen Notes 是一個播客搜索引擎和數據庫。而 Listen Notes 背后的技術實際上毫無新意。沒有 AI,沒有深度學習,沒有區塊鏈。「任何說我必須使用 AI 的人都沒有使用真正的 AI」,文章作者這樣表示。

作者在前言中說:「閱讀完本文后,讀者應該能夠復制我為 Listen Notes 構建的內容,或者輕松地實現類似的操作。你無需聘請很多工程師。請記住,當 Instagram 融了 5750 萬美元并被 Facebook 以 10 億美元收購時,他們只有 13 名員工——而且并非所有人都是工程師。Instagram 的故事發生在 2012 年初。現在是 2019 年了,一個小型工程團隊甚至一個人創造一些有意義的東西比以往任何時候都有可能。」

這篇介紹了用很多「無聊」技術創建互聯網產品的文章引起了很多網友的討論,有人表示,技術本身就是一種手段,如果能夠很好地實現產品的功能,即使是「無聊」的技術也會很棒。

也有網友表示,能夠一個人同時掌握前端、數據庫、搜索引擎、存儲、集群、開發、源控制和權限管理等很多技術是非常難得的。

在下文中,作者從前端、后端、API 等幾個角度介紹了自己用到的技術細節。

概述

讓我們從 Listen Notes 項目的需求和功能說起。

Listen Notes 為終端用戶做了兩件事:

為播客聽眾提供了網站 ListenNotes.com。該網站可以提供搜索引擎、播客數據庫、「稍后聽」播放列表、音頻剪輯以及「收聽提醒」(當新播客中提及指定的關鍵字時,它會通知你)。

開發人員的播客搜索和目錄 API。我們需要跟蹤 API 使用情況,從付費用戶處獲取資金,進行客戶支持等等。

一切都在 AWS 上運行。截至 2019 年 5 月 5 日有 20 臺服務器在工作:

創建一家互聯網公司需要幾個人?一個就夠了-鄭州小程序開發

運行 Listen Notes 的服務器。

讀者可以通過主機名輕松猜出每個服務器的任務。

production-web 為 ListenNotes.com 提供網絡流量。

production-api 提供 api 流量。我們運行兩個版本的 API(截至 2019 年 5 月 4 日),即 v1api(舊版本)和 v2api(新版本)。

production-db 運行 PostgreSQL(主服務器和副服務器)

production-es 運行 Elasticsearch 集群。

production-worker 運行離線處理任務,以使播客數據庫始終保持最新狀態,并提供一些神奇功能(例如搜索結果排名、劇集/播客推薦......)。

production-lb 是負載均衡器。為方便起見,我還在這臺服務器上運行 Redis 和 RabbitMQ。我知道這不是最理想的方案。反正我不是完美的人:)

production-pangu 是類似生產的服務器,我有時會運行一次性腳本和測試更改。那「pangu」是什么意思?請自行搜索。

這些服務器大多數都可以水平擴展。這就是為什么我將它們命名為 production-something1,production-something2 ...... 將 production-something3 和 production-something4 再加入其中就非常容易了。

后端

整個后端是用 Django/Python3 編寫的。操作系統是 Ubuntu。

使用 uWSGI 來提供網絡流量。NGINX 放在 uWSGI 進程前面充當負載均衡器。

主要數據存儲是 PostgreSQL,我有多年開發和運營經驗——經過測試的技術很完善,所以我晚上能睡得著覺。Redis 用于緩存、統計數據等多個地方。Elasticsearch 用來索引播客和劇集并提供搜索查詢,就像大多數無聊的企業一樣。

Celery 用于離線處理。而 Celery Beat 用于調度任務,類似于 Cron 作業,但性能更佳。如果將來 Listen Notes 越來越受歡迎并且 Celery&Beat 導致一些擴展問題,我可能會轉向我為前雇主做的兩個項目:ndkale 和 ndscheduler。

Supervisord 用于每臺服務器上的進程管理。

那 Docker / Kubernetes / serverless 怎么樣?不。隨著經驗積累,你就會知道什么時候不要過度設計。實際上,我在 2014 年為我的前雇主做過一些早期的 Docker 工作,這對于一家市值十億美元的中等規模創業公司來說是件好事,但對于一個小型創業公司來說可能有點「大炮打蚊子」了。

前端

網頁前端主要使用 React+Redux+Webpack+ES。這是非常標準的。在部署到生產時,JS 包將上傳到 Amazon S3 并通過 CloudFront 提供服務。

文章關鍵詞
服務器
互聯網公司
搜索引擎
elasticsearc
急速赛车国语 海南飞鱼历史开奖号码查询 黑色沙漠加工赚钱吗 大富豪棋牌官网地址 新三板股票涨跌幅限制 有什么转qq空间赚钱的app 双色球16014大奖 河南十一选五遗漏 陕西十一选五预测 内蒙古11选5走势图l 杰克棋牌新版下载 325棋牌官网 可以摆摊收购赚钱的游戏 股票指标赚钱吗 群英会开奖走势图 浙江十一选五彩票 网上棋牌娱乐犯法吗