可口可乐的Serverless实践案例研究


【编者的话】如果你想知道有哪些大公司在使用Serverless技术的话,你可以查看这个快速案例研究,其中介绍了可口可乐公司如何利用这项技术。

前段时间我谈到大公司是如何开始在生产中使用Serverless的,这个明显的信号表示我们将在不久的未来能看到更多的Serverless基础设施的实施。今天我们将谈谈在生产中使用Serverless的公司之一:可口可乐。

早在2016年,可口可乐北美公司的云迁移战略负责人Michael Connor就在AWS Re-Invent上展示了他们为了将下一代数字营销应用程序完全无服务器化而制定的工具和策略,这会议窥探了他们计划在未来使用AWS Lambda的创新之路。

在解释传统服务器存在的多个问题时,他推出了一个真正引起我个人共鸣的观点:“开发者需要了解DevOps才能去构建企业应用”。

仔细思考一下,大部分公司依赖于开发者去运行或者管理他们的服务器,而这并不值得他们去花费时间。虽然了解为了加载应用程序需要输入哪些黑魔法到Linux终端很有趣,但这并不应该是先决条件。

注意!故事即将开始,请坐和放宽~

当我开始从事Coding工作时,前端开发与后端开发几乎是没有区别的。事实上,我们都曾坐在同一条船上,即都是开发人员。对于Web,前端开发意味着HTML与CSS。然后在2004年Ajax开始流行后,我们将JavaScript添加到了前端开发人员的必须技能树中。几年后,管理者们又觉得前端开发人员需要掌握一点设计的知识,也许是一小部分关于Photoshop或Illustrator的使用,以及其他一些用户体验和用户界面设计相关的知识。

你可能不相信我所说的,你可以立即查找前端开发人员的招聘广告,并将其与2006年至2009年的招聘广告进行比较。你将发现这是一个很明显的事实。

好的,快进到2018年。作为前端开发人员,你需要了解上面提到的所有技术以及一点Angular,React,Redux,VueJs,Aurelia,SemanticUI,Bootstrap,Bulma,Foundation,这个列表在此之后还会持续更新。

这就是应用程序的前端。后端就更糟糕了,添加到“新常态”,即后端开发人员需要能够部署,监视,管理,进行安全更新等等。再次对比后端招聘广告,你会得出同样的结论。

那么Serverless有何不同?

Serverless仍会需要你学习并使用一系列同样的前端框架,但它能消除所有后端,管理,安全漏洞等的压力。这将能让你专注于应用程序,UX、UI和业务逻辑,而其他一切都将无需操心。

可口可乐与Serverless

回归到当前主题,让我们看看可口可乐是如何使用Serverless技术来改善他们的服务的。

可口可乐公司在全球范围内的自动售货机与可口可乐总部有一个集成的通信系统。为这些机器提供服务的人员通过这系统知道特定机器是否会存在饮料库存不足或者是否会发生其他问题。营销团队使用相同的系统,可创建诸如“买一送一”之类的活动,或者购买可乐产品获取信用点数的活动。

为了开始比较两种选择,即基础设施即服务与功能即服务,让我解释一下可口可乐在采用Serverless之前所做的事情。他们最古老的自动售货机(具有上述功能的自动售货机)大约有10到12年的历史。直到2016年,他们一直在使用6台EC2 T2.Medium机器,每年运行费用为12,864美元。这包括自动化,Ealastic负载均衡器,管理,安全等。在这方面,他们运行这些自动售货机一年所需的一切花费将近13,000美元。

迁移到Serverless框架之后,将所需功能的成本加起来,每年成本降至4,490美元。这是根据他们当时面临的3000万个请求计算出来的。Connor在AWS re:invent上表示,基础设施作为服务假如要转亏为盈的话,每月大约要有8000万次调用。这是他们当时期望值的3倍。

coca-cola serverless in aws

实际上它是如何工作的?

自动售货机背后的逻辑很简单。客户购买饮料,机器调用支付网关(恰好是可口可乐的合作伙伴)来验证购买,该购买对AWS API网关进行Rest API调用,触发Lambda。AWS Lambda将处理事务背后的所有业务逻辑。如果用户通过移动设备发起了交易,则涉及第五步,即向他们的电话发送推送通知,将信息提交给Android Pay或Apple Pay。

可口可乐公司的Serverless实施的另一个令人印象深刻的方面是所有的通信都在不到1秒的时间内完成,并且只有在有实际请求时才需要付费。

结论

可口可乐公司已经在Serverless使用上迈出了一大步,如果你有一个方案并意图将它带到架构审查委员会,你的方案必须基于Serverless。

现在,他们被迫同时使用EC2实例和新开发的Serverless系统,直到他们用更新的Serverless版本替换旧的自动售货机。基本上,在可预见的未来他们每年将花费12,000美元,因为他们不得不继续使用那6台EC2的旧实例机器,直到最老的自动售货机可以退休为止。

如果使用Serverless,这种情况将永远不会发生。想象一下从现在开始的十或二十年,当他们切换到一个不同的系统时(不确定他们会不会这样做但是为了这个论点让我们想象一下这样的场景),随着Serverless版本的自动售货机的消失,如果他们每个月的请求少于100万,他们的成本将降低99%。

我非常期待能听到更多来自可口可乐公司以及他们如何在他们的组织中实施Serverless。虽然我想继续写这篇文章,但出于某种原因,无法解释的冲动,我现在想去一趟商店,买一瓶清爽的可口可乐。

原文链接:Serverless Case Study: Coca-Cola(翻译:fengxsong)

译者介绍

fengxsong,运维开发工程师,Golang语言爱好者,关注Kubernetes/Serverless/CI/CD,希望通过DockOne把最新的译文贡献给大家,与读者一起共同学习交流。

0 个评论

要回复文章请先登录注册