服务
关于
CloudProse博客
无服务器

用于过程,项目和规模的无服务器框架

贾里德·崔特(Jared Short Trek)
贾里德·肖特(Jared Short) | 2016年2月29日

2016年2月29日星期一

像任何良好的工程驱动文化一样, Trek10 我们会不断评估新技术,并与之进行修补,以找出它们如何适合我们的工作流程和流程。想知道我们最近使用的最酷的新框架是什么吗? 无服务器.

我仍然在调用框架时就开始使用它 。该框架对 Trek10 有两种方式-在我们公司的内部运营和我们对客户项目的外部方法。

无服务器流程& Jobs

作为技术商店和AWS咨询合作伙伴,我们的许多内部流程都与监控基础架构,响应Webhooks,处理sns通知,处理计费数据(以找出建议的预留实例)以及各种其他临时职位。过去,我们尝试过Minicron和Docker等解决方案&cron。失败的原因是它们比看起来要难。开始时,唯一的要求似乎是足够的专业知识和时间来完成工作。事情迅速升级为与我们的DevOps员工交谈,以使服务器准备就绪或寻求有关Docker容器设置的帮助,并确保作业正常运行。通过所有设置和配置管理,应该简单一些的设置比只编写脚本要花费更多的时间。然后,为获得适当的照顾,应该添加监视以确保其按预期运行。

解决方法是在过程中增加一些结构。经过几个月的合作 无服务器,我们发现它引入了足够的流程和约定,大多数团队 Trek10 能够创建和管理自己的流程和脚本。

作为公司给我们带来的好处 是它使我们可以更快地移动并构建更复杂的脚本和作业,而不会引入过多的管理开销。

AWS Lambda的一些流程示例&无服务器现在正在供电 Trek10 包括:

  • 自定义自动缩放 精英{:target =““ _ blank”}服务器& Clusters
  • 数据狗{:target =“ _ blank”} Webhook处理可在Zendesk中创建警报
  • 自定义过滤sns事件-> Zendesk & Slack Channels
  • 来自的实时聊天记录处理 Chatlio{:target =““ _ blank”}
  • 详细的帐单报告{:target =““ _ blank”}处理

无服务器项目& Apps

我不想将无服务器框架放入“仅适合计划或临时工作”框。我们以及其他人,都使用它来驱动完整的软件应用程序。 Ruby对Rails意味着什么 无服务器 到AWS Lambda& API网关。我应该提到* 无服务器-*成为更广泛的目标,使其成为云事件驱动计算的“轨道”。

无服务器 在构建和管理特别是基于微服务的体系结构的完整工作流方面非常出色。像任何适当的面向服务的体系结构一样,它允许您在服务部署级别上管理部署。甚至更有趣的是,根据您所需的隔离级别,您甚至可以在特定功能或端点级别上管理部署。这使您的开发人员可以迭代并快速移动。回滚也很容易。

使用 无服务器 框架是实现成本优化的原因,因为您只需要为使用的计算时间付费。许多项目的运行时间不是24/7。这意味着它们的服务器通常处于空闲状态。对于较小的项目,这可能多达90-95%的时间。在里面 无服务器 框架,不收取空闲时间。结果,较小的项目应用程序在其生命周期内通常可以免费或接近免费运行,并且许多较大的项目应用程序可以显着降低成本。购买服务器并不是成本的终点。服务器上项目的管理还意味着适当的监视和维护(安全更新,日志轮换等)。 无服务器 减少了无论是轻还是重使用都运行小型应用程序的开销。

AWS Lambda的一些项目示例&无服务器正在推动 Trek10 马上:

  • 我们用于单一登录的客户门户,可提供各种服务和实时聊天
  • AWS Debugger,运行各种AWS API调用和扫描,以集中深入概述一组AWS资源
  • 松弛的“ ChatCLI”界面,用于管理我们内部流程的不同部分(基于 无服务器Slackbot)

企业无服务器& Scale

我们很幸运能够继续工作 无服务器 规模微不足道的应用程序。换句话说,通常需要使用自动缩放组的缩放比例,并且将其考虑到系统核心功能的优化中,因为即使细微的优化也可以导致较大的性能提升。

最有趣的实现 无服务器 我们发现的框架是有新方法可以解决旧问题。例如,当处理资产(例如图像)时,典型的体系结构需要工作人员,一个队列,并且您必须管理整个系统。您的工作人员可能应该是一个独立的自动伸缩组,以SQS或Redis为食。这将在系统中至少增加两个额外的移动齿轮。用 无服务器,Lambda扇出模式可将所有内容整齐地保留在同一系统中,从而减少了管理和维护开销。

使用这些新模式,我们发现不必担心知道可以扩展的内容以及管理工作人员池和作业队列,而可以更加关注详细的优化。在图像的示例中,我们可以花费额外的时间来使图像调整大小速度仅快10%。

由于我们的主题是扩展,因此我想指出的是,通过消除这种自动扩展组的概念,您实际上不必再担心尖峰负载,交通意外或业务忙碌之类的事情,爬网服务。拉姆达&API网关几乎可以无限扩展。伸缩仅仅是线性成本的问题。更多的钱与额外的规模成正比。

无服务器与传统成本图

的一个很好的附带好处 无服务器 框架是因为您的整个应用程序都是代码,因此它迫使人们生活在代码定义的基础结构世界中。您的应用程序的不同阶段将您的应用程序放置在不同的区域。如果您正确使用了服务框架和所有可以使用的工具,那么即使将应用程序迁移到全新的AWS账户也非常简单。 无服务器 鼓励和支持CloudFormation。我们发现这可以激发业务实体在可以在公司内重用的项目上进行潜在的协作。的 无服务器 框架还鼓励共享项目和组件的想法。

未来的无服务器

当我第一次遇到JAWS(现在 无服务器)项目,并了解它要实现的目标以及实现方式,这有助于我理解云事件驱动计算的真正力量。我把它带给团队,说:“就是这样,这就是下一件大事™”。

我坚信,我们只是在探讨AWS Lambda可以并且将要完成的事情。我相信在未来几年中,在事件驱动的计算世界中,我们将看到更广泛的用途,更大的应用程序和更强大的用例。我也相信我们会看到 无服务器 框架,社区以及其他方面的类似努力,建立并维护基本的构建基块,以使每个人都可以利用 无服务器’ 原始的潜在力量。

奖金回合时间

我想看到的东西 无服务器:

  • 静态网站表单的提交和管理(我们正在努力!)
  • WordPress替换(无服务器博客项目)
  • 个人媒体服务器(更少!)
  • 家庭自动化框架/项目(使用 AWS 物联网?)

分享

作者
贾里德·崔特(Jared Short Trek)
贾里德·肖特(Jared Short)