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

挑战

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

解决方案

该团队一直在使用 Prometheus 进行监控,并于 2017 年采用了 Kubernetes 和云原生实践。Apšega 表示:“要开始我们的 Kubernetes 之旅,我们必须改造所有的软件,所以我们必须选择更新的框架。”“我们还采用了微服务的方式,因此可观察性大大提高,因为你可以单独检查 bug 或服务。”

影响

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

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

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

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

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

该团队一直在使用 Prometheus 进行监控,并采用了 Kubernetes、微服务和云原生实践。Apšega 表示:“云原生计算基金会 孵化了 Kubernetes 这一事实对我们来说非常重要,因为它不依赖于特定的供应商。”“我们看到社区确实围绕着它聚集起来。”

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

当然,仍然有很多工作要做。Apšega 表示:“首先,我们必须学习 Kubernetes,了解它所有的活动部件,以及它们如何协同工作。”“其次,整个 CI/CD 部分必须重做,我们的 DevOps 团队不得不投入更多人力来实施它。第三是开发人员必须重写代码,而且他们仍在进行。”

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

这种大规模推动是源于这些新实践所产生的实际影响。Apšega 表示:“Kubernetes 对我们的业务帮助很大,因为我们的功能上市速度更快了。”“部署非常简单,因为开发人员只需推送代码,它就会自动出现在 Kubernetes 上。”发布过程从几个小时缩短到几分钟。自动扩缩的速度比之前所需的半手动 VM 引导和应用程序部署至少快六倍。

团队估计,由于所需的硬件以及设置硬件和虚拟机、指标和日志记录所需的人力减少,公司节省了 4-5 倍的成本。硬件资源的利用率也降低了,容器的效率比虚拟机提高了两到三倍。

Prometheus 也产生了积极影响:Apšega 表示:“它为指标和警报提供了高可用性。”“我们监控从硬件到应用程序的一切。在 Grafana 控制面板中查看所有指标,能对我们的系统有很好的了解。”

所有这些好处都惠及了团队中的个体成员,他们的工作生活得到了改善。Apšega 表示:“他们以前不得不半夜起床重启一些服务,而现在 Kubernetes 处理这一切。”Cibulskis 补充道:“发布对他们来说非常好,因为他们只需将代码推送到 Git,就行了。他们再也不用担心他们的虚拟机了。”甚至安全团队也受到了影响。Apšega 说:“安全团队通常并不满意,”现在他们很高兴,因为他们可以轻松地检查容器。”

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

Apšega、Cibulskis 和他们的同事正在关注云原生生态系统的发展,并很高兴在力所能及的地方做出贡献。Apšega 表示:“我认为我们公司才刚刚开始我们的云原生之旅。前方似乎道路漫漫,但我们很高兴加入了它。”