公司梨甲板 位置爱荷华州爱荷华市 行业教育软件

挑战

三岁的启动为教师提供了一个web应用程序在教室里与学生互动。JavaScript应用程序是建立在Google的web应用程序开发平台重火力点,使用Heroku。随着用户稳步的成长,开发团队也是如此。“我们超越Heroku当我们开始想有多个服务,和部署有很可怕的故事。我们感觉很沮丧,我们不可能开发人员快速阶段版本,”莱利Eynon-Lynch首席执行官说。“追踪和监测成为基本不可能的。”最重要的是,许多梨甲板的客户背后政府防火墙和连接通过重火力点,不是梨甲板的服务器,使故障诊断更加困难。

解决方案

2016年,该公司开始把他们的代码从Heroku容器上运行谷歌Kubernetes引擎精心策划的Kubernetes和监控普罗米修斯

影响

新的云本地堆栈立即改善了开发流程,加快部署。普罗米修斯给梨甲板“很多信心,知道人仍然登录到应用程序,使用它所有的时间,“Eynon-Lynch说。“最大的影响是能够工作作为一个团队在git pull请求,配置和最大的信心来自于抽象的可靠性和信任,我们在Kubernetes实际上使我们yaml文件成为现实。”

与速度适合创业、梨甲板向客户交付其第一个原型将在三个月内。

作为以前的高中数学老师,CEO Riley Eynon-Lynch感到一种紧迫感提供技术解决方案类,教师努力与每个学生在很短的时间。“梨甲板是一个应用程序,学生可以与老师互动,”他说。”当老师问一个问题,而不只是孩子在房间的前面再回答,每个人都能回答每一个问题。这是一个巨大的消息根本转变学生对我们多么关心他们和他们是一个教室的一部分。”

Eynon-Lynch和他的合作伙伴迅速建立了一个JavaScript web应用程序在谷歌的web应用程序开发平台重火力点,推出了最小可行产品(MVP)Heroku“因为它是快速和容易的,”他说。“我们让一切如我们可以容易。”

但一旦启动,用户开始以每月30%的速度稳步增长。“我们的Heroku比尔已经完全疯了,”Eynon-Lynch说。但更重要的是,该公司雇用了更多开发者保持同步,“我们超越Heroku。我们想有多个服务和部署有很可怕的故事。我们感觉很沮丧,我们不可能开发人员快速阶段版本。跟踪和监控变得基本上是不可能的。”

最重要的是,许多梨甲板的客户背后政府防火墙和连接通过重火力点,不是梨甲板的服务器,使故障诊断更加困难。

团队开始四处寻找另一种解决方案,最终决定在2016年初开始将应用程序从Heroku容器上运行谷歌Kubernetes引擎精心策划的Kubernetes和监控普罗米修斯

他们认为谷歌的应用程序引擎等其他选项(他们已经使用一个服务)和亚马逊的弹性计算云(EC2),而尝试运行一个小服务,不是在Kubernetes访问互联网。“当谷歌Kubernetes引擎显然会有很多来自谷歌的支持,全面管理Kubernetes平台,我们似乎很明显,路要走,”Eynon-Lynch说。“我们并没有真正考虑起程拓殖和提供的其他竞争对手,因为抽象Kubernetes就跳下页面我们。”

一旦团队开始移植Heroku应用Kubernetes,“超级简单,”他说,这个影响是直接的。“之前,做一个新版本的应用程序意味着要Heroku和重新配置10新服务,所以基本上没有人愿意这样做,和我们从来没有的事情,”他说。“现在我们可以部署相同在很多不同的集群配置30秒。我们建立了一个完整的,总是跑步,然后我们的开发人员或设计人员可以使用一个命令阶段新版本,包括最近的变化。现在我们的舞台,每个人都停止谈论它有多酷,因为它的隐身是多么的伟大。”

随着Kubernetes普罗米修斯。“直到最近,我们没有任何类型的可见性总服务器规格或性能,“Eynon-Lynch说。研究小组曾试图使用谷歌Kubernetes引擎Stackdriver监控,使它工作,但问题和考虑New Relic。当他们开始看普罗米修斯在2016年的秋天,“普罗米修斯和抽象之间的配合我们思考我们的系统是如何工作的,是如此清晰和明显的,”他说。

集成与Kubernetes设置简单。一旦安装舵普罗米修斯,“我们开始我们所有的健康图Kubernetes立即节点和豆荚。我认为我们非常沉迷在这一点上,“Eynon-Lynch说。“然后我们有我们自己的自定义仪器工作在15分钟内,和有一个积极更新计数的请求,我们能做的,利率和了解有多少用户在一个给定的点连接。然后是另一个小时前我们有警报自动出现在我们松弛通道。那是在一个下午。着,那是一个下午,高兴的是,基本上!”

