挑战
Woorank 成立于 2011 年,很早就采用了微服务和容器化,其核心产品是一个帮助数字营销人员提高网站在互联网上可见性的工具,由 12 位技术人员开发和维护的 50 个应用程序组成。在 Mesos 上,基础设施平稳运行了两年,但“我们仍然有很多自己的库需要开发,很多应用程序需要引入,因此对于我们这样的小团队来说,要保持这些东西的活力并更新它们是非常麻烦的,”首席技术官兼联合创始人 Nils De Moor 说。因此,他开始寻找一种具有更多自动化和自愈功能的新解决方案,以便更好地适应公司的人力资源。
解决方案
De Moor 决定切换到运行在 AWS 上的 Kubernetes,他说:“这使我们能够定义应用程序、它们的运行方式、它们的可扩展性,并减轻了开发人员在这方面的思考负担。”“当事情失败并且出现错误时,系统会尝试自我修复,这对我们来说是使用 Kubernetes 的主要原因。”该公司现在还使用 Fluentd、Prometheus 和 OpenTracing。
影响
该公司最关心的问题立即得到了解决:维护 Kubernetes 只需要一名员工,而且不是全职工作。基础设施更新过去需要两个工作日,现在只需“几个小时被动地跟踪该过程”即可,De Moor 说。实施新工具(过去需要数周的规划、安装和入职)现在只需要几天。“我们在成本方面已经非常灵活,并且能够应对流量高峰和更高的负载,”De Moor 补充道,“但是通过 Kubernetes 和我们使用的其他 CNCF 工具,我们已经实现了大约 30% 的成本节省。”此外,每天的部署率几乎翻了一番。
“我们帮助他们获取大量数据,然后以有意义的方式将其呈现给他们,以便他们可以使用这些数据,”首席技术官兼联合创始人 Nils De Moor 说。在其作为初创公司的七年中,该公司遵循了一条熟悉的技术路线来构建该产品:从单体应用程序开始,将其分解为微服务,然后采用容器化。“这就是我们现代基础设施的起点,”De Moor 说。
随着新功能被添加到产品中,它已经发展为由 50 个应用程序组成。虽然 Docker 使部署变得更容易,并且该团队自 2015 年以来一直在 AWS 上使用 Mesos 作为编排框架,但 De Moor 意识到,管理基础设施仍然有太多的开销,尤其是在只有 12 名技术人员的情况下。
“痛点在于,我们仍然有很多自己的库需要开发,很多应用程序需要引入,因此对于我们这样的小团队来说,要保持这些东西的活力并更新它们是非常麻烦的,”De Moor 说。“当部署过程中出现问题时,必须有人手动进来解决问题。并不是说技术或 Mesos 有什么问题;只是它不适合我们作为一家小型公司的模式,我们没有足够的人力资源来确保一切正常并可以更新。”
在 Woorank 努力解决这些问题时,Kubernetes 正在成为一项新兴技术。De Moor 知道他想要一个更加自动化和自愈的平台,当他开始尝试 Kubernetes 时,他发现它满足了所有这些要求。“Kubernetes 使我们能够定义应用程序、它们的运行方式、它们的可扩展性,并减轻了开发人员在这方面的思考负担,”他说。“当事情失败并且出现错误时,系统会尝试自我修复,这对我们来说是使用 Kubernetes 的主要原因。它使我们能够建立某些测试框架,以便在出现问题时收到警报,而不是必须查看是否一切正常。这使人们的生活变得更加轻松。这是一个相当大的思维模式转变。”
一旦一个小的 Kubernetes 集群启动并运行,该团队就开始一次移动几个应用程序,并在几个月的时间里逐步增加负载。到 2017 年初,Woorank 100% 部署在 Kubernetes 上。
该公司最关心的问题立即得到了解决:维护 Kubernetes 仅由一名员工负责,而且不是他的全职工作。更新旧的基础设施“总是一件痛苦的事情”,De Moor 说:过去需要两个工作日,“而且当我们这样做时,总是有点可怕”。使用 Kubernetes,只需“几个小时被动地跟踪该过程”。
从代码到服务器,各个层面的透明度也是迁移到 Kubernetes 的副产品。“整个团队更容易更好地了解基础设施、它的工作原理、它的外观、正在发生的事情,”De Moor 说。“这不再是运行的东西,除了某个人之外,没人真正知道它是如何工作的。现在,每个人都了解这确实是一个团队的努力,‘好的,当出现问题时,可能是在这个区域,或者我们需要检查这个。’”
为此,Woorank 已开始实施其他有助于提高可见性的云原生工具,例如用于日志记录的 Fluentd、用于监控的 Prometheus 和用于分布式跟踪的 OpenTracing。实施这些新工具(过去需要数周的规划、安装和入职)现在只需要几天。“借助 CNCF 保护伞下的所有工具和项目,我们比以前更容易测试和使用技术,”De Moor 说。“对于 Prometheus,我们很早就使用了它,但无法使其保持相当稳定。几个月前,这个问题再次出现,因此我们在两天内将其设置好,现在每个人都在使用它。”
部署也受到了影响:部署率翻了一番多,De Moor 将其部分归因于新流程的透明度。“使用 Kubernetes,你可以看到这三个容器由于这个原因没有启动,”他说。另外,“现在我们将部署消息带入 Slack。如果你看到每天都有部署滚动,它会在某种程度上间接地强制你,好的,我需要成为这列火车的一部分,所以我还需要部署。”
然而,也许最大的影响是利润方面。“我们在成本方面已经非常灵活,并且能够应对流量高峰和更高的负载,但是通过 Kubernetes 和我们使用的其他 CNCF 工具,我们已经实现了大约 30% 的成本节省,”De Moor 说。
并且还有更大的节省空间。目前,Woorank 的大部分基础设施都在 AWS 上按需运行;该公司支付固定价格,并为计划所需的资源量进行了一些预留。De Moor 计划更多地尝试使用竞价实例处理某些资源密集型工作负载,例如网络爬取:“我们可以根据特定的时间线计划这些事情,尝试使我们的资源使用量适应它,然后引入竞价实例,这有望进一步降低成本。”
迁移到 Kubernetes 对 Woorank 来说收益如此之大,以至于该公司正在加倍投入云原生技术和社区。“对我们来说,将 CNCF 作为一切的保护伞绝对非常重要,”De Moor 说。“我们一直都在使用开源库、工具和技术。这对我们来说非常有效,但有时事情会发生变化,维护者会退出,项目会失控。对我们来说,知道无论哪个项目被纳入这个保护伞下,都会被非常认真地对待,这一点确实非常重要。我们回馈的方式也是加入这个社区。对我们来说,这是一种表达我们对这个框架中正在发生的事情的感谢的方式。”