挑战
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 的使命是提供安全、透明的全栈广告技术,以支持开放互联网,为此,该公司发布了一份 白皮书,揭示了该公司为限制客户遭受诈骗所做的努力,以及其他公司也可以采取的措施。
本着同样的精神,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 说道。“这似乎是一条漫长的道路,但我们真的很高兴加入其中。”