共计 3451 个字符,预计需要花费 9 分钟才能阅读完成。
一家初创公司如何通过 Kubernetes 将其基础设施成本降低 50%
公司:Nav 地点:犹他州盐湖城和加利福尼亚州圣马特奥工业:为企业提供金融服务
挑战
Nav 成立于 2012 年,为小型企业提供三个主要商业信用局 – Equifax、Experian 和 Dun&Bradstreet – 的商业信用评分,以及最符合他们需求的融资方案。五年后,该创业公司发展迅速,“我们的云环境变得越来越大,我们对这些环境的使用率极低,例如低于 1%。”工程总监 Travis Jeppson 说。“我们希望我们对云环境的使用与我们实际需要的内容更紧密地结合在一起,因此我们开始关注容器化和编排,以帮助我们能够运行彼此不同,但可以共享类似资源池的工作负载。”
解决方法
在评估了许多编排解决方案后,Nav 团队决定采用在 AWS 上运行的 Kubernetes。Kubernetes 周围社区的实力强大,以及 Google 的出身。此外,“其他解决方案往往相当笨重、非常复杂、非常庞大,而且很难立即管理。”Jeppson 说。“Kubernetes 为我们提供了一种非常简单的方法,可以作为符合我们当前需求的编排解决方案,而且它的可扩展性使我们能够在未来增长并能够构建更多特性和功能。”
影响
这个由四人组成的团队在六个月内完成了 Kubernetes 的启动和运行,Nav 的 25 个微服务的完全迁移在另外六个月内完成。结果令人印象深刻:首先使公司走上了这条道路的资源利用率,从 1%增加到 40%。推出一项新服务过去需要两个开发者两周;现在只需一个开发者不到 10 分钟。部署增加了 5 倍。该公司节省了 50%的基础设施成本。
“Kubernetes 为我们提供了一种非常简单的方法,可以作为符合我们当前需求的编排解决方案,而且它的可扩展性使我们能够在未来增长并能够构建更多特性和功能。”– TRAVIS JEPPSON,工程总监,NAV
Nav 成立于 2012 年,为小企业提供三个主要商业信用局 – Equifax、Experian 和 Dun&Bradstreet – 的商业信用评分,以及最适合他们需求的企业财务健康和融资方案的详细信息。工程总监 Travis Jeppson 表示,其使命归结为,“提高小企业的成功率。”
几年前,Nav 认识到自己走向成功的障碍。业务发展迅速,“我们的云环境变得越来越大,我们对这些环境的使用率非常低,比如低于 1%。”Jeppson 说。“大多数问题都与扩展能力有关。我们只是在砸钱。’ 让我们启动更多的服务器。让我们做更多的事情来处理增加的负担。’ 而我们是一家创业公司,这可能会导致我们的死亡。我们没有钱在那种东西上烧。”
此外,每项新服务都必须经过 10 个不同的人,这需要两周时间才能完成。“所有的补丁管理和服务器管理都是非常手动完成的,因此我们都必须观察,并保持良好状态。”Jeppson 补充道。“这只是一个非常麻烦的系统。”
“社区绝对至关重要:能够传递各种想法,谈论我们所面临的许多类似挑战,并获得帮助。我喜欢我们能够出于不同的原因解决同样的问题,但在此过程中互相帮助。”– TRAVIS JEPPSON,工程总监,NAV
Jeppson 曾在以前的工作中使用容器,并将该技术推荐给 Nav 的管理层,作为解决这些问题的方法。他在 2017 年初获得了绿灯。“我们希望我们对云环境的使用与我们实际需要的更加紧密结合,因此我们开始关注容器化和编排,以帮助我们运行彼此不同的工作负载,但可以分享类似的资源库。”他说。
在评估了许多业务流程解决方案后,该公司决定采用在 AWS 上运行的 Kubernetes。Kubernetes 周围社区的力量强大,加上起源自谷歌。此外,“其他解决方案往往相当笨重、非常复杂、非常庞大,而且真的难以管理。”Jeppson 说。“Kubernetes 为我们提供了一种非常简单的方法,可以作为一个符合我们当前需求的编排解决方案,但它的可扩展性也可以让我们随之增长,并在以后构建更多特性和功能。”
Jeppson 的四人工程服务团队在六个月内完成并运行了 Kubernetes(他们决定使用 Kubespray 来启动集群),Nav 的 25 个微服务和一个主要的单体在另外六个月内完成完全迁移。“我们无法重写一切;我们无法停机。”他说。“我们必须不停运行,我们必须保持可用,我们必须有最少的停机时间。因此,我们对构建管道、度量标准和日志记录非常满意,然后围绕 Kubernetes 本身:如何启动它、如何升级它、如何为它提供服务。我们一点一点地移动。”
“Kubernetes 通过允许我们以前从未有过的所有这些新自由为 Nav 带来了如此多的价值。”– TRAVIS JEPPSON,工程总监,NAV
该过程的一个关键部分包括培训 Nav 的 50 名工程师,并对新工作流程以及迁移路线图保持透明。Jeppson 在整个过程中定期进行演示,并为整个工程师团队提供一周每天四小时的实验室。然后他在 GitLab 中创建了一个存储库来存放所有信息。“我们展示了所有前端和后端开发者如何进入,使用 kubectl 自己创建自己的命名空间。”他说。“现在,很多时候,他们只是来找我们说,’ 这已经准备就绪。’ 我们点击 GitLab 中的一个小按钮,让它进入生产阶段,就完成了。”
自从迁移工作于 2018 年初完成以来,结果令人印象深刻:首先使公司走上了这条道路的资源利用率,从 1%增加到 40%。推出一项新服务过去需要两个开发者两周;现在只需一个开发者不到 10 分钟。部署增加了 5 倍,从每天 10 个增加到每天 50 个。该公司在计算方面节省了 50%的基础设施成本。“接下来我们想进入数据库方面,一旦我们这样做,那么我们将继续降低成本。”Jeppson 说。
Kubernetes 还帮助 Nav 满足其合规需求。之前,“我们必须将一个应用程序映射到一个服务器,主要是由于数据的合规性规定不同。”Jeppson 说。“使用 Kubernetes API,我们可以添加网络政策,隔离该数据并在需要时对其进行限制。”该公司将其群集隔离到一个不受限制的区域和一个限制区域,该区域有自己的一组节点,用于数据保护。该公司还使用 Twistlock 工具确保安全性。“这使夜间睡眠变得更加容易。”他补充道。
“我们现在处理的流量是四到十倍,而且就像 ’ 哦,是的。我们很好。Kubernetes 为我们处理这个问题。’”– TRAVIS JEPPSON,工程总监,NAV
随着 Kubernetes 的到位,Nav 团队也开始采用 Prometheus 来改进系统的指标和日志记录。“Prometheus 制定了一个关于衡量标准的标准,这对开发者来说非常容易采用。”Jeppson 说。“他们可以自由地展示他们想要的东西,做他们需要的东西,并保持他们的代码库清洁,这对我们来说绝对是必须的。”
Nav 来年接下来的是:查看跟踪、存储和服务网格。他们在 KubeCon 花了很多时间与其他公司交谈之后,目前正在评估 Envoy、OpenTracing 和 Jaeger。“社区绝对至关重要:能够传递各种想法,谈论我们所面临的许多类似挑战,并获得帮助。我喜欢我们能够出于不同的原因解决同样的问题,但在此过程中互相帮助。”Jeppson 说。“还有很多要做的事情,关于可扩展性,围绕能够真正完全采用云原生解决方案。”
当然,这一切都始于 Kubernetes。凭借这项技术,Jeppson 的团队已经建立了一个平台允许 Nav 扩展,并“通过允许我们以前从未有过的所有这些新自由为 Nav 带来了如此多的价值。”他说。
关于新产品的讨论,过去常常陷入困境,因为他们必须等待六个月才能建立一个隔离环境,然后找出如何处理流量高峰。“但现在对我们来说没什么。”Jeppson 说。“我们现在处理的流量是四到十倍,而且就像 ’ 哦,是的。我们很好。Kubernetes 为我们处理这个问题。’”
KubeCon + CloudNativeCon + Open Source Summit 大会日期:
会议日程通告日期:2019 年 4 月 10 日
会议活动举办日期:2019 年 6 月 24 至 26 日
KubeCon + CloudNativeCon + Open Source Summit 赞助方案 KubeCon + CloudNativeCon + Open Source Summit 多元化奖学金现正接受申请 KubeCon + CloudNativeCon 和 Open Source Summit 即将首次合体落地中国 KubeCon + CloudNativeCon + Open Source Summit 购票窗口,立即购票!CNCF 邀请你加入最终用户社区