加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

创建一家互联网公司需要几个人?一个就够了

发布时间:2019-10-10 15:05:30 所属栏目:移动互联 来源:机器之心编译
导读:建设一个互联网公司必要几小我私人?一位来自旧金山的软件工程师汇报我们:一个就够了。这位工程师建设了一个名为「Listen Notes」的播客搜刮引擎,像谷歌一样可以利便地搜刮海量播客资源。在这篇文章中,这位工程师向我们先容了他建设「Listen Notes」用到的

首要数据存储是 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 提供处事。

在 ListenNotes.com 上,大大都网页都是半处事器端泛起(Django 模板)和半客户端泛起(React)。处事器端泛起部门提供网页的样板,客户端泛起部门根基上是交互式网页应用措施。可是一些网页完全通过处事器端泛起,由于我的懒惰使工作变得美满以及呈现一些隐藏的 SEO 上风。

音频播放器

我行使了一个颠末大量修改的 react-media-player 在 ListenNotes.com 上构建音频播放器,该播放器应用在 Listen Notes 网站、Twitter 嵌入式播放器和第三方网站上的嵌入式播放器中:

创建一家互联网公司需要几个人?一个就够了

第三方网站上的嵌入式播放器。

播客 API

我们为开拓职员提供简朴靠得住的播客 API。构建 API 相同于构建网站。在后端行使沟通的 Django/Python 仓库,前端行使沟通的 ReactJs(譬喻 API Dashboard、文档......)。

创建一家互联网公司需要几个人?一个就够了

ListenNotes 的 API dashboard。

创建一家互联网公司需要几个人?一个就够了

ListenNotes 的 API 文档。

对付 API,我们必要追踪用户在当前计费周期中行使的哀求数目,并在周期竣事时收取用度。不难想象,Redis 在这里被大量行使:)

DevOps

呆板设置和代码陈设

我行使 Ansible 举办呆板设置。根基上,我写了一堆 yaml 文件来指定必要什么范例的处事器、什么设置文件和什么软件。我可以用全部正确的设置文件和软件启动一个处事器,并通过「一键安装」完成安装。这是 Ansible yaml 文件的目次布局:

创建一家互联网公司需要几个人?一个就够了

我可以在定名方面做得更好。但此刻已经足够好了。

我还行使 Ansible 将代码陈设到出产情形中。根基上,我有一个在 macOS 上运行的打包剧本 deploy.sh:

  1. ./deploy.sh production HEAD web  

deploy.sh 剧本有三个参数:

  • 情形:出产或分段;
  • listennotes repo 版本:HEAD 暗示「仅陈设最新版本」。假如指定了 git commit 的 SHA,那么它将陈设特定版本的代码——当我必要从错误的陈设撤回时,这出格有效;
  • 处事器范例:web、worker、api 或全部处事器。我不必一次陈设到全部处事器。偶然我会对 Javascript 代码举办修改,然后我只必要陈设到 Web,而无需涉及 api 或 worker。

陈设进程首要由 Ansible yaml 文件拟定,虽然,它很简朴:

  • 在 Macbook Pro 上,假如要陈设到 Web 处事器,则构建 Javascript 包并上传到 S3;
  • 在方针处事器上,git 将 listennotes repo 克隆到一个以时刻戳定名的文件夹,搜查特定版本,然后安装新的 Python 依靠项(假若有的话);
  • 在方针处事器上,将标记链接切换到上述时刻戳定名文件夹,并通过 supervisorctl 从头启动处事器。

我不行使那些花哨的 CI 器材。现实的操纵很是浅显。

监控和警报

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读