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

挑战

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

解决方案

该团队在 2017 年已经开始使用 Prometheus 进行监控,他们开始拥抱 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 的私有云,在全球 7 个数据中心运行在 1,100 台物理服务器上,其中 3 个是在过去一年开设的。随着公司的发展,基础设施团队感觉“我们的私有云不够灵活”,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 上。”发布过程从几个小时缩短到几分钟。自动伸缩至少比以前所需的半手动虚拟机引导和应用程序部署快 6 倍。

该团队估计,由于减少了硬件和设置硬件、虚拟机、指标和日志记录所需的人工工时,公司节省了 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 说。“前方似乎还有很长的路要走,但我们很高兴加入了它。”