您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 系统/运维 > 正文

无服务器技术如何实现最佳的DevOps实践

发表于:2020-09-17 作者:李睿 编译 来源:51cto

日益激烈的市场竞争和不断增长的客户期望促进企业业务的发展。与此同时,采用DevOps对一些企业来说可能是一个挑战,因为它包括调整实践和更新基础设施。尽管工程资源可能很少,但是无服务器提供了解决DevOps挑战的解决方案。从改进的物联网设备到经济高效的机器学习应用程序,无服务器生态系统正在促进企业采用DevOps。

为什么无服务器对DevOps有利?

DevOps加快了企业开发速度,同时减少停机时间,从而为企业提供了竞争优势,在特性和功能方面加快了产品成熟度,并改善了客户体验。尽管DevOps具有吸引人的优点,但采用DevOps成本高昂并且耗时。无服务器能够以更低的成本和更高的回报克服障碍,并支持DevOps解决方案的实施。

无服务器技术提供了一种按需付费模式,允许企业为使用的资源付费。例如使用AWS Lambda,企业可以根据调用的次数和持续时间支付费用,从而有可能降低成本。功能即服务(FaaS)的价格可能会比容器更昂贵,具体取决于流量体验。流量越高,一致性越强,无服务器工具的成本就越高,并且这些成本可能会比容器成本上升得更高。

由于无服务器技术具有自动扩展性和完全可管理性,它允许团队专注于DevOps基础设施实际构建的业务逻辑,而不必花费大量时间来维护DevOps架构。

可用性和性能监控

诸如AWS Lambda或Azure Functions之类的功能即服务(FaaS)相对容易启动,可以自动扩展且具有成本效益。这些可以对企业的服务进行API调用,而API调用可以由用户通过前端接口进行。这些定期检查可确保其服务连续可用,并且监视工具可以捕获生产环境中发生的任何故障,以通知任何性能下降。用户可以通过事件管理软件即服务(SaaS)工具整合来自监视工具的警报。

功能即服务(FaaS)可用于自动可用性和性能检查。然而,无服务器的事件总线将警报作为功能即服务(FaaS)功能的调用在整个DevOps基础设施中进行通信,从而降低了功能即服务(FaaS)功能的按需付费模型和自动扩展性的总体成本。

ChatOps改进DevOps流程

在GitHub开发的ChatOps是一个对话驱动的开发程序,允许用户在聊天工具中输入命令,通过自定义脚本和插件启动持续集成(CI)/持续部署(CD)过程。脚本的操作需要后端支持,这是无服务器技术可以提供支持的地方。

功能即服务(FaaS)功能使DevOps工程师能够简单地编写脚本以执行预期的操作,并将其上传到功能中,同时确保聊天工具可以调用它。这消除了繁琐的容器编排和网络设置。此外,只有在通过聊天机器人调用功能即服务(FaaS)功能时才会产生成本,而不是按小时计算。

无服务器增强了持续集成(CI)/持续部署(CD)流程以实现连续部署

与ChatOps相似,无服务器可用于增强持续集成(CI)/持续部署(CD)流程,但与ChatOps不同,无服务器可通过合并拉出请求以在生产环境中实现自动化整个过程。这称之为GitOps。

由Weaveworks构思的GitOps是Kubernetes集群管理和应用交付的一种方法。通过利用Kubernetes的聚合特性,Git推送触发了连续交付。GitOps允许Kubernetes集群管理和应用程序交付,使用Git作为声明性基础设施和应用程序的唯一真实来源。由于Git是交付管道的中心,开发人员可以加速拉取请求,并简化Kubernetes的应用程序部署和操作任务。

GitOps为基础设施和应用程序代码提供了“真相来源”,以进一步提高开发团队的速度。使这成为可能的工作流从持续集成(CI)工具开始,将Docker映像推送到托管工具。然后云计算功能将配置图和Helm图从主存储桶复制到主要的Git repo。最后,GitOps操作人员通过Lambda功能提取Helm图表。

通过复制Helm图,可以将功能即服务(FaaS)功能用于主要Git repo。功能即服务(FaaS)功能易于设置且具有成本效益,这意味着DevOps工程师可以专注于GitOps基础设施的其他部分,并在这一过程中降低成本。

DevOps之路充满挑战,但无服务器可以提供帮助

无服务器可通过按需付费、自动扩展、完全托管的服务来减轻DevOps采用的复杂性,从而使DevOps基础设施更高效、更具成本效益。从开发和测试到持续集成(CI)/持续部署(CD)和事件管理,无服务器技术可在整个DevOps堆栈中使用,以最佳成本运行,并且在开发速度和代码可靠性方面非常有效。

原文标题:How Serverless Technologies Can Achieve Optimal DevOps Practices,原文作者:Sarjeel Yusuf