创建一家互联网公司需要几个人?一个就够了
主要数据存储是 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:
deploy.sh 脚本有三个参数:
部署过程主要由 Ansible yaml 文件制定,当然,它很简单:
我不使用那些花哨的 CI 工具。实际的操作非常简易。 监控和警报 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |