“无人操作”创业公司的蓝图

我喜欢做操作,我真的做。 没有什么比设置服务器,选择我最喜欢的Linux发行版,升级这些服务器,确保它们可扩展,配置适当数量的打开文件限制,SSH授权以及安装所有必需的东西更重要的了。

哦,等等-现在有Docker。 只需编写一个Dockerfile,构建它,将其发送到docker存储库,然后配置自动伸缩组并将docker映像附加到它们,别忘了我们需要构建它并将其连接到CI。 一点点黑客攻击才能为开发人员运行它们-哦-我们还需要统筹所有这些对象。 好吧,一切都这么简单。 我不知道为什么我的同事们觉得困难,而我必须一直做所有的工作并不断解释。

现在认真。 我真的很喜欢做ops / dev-ops,它拥有我喜欢计算机的所有美好事物。 您有问题,可以解决,您的团队爱您,因为它可以使一切工作得更好。 这是开发人员和小型创业公司的问题,可能会占用您太多时间。

对于当前的初创公司,我决定尽可能多地禁止操作 为什么?

  1. 关注我们的产品,而不是运行它的基础结构。
  2. 无需进行任何扩展即可扩展的基础架构。
  3. 生活更加快乐 ,减少了服务器故障,流量高峰和安全问题的事件警报。

我曾经嘲笑使用诸如Heroku之类的服务的人-这些人对事情的运作一无所知...但是实际上,他们不一定总是必须这样做,至少起步时并非如此。

无操作基础架构有一些要素,第一个要素是使用静态Web应用程序,并删除网站的Node.js / Rails / whatever层。 托管静态文件时,操作空间较小。 第二个是使用FaaS解决方案来处理动态操作和API。 这些功能可以根据需要运行,因此它们可以无限扩展*,并且其成本应比24x7全天候运行的服务器少。

(* —无休止地如“ AWS可以处理此问题”中所述)

我们使用什么工具? 我可以推荐以下内容:

Netlify是用于静态Web应用程序的CDN。 Netlify连接到GitHub存储库,构建我们的静态站点并将其部署到世界各地。

AWS Lambda是一个FaaS解决方案。 我们将其用于后台处理作业-无需保持服务器正常运行。 它按广告宣传工作,但并非最容易使用。 一些开源项目旨在抽象化这种复杂性,例如ApexServerless等。 我们使用Apex和本地工具在本地运行代码。

现在zeit.co将代码部署到不可变服务器,并在需要时在内部对其进行扩展。 虽然我希望以FaaS的形式运行所有代码,但将其视为一个应用程序会更容易。 我们将Node.js API服务器部署到Now ,并且运行良好。 有一个选项可以将整个Node.js应用程序(由Hapi.js驱动)移动到一个FaaS,但是我们目前不使用它。

AWS RDS管理我们的关系数据库。 几乎不需要任何操作,但目前是dev-op的主要重点。

有些事情仍然没有解决:

  • 静态Web应用程序可能需要花费更多时间来加载,因为首先需要加载所有JS。 基于服务器的解决方案可以是通用/同构/服务器渲染的应用程序,它打破了静态托管的想法。 Web Worker可以用于缓存数据和应用程序外壳,以提高性能。
  • 静态Web应用程序上的身份验证不是很好 首先需要加载应用程序,然后由API服务器确定用户是谁,然后才可以向他们显示正确的页面:登录页面或应用程序本身。
  • 在Lambdas上本地工作并非最简单 ,您可能需要编写自定义脚本才能在计算机上运行它们。 Localstack是一个模拟AWS环境的开源软件,但我认为解决方案应该是抽象出正在运行的Lambda,而不是模拟AWS本身。

我提到的服务都在幕后在AWS上运行,但是将开发人员抽象化了。 我想知道这种抽象是否可以永久存在或在某个时候成立,是否需要回到AWS本身。

如果您喜欢这篇文章,请单击❤并分享。

From: https://hackernoon.com/the-blueprints-of-a-no-ops-startup-e3cf0c9229d2

相关文章:

  • 2021-07-25
  • 2021-12-23
  • 2021-07-19
  • 2021-07-01
  • 2021-08-17
  • 2021-12-15
  • 2021-11-19
  • 2021-11-04
猜你喜欢
  • 2021-08-31
  • 2021-08-29
  • 2021-07-10
  • 2021-10-08
  • 2021-08-17
  • 2022-12-23
  • 2021-11-30
相关资源
相似解决方案