公司 AdForm 地点 丹麦哥本哈根 行业 广告科技

挑战

Adform 的使命是提供安全透明的完整广告技术堆栈,以实现在所有设备上的数字广告。该公司拥有庞大的基础设施:基于 OpenStack 的私有云,运行在全球 7 个数据中心的 1,100 台物理服务器上,其中 3 个数据中心是去年才开放的。随着公司的发展,基础设施团队感到“我们的私有云不够灵活,”IT 系统工程师 Edgaras Apšega 说。“最大的痛点是我们的开发人员需要维护他们的虚拟机,因此推出新技术和新软件需要时间。我们发布时遇到了很大困难,而且我们没有自愈基础设施。”

解决方案

该团队已经使用 Prometheus 进行监控,并于 2017 年采用了 Kubernetes 和云原生实践。“为了开始我们的 Kubernetes 之旅,我们必须调整所有软件,因此我们必须选择更新的框架,”Apšega 说。“我们还采用了微服务方式,因此可观察性更好了,因为您可以单独检查错误或服务。”

影响

“Kubernetes 对我们的业务帮助很大,因为我们的功能更快地推向市场,”Apšega 说。发布过程从几个小时缩短到几分钟。自动扩缩至少比之前所需的半手动虚拟机引导和应用程序部署快 6 倍。团队估计,由于所需硬件和设置硬件、虚拟机、指标和日志的人工工时减少,公司节省了 4-5 倍的成本。硬件资源利用率也降低了,容器的效率比虚拟机高 2-3 倍。“部署非常简单,因为开发人员只需推送代码,它就会自动出现在 Kubernetes 上,”Apšega 说。Prometheus 也产生了积极影响:“它为指标和警报提供了高可用性。我们监控从硬件到应用程序的一切。将所有指标放在 Grafana 仪表板中,可以对您的系统提供深入的洞察。”

Adform 去年成为头条新闻,当时它检测到 HyphBot 广告欺诈网络,该网络每天给一些企业造成数十万美元的损失。

为了提供安全透明的完整广告技术堆栈以实现开放互联网的使命,Adform 发布了一份白皮书,揭示了它如何以及其他人可以如何限制客户遭受诈骗。

本着同样的精神,Adform 正在分享其云原生之旅。“当你看到每个人都分享他们的最佳实践时,这会激励你为项目做出贡献,”IT 系统工程师 Edgaras Apšega 说。

该公司拥有庞大的基础设施:基于 OpenStack 的私有云,运行在全球七个数据中心的 1,100 台物理服务器上,其中三个是去年才开放的。随着公司的发展,基础设施团队感到“我们的私有云不够灵活,”Apšega 说。“最大的痛点是我们的开发人员需要维护他们的虚拟机,因此推出新技术和新软件确实需要时间。我们发布时遇到了很大困难,而且我们没有自愈基础设施。”

该团队已经使用 Prometheus 进行监控,并采用了 Kubernetes、微服务和云原生实践。“云原生计算基金会孵化 Kubernetes 对我们来说是一个非常重要的点,因为它与供应商无关,”Apšega 说。“我们可以看到一个社区真正围绕它聚集起来。”

一个概念验证项目启动了,一个 Kubernetes 集群在数据中心的裸机上运行。当开发人员看到容器的启动速度比虚拟机进程快得多时,“他们想立即将容器投入生产,而我们仍在进行概念验证,”IT 系统工程师 Andrius Cibulskis 说。

当然,还有很多工作要做。“首先,我们必须学习 Kubernetes,了解所有移动部件,它们如何粘合在一起,”Apšega 说。“其次,整个 CI/CD 部分必须重做,我们的 DevOps 团队必须投入更多工时来实施它。第三是开发人员必须重写代码,他们仍在这样做。”

第一个生产集群于 2018 年春季启动,现在在三个数据中心拥有多达 20 台专用于 Pod 的物理机器,并计划在其他四个数据中心建立独立的集群。面向用户的 Adform 应用程序平台、数据分发平台和后端现在都在 Kubernetes 上运行。“许多关键应用程序的 API 正在为 Kubernetes 开发,”Apšega 说。“团队正在将他们的应用程序重写为 .NET Core,因为它支持容器,并准备迁移到 Kubernetes。新应用程序默认都放在容器中。”

这项重大推动是由这些新实践带来的实际影响驱动的。“Kubernetes 对我们的业务帮助很大,因为我们的功能更快地推向市场,”Apšega 说。“部署非常简单,因为开发人员只需推送代码,它就会自动出现在 Kubernetes 上。”发布过程从几个小时缩短到几分钟。自动扩缩至少比之前所需的半手动虚拟机引导和应用程序部署快六倍。

团队估计,由于所需硬件和设置硬件、虚拟机、指标和日志的人工工时减少,公司节省了 4-5 倍的成本。硬件资源利用率也降低了,容器的效率比虚拟机高 2-3 倍。

Prometheus 也产生了积极影响:“它为指标和警报提供了高可用性,”Apšega 说。“我们监控从硬件到应用程序的一切。将所有指标放在 Grafana 仪表板中,可以对我们的系统提供深入的洞察。”

所有这些好处都惠及了个人团队成员,他们的工作生活因此变得更好。“他们过去必须在晚上起床重新启动某些服务,现在 Kubernetes 处理了所有这些,”Apšega 说。Cibulskis 补充道:“发布对他们来说非常棒,因为他们只需将代码推送到 Git,就大功告成了。他们不再需要担心自己的虚拟机。”甚至安全团队也受到了影响。“安全团队总是抱怨连连,”Apšega 说,“现在他们很高兴,因为他们可以轻松检查容器。”

Cibulskis 说,该公司目前计划继续使用数据中心,“主要是因为我们想保留所有数据,不以任何方式共享,而且以我们的规模来看更便宜。”但 Apšega 说,使用混合云进行计算的可能性很有趣:“我们感兴趣的一个项目是 Virtual Kubelet,它允许您在不同的云上启动工作节点进行一些计算。”

Apšega、Cibulskis 和他们的同事正在关注云原生生态系统的发展,并很高兴能在力所能及的范围内做出贡献。“我认为我们公司刚刚开始我们的云原生之旅,”Apšega 说。“前方似乎还有很长的路要走,但我们很高兴能加入其中。”