这篇文章是Serverless系列的第三篇文章,这一系列文章是为了探索Serverless的本质。
第一篇: Serverless的本质是什么?第二篇: Serverless是如何改变公司业务、开发流程以及文化的?第三篇: 迁移到Serverless之前应该想清楚的几件事
越来越多的公司开始关注Serverless架构,因为它使用了一种按使用的计算量付费(pay-only-for-the-compute-you-use)的模型,这种模型不仅可以提高开发效率,同时也可能降低运营成本。
这意味着实施Serverless架构的公司不需要对可提高计算能力的基础架构有很深的了解。Serverless架构的一个主要优点是自动扩展,因此不需要DevOps来持续监控何时需要配置新的服务器。
这样做也带了一些缺点,在许多情况下,如果某些事情没有按预期运行,或者实际运行的成本高于预期,你是无法详细的知道发生了什么事情而导致了这种结果。并且Serverless将重心转移到应用程序级别,这带来了一系列新的应用程序监控问题。
自然而然,在新兴的Serverless生态系统中,DevOps工具是最先开始蓬勃发展的。云原生计算基金的Serverless环境(The Cloud Native Computing Foundation’s Serverless landscape)可以识别至少六个DevOps工具,还有一些与平台无关的监控工具也可以在Serverless系统中使用。
以下是您应该了解一些重要的工具,它们可以帮助您很好的维护企业级环境。
1. CloudZero
CloudZero的CEO以及创建者Erik Peterson说道“CloudZero是第一个Serverless智能云平台,在这个平台上,云服务被看作是新型电脑,云服务提供商如Amazon Web Services (AWS)被看作是新型操作系统”。CloudZero平台使工程师,架构师以及DevOps团队能够实时监控以及了解他们的Serverless系统,并通过一个统一的平台管理一个或者数百个云账号的延迟,错误和成本。
Peterson说道“我们解决的第一个问题就是识别异常行为,监测Serverless系统发生的变化,然后找到是谁或者是什么导致了这种变化”。
目前,CloudZero只推出了beta进行测试,并计划于2018年下半年发布。
2. Dashbird
Dashbird是一个AWS Lambda监控和调试平台。传统的应用程序性能监视方法通常通过远程API发送数据来收集日志,然后用这些日志数据创建监控面板和警报。然而这种方法并不适用于Serverless,因为延迟太大了。作为解决方法,Dashbird在Function退出时部署了一个标志,以显示它何时重试以及何时首次调用。
令人意外的是Dashbird在某些情况下被用作调试工具。Serverless的挑战之一是没有开发环境(development staging),因此开发人员必须运行Functions以查看它们真实的运行情况,然后查看如果它没有按预期执行是因为什么原因。 Dashbird有一个用于Serverless框架的开源Serverless离线插件可以模拟Lambda操作和API网关,开发人员可以用这个插件创建测试环境。
3. Epsagon
Epsagon帮助公司和开发人员使用Serverless技术,同时不失去对应用程序的控制,提供Serverless架构的端到端的可见性和可视化。
Epsagon还可以进行快速故障排除,减少系统停机时间。开发人员在使用Epsagon后,故障排除时间缩短了80%以上。该公司使用分布式跟踪和AI技术,分析应用程序的性能和瓶颈,改善最终用户体验,同时控制了成本。
与Serverless生态系统中的其他DevOps工具相比,Epsagon目前处于测试阶段(beta release),Epsagon的联合创始人兼首席执行官Nitzan Shapira说道,它们计划在今年晚些时候推出GA版本(general availability release)。
Shapira说,他们的一些早期客户包括数据分析初创公司,财务和移动应用程序开发人员。目前有一个客户是广告科技公司,他们使用Serverless流水线来分析数据。他们会全天开放Epsagon交易概览页面(transactions views page),并使用Epsagon来解决系统中的棘手问题以及分析根本原因。他们反馈说,使用Epsagon为每位开发人员每天节省两小时。”
4. Honeycomb
Honeycomb首席执行官Charity Majors表示,Honeycomb是一项服务,它帮助您找到那些通过简单日志分析无法找到的关键问题。它允许用户以毫秒为单位查询和可视化数百万个事件,并查看每个结果背后的原始数据。它与数据的来源无关 - 无需代理或插件。 API只需接受一个带有写权限密钥的结构化数据(blob,Binary Large OBject),这种方法使它天生适用于无状态,Serverlese的代码片段。”
Majors说,Serverless架构师正尝试在一种新的场景下使用Honeycomb的跟踪功能。 “跟踪事件与其他事件一样,你可以将跟踪事件的ID传递给Serverless Function来查看事件实际花费时间和工作的瀑布图,”她指出,使用Honeycomb,你既可以在广度优先的搜索和深度优先的痕迹检查之间来回切换。例如,您在debug时,可以首先缩小范围找到bug的实例,然后跟踪该实例,然后再放大范围以查看这个bug影响了哪些事件。
5. IOpipe
IOpipe 联合创始人兼首席技术官Erica Windisch说道,IOpipe提供了一种Serverless的DevOps工具,专注于“应用程序操作(Application Ops)”。她说,在Serverless环境中,每次调用Function后都应该观察应用程序中发生了什么。
IOpipe旨在提供一套监视和调试工具,以便更深入地了解在调用Serverless工作流的每个Lambda Function后发生的事情。使用IOpipe,您可以在代码编辑器中工作并在您的应用程序添加IOpipe Serverless框架插件或使用我们的装饰器(decorator)。然后你可以在另一个窗口中打开IOpipe,就会看到信息导入到该窗口中。
6. Stackery
Stackery的Serverless工具包帮助专业开发团队快速交付生产就绪的Serverless应用程序,并使其快速部署到AWS Lambda上。其旗舰软件已经出了GA( general availability)版本,Stackery 的CEO Nate Taggart 说,我们现在致力开发Serverless的关键需求,专注于协作,治理和标准化。
“我们目前正在对CLI和开发人员工作流程进行一些重要的改进。我们正在创造市场上最高效专业的Serverless开发周期,并在接下来的30天内发布这些更新。“Taggart表示。他的DevOps工具之前已经在The New Stack上进行了介绍[1]。
他指出最近与一位企业客户合作,这位客户正面临一项挑战,他们需要在Serverless架构中创建标准化且可重复的发布流程。而这正是Taggart经常见到的。
“他们尝试使用AWS SAM,CloudFormation和Serverless框架,但在管理环境,自动发布版本,配置IAM以及运行测试方面遇到了困难,”他说该公司选择Stackery来进行环境管理,IAM策略自动化和集中化发布周期。
“现在,团队中的每个开发人员都可以在隔离的环境中快速启动应用程序的新实例。这使他们加快了开发周期,并在每次pull request被合并后自动化运行他们的测试和发布,“Taggart说。
7. Thundra
Thundra是一种专为Serverless架构设计的可视化的解决方案。 Thundra的一些主要功能如下:
自动化检测:Thundra不需要用户在代码中添加手动检测和日志语句来收集数据。它会自动检测代码来收集相关数据,这样用户可以监控并快速解决问题。
全面监控:Thundra在环境中收集并提供统一的视图指标,日志和跟踪,以便快速解决问题。
零开销:Thundra支持异步数据收集(以及同步),以确保不会对应用程序产生任何影响。
智能采样:Thundra支持可配置的智能采样,确保收集到用来识别和排除故障所需的数据,同时控制成本。
尽管Thundra计划在今年晚些时候推出GA版本,但早期使用者已经从该工具中受益。
“早期使用者之一(一个全球金融公司)需要一种解决方案,以确保他们能够在转移到Serverless架构后为开发人员提供和之前架构相同级别的监控,”Thundra的联合创始人兼开发主管SerkanÖzal表示。 “由于他们现有的APM(application performance management )工具无法在Serverless架构中运行,因此他们采用了Thundra作为Serverless应用程序的监控解决方案。”
在逐渐成熟的Serverless生态系统中使用DevOps工具
虽然Serverless远远不是一个成熟的技术市场,但它正在迅速发展,随着基础架构被移交给云提供商进行管理,Serverless变得无法预测以及难以监控,正因为如此,DevOps成为Serverless生态系统早期的领跑者。
这带来了一些风险,这些风险需要在应用程序级别进行管理。而且,正如来自Epsagon的Nitzan Shapira所解释的那样,对于Serverless模型整体而言:“最难理解的就是不同的资源,队列,数据库和触发器(triggers)以及它们现在如何组成一个系统。”
相关链接:
https://thenewstack.io/emerging-ops-tooling-serverless-reveals-two-adoption-paths/
原文链接:https://thenewstack.io/7-essential-devops-tools-to-maintain-serverless-operations/
基于Kubernetes的DevOps实践培训
基于Kubernetes的DevOps实践培训将于2018年8月24日在北京开课,3天时间带你系统掌握Kubernetes
。本次培训包括:容器特性、镜像、网络;Kubernetes架构、核心组件、基本功能;Kubernetes设计理念、架构设计、基本功能、常用对象、设计原则;Kubernetes的数据库、运行时、网络、插件已经落地经验;微服务架构、组件、监控方案等,点击下方图片查看详情。