通过重火力点与梨甲板的具体challenges-traffic以及政府firewalls-Prometheus改变。“我们甚至不知道紧张是我们缺乏了解与应用程序发生了什么,”Eynon-Lynch说。之前,当客户将报告应用程序不工作,团队必须手动调查问题不知道客户是否会影响世界各地,或是否重火力点,。

为了帮助解决这个问题,研究小组写一个脚本,ping重火力点从几个不同的地理位置,然后报告普罗米修斯在直方图的响应。“对我们产生巨大的影响,普罗米修斯是一个了不起的松了一口气,感觉我们知道发生了什么,”他说。“花了45分钟来实现(重火力点报警),因为我们知道我们在普罗米修斯这个值得信赖的标准平台。我们不是要弄明白,“我们把这些指标?我们怎么总指标?我们如何理解它们呢?”

另外,普罗米修斯让梨甲板为业务目标构建警报。一个措施成功的应用程序加载的速度离开,如果当天的不到90%的负荷前七天。“我们运行一个JavaScript应用程序背后的荒谬的防火墙和各种疯狂浏览器扩展干扰it-Chrome将推动一项功能,打破一些我们使用的CSS,“Eynon-Lynch说。“这给了我们很大的信心,我们至少知道,人们仍然登录到应用程序,使用它所有的时间。”

现在,当客户抱怨,没有警报了,团队可以相信这不是一个普遍的问题。“可以肯定的是,我们可以去仔细检查图和说,“是的,目前10000人重火力点节点的连接。这绝对是工作。让我们调查你的网络设置,客户,”他说。”,我们可以通过后退到我们的客服代表的工作,而不是整个开发团队吓坏了,重火力点。”

梨甲板也回馈社区,构建和开源指标聚合器在普罗米修斯,使终端用户监控。“例如,我们可以测量时间interactive-dom web客户端,”他说。“用户的所有报告我们的聚合器,然后聚合器报告普罗米修斯。我们可以制定一些客户端错误警报。”

梨甲板的大部分服务现在已经转移到Kubernetes。和所有的团队的新代码是Kubernetes。“Kubernetes让我们实验与服务配置和舞台上登台集群,并测试不同的场景和谈论他们的开发团队看代码,并不仅仅是在谈论我们作为人类最终将采取的步骤,“Eynon-Lynch说。

展望未来,该小组计划探索Kubernetes自动定量。世界各地的用户,但主要是在美国,在交通高峰和低谷。一个服务,还在App Engine可以多达10000个请求在第二天晚上但少得多。“我们晚上支付相同的服务器,所以我理解自动定量,我们可以利用,”他说。“实现它是一个很大的担心,揭露其他集群Kubernetes我们也许,搞乱。但它绝对是我们的意图将一切都结束了,因为现在所有的开发人员想要工作在应用程序部署它了,因为它是这样的痛苦。”

他们也渴望探索Kubernetes正在做的工作状态集。“现在我们在Kubernetes运行所有的服务是无状态的,基本上和谷歌为我们运行我们的数据库和管理备份、“Eynon-Lynch说。“但我们感兴趣的是建立自己的web socket的解决方案,不需要超级状态但也许会有一个小时的国家。”

项目还将涉及普罗米修斯,在一个漆黑的夜晚,推出网络套接字连接。“我们不知道如何可靠的网络套接字连接所有这些可怕的防火墙背后将是我们的服务器,”他说。“我们不知道重火力点已经使他们工作更可靠。所以我真的很期待想要持久连接web sockets客户和可选的工具来理解如果是工作。这是我们的下一个新冒险,进入状态服务器”。

至于普罗米修斯,Eynon-Lynch认为该公司才起步。“我们还没有检测我们所有的重要特性,尤其是那些依赖于第三方,”他说。“我们必须等待这些第三方来告诉我们他们下来,有时他们不做了很长一段时间。所以我很兴奋,有越来越多的信心在我们的应用程序的实际状态对于我们的实际用户,而不仅仅是CPU图表在说什么,因为普罗米修斯和Kubernetes。”

活泼的创业公司的持续增长迅速,是的,他们是招聘!梨甲板尤其是满意其基础设施的发展情况如何在云中原生生态系统。“通常我有一些焦虑的事情,我想要新的,更好的技术,“Eynon-Lynch说,“但从云中,Kubernetes和普罗米修斯有这么多。”

Baidu