公司 Woorank 地点 布鲁塞尔,比利时 行业 数字营销工具

挑战

Woorank 成立于 2011 年,很早就采用了微服务和容器化技术,因此其核心产品——一款帮助数字营销人员提高网站在互联网上可见度的工具——由 50 个应用程序组成,这些应用程序由一个 12 人的技术团队开发和维护。在 Mesos 上运行基础设施两年期间一直很顺利,但 De Moor 说道:“我们仍然需要开发和引入很多我们自己的库和应用程序,对于我们这样的小团队来说,维护和更新这些东西非常麻烦。”因此,他开始寻找一种内置更多自动化和自我修复功能的新解决方案,以更好地匹配公司的人力资源状况。

解决方案

De Moor 决定转向在 AWS 上运行的 Kubernetes。他表示:“这让我们能够仅仅定义应用程序,它们需要如何运行,需要多高的可伸缩性,从而减轻了开发人员的思考负担。”“当出现故障和错误时,系统会尝试自我修复,这确实是我们使用 Kubernetes 的关键原因。”公司现在还使用 FluentdPrometheusOpenTracing

影响

公司最关心的问题立即迎刃而解:维护 Kubernetes 只需一名员工负责,而且这不是全职工作。基础设施更新过去需要两个全天工作日,De Moor 表示,现在只需“被动地遵循流程几个小时”即可。过去需要数周规划、安装和集成的工具现在只需几天即可实现。De Moor 补充道:“我们在成本方面已经非常灵活,能够应对流量高峰和更高的整体负载,但通过使用 Kubernetes 和我们使用的其他 CNCF 工具,我们实现了约 30% 的成本节约。”此外,每日部署的频率几乎翻了一番。

Woorank 的核心产品是一个工具,可以帮助数字营销人员提高其网站在互联网上的可见度。

首席技术官兼联合创始人 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。实施这些新工具过去需要数周的规划、安装和集成,现在只需几天即可完成。De Moor 说:“借助 CNCF 框架下的所有工具和项目,我们比以前更容易测试和试用技术。”“对于 Prometheus,我们很早就使用了它,但不太稳定。几个月前,这个问题再次出现,我们两天就将其设置好了,现在每个人都在使用它。”

部署也受到了影响:部署频率增加了一倍多,De Moor 将此部分归因于新流程的透明度。他说:“通过 Kubernetes,你可以看到这三个容器因为这个原因没有启动。”此外,“现在我们把部署消息发送到 Slack。如果你每天都看到部署在进行,这确实会间接促使你,好吧,我也需要加入这个‘列车’,所以我也需要部署。”

然而,最大的影响可能体现在底线。De Moor 说:“我们在成本方面已经非常灵活,能够应对流量高峰和更高的整体负载,但通过使用 Kubernetes 和我们使用的其他 CNCF 工具,我们实现了约 30% 的成本节约。”

而且还有更大的节省空间。目前,Woorank 的大部分基础设施运行在 AWS 按需实例上;公司支付固定价格,并对其计划所需的资源量进行部分预留。De Moor 计划更多地尝试使用 Spot 实例来处理某些资源密集型工作负载,例如网络爬虫:“我们可以根据特定的时间线规划这些任务,尽量使我们的资源使用与之匹配,然后引入 Spot 实例,这有望进一步降低成本。”

转向 Kubernetes 对 Woorank 来说非常有益,因此公司正在加倍投入云原生技术和社区。De Moor 说:“拥有 CNCF 作为我们一切事务的‘保护伞’绝对非常重要。”“我们一直使用开源库、工具和技术。这非常适合我们,但有时事情可能会偏离轨道,维护者可能会退出,项目也可能失控。对我们来说,知道任何被纳入这个‘保护伞’下的项目都会受到认真对待,这确实很重要。我们回馈社区的方式之一就是加入这个社区。对我们来说,这是一种表达我们对这个框架中所发生一切的赞赏的方式。”