挑战
Adform 的使命是提供安全透明的全栈广告技术,以支持跨设备的数字广告。该公司拥有庞大的基础设施:OpenStack 基于的私有云,运行在全球 7 个数据中心 1,100 台物理服务器上,其中 3 个是在过去一年开通的。随着公司的增长,基础设施团队意识到“我们的私有云并不真正灵活,”IT 系统工程师 Edgaras Apšega 说。“最大的痛点是我们的开发人员需要维护他们的虚拟机,因此推出新技术和软件需要时间。我们在发布方面遇到了很大困难,而且没有自愈基础设施。”
解决方案
该团队已经使用 Prometheus 进行监控,于 2017 年开始采用 Kubernetes 和云原生实践。“为了开始我们的 Kubernetes 之旅,我们不得不调整所有软件,因此必须选择更新的框架,”Apšega 说。“我们还采用了微服务方式,因此可观察性要好得多,因为您可以分别检查错误或服务。”
影响
“Kubernetes 对我们的业务帮助很大,因为我们的功能上市速度更快,”Apšega 说。发布流程从几小时缩短到几分钟。自动缩放的速度至少是之前半手动 VM 引导和应用程序部署速度的 6 倍。该团队估计,由于硬件减少以及设置硬件和虚拟机、指标和日志所需的工时减少,公司已节省了 4-5 倍的成本。硬件资源的利用率也已降低,容器的效率是虚拟机的 2-3 倍。“部署非常容易,因为开发人员只需将代码推送到 Kubernetes,它就会自动出现,”Apšega 说。Prometheus 也产生了积极的影响:“它为指标和警报提供高可用性。我们从硬件到应用程序监控一切。在 Grafana 仪表板中拥有所有指标可以很好地洞察您的系统。”
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 年春季启动,现在已扩展到三个数据中心中专门用于 pod 的 20 台物理机器,并且计划在其他四个数据中心中创建单独的集群。面向用户的 Adform 应用程序平台、数据分发平台和后端现在都在 Kubernetes 上运行。“许多针对关键应用程序的 API 正在为 Kubernetes 开发,”Apšega 说。“团队正在将他们的应用程序重写为 .NET Core,因为它支持容器,并准备迁移到 Kubernetes。默认情况下,新应用程序将以容器形式运行。”
这一重大推动源于这些新实践带来的实际影响。“Kubernetes 对我们的业务帮助很大,因为我们的功能上市速度更快,”Apšega 说。“部署非常容易,因为开发人员只需将代码推送到 Kubernetes,它就会自动出现。”发布流程从几小时缩短到几分钟。自动缩放的速度至少是之前半手动 VM 引导和应用程序部署速度的六倍。
该团队估计,由于硬件减少以及设置硬件和虚拟机、指标和日志所需的工时减少,公司已节省了 4-5 倍的成本。硬件资源的利用率也已降低,容器的效率是虚拟机的两到三倍。
Prometheus 也产生了积极的影响:“它为指标和警报提供高可用性,”Apšega 说。“我们从硬件到应用程序监控一切。在 Grafana 仪表板中拥有所有指标可以很好地洞察我们的系统。”
所有这些优势都传递到了个人团队成员身上,他们的工作生活得到了改善。“他们过去常常在晚上起床重启一些服务,现在 Kubernetes 处理所有这些工作,”Apšega 说。Cibulskis补充道:“发布对他们来说非常棒,因为他们只需将代码推送到 Git,就完成了。他们不再需要担心他们的虚拟机。”甚至安全团队也受到了影响。“安全团队总是很不高兴,”Apšega 说,“现在他们很高兴,因为他们可以轻松地检查容器。”
该公司目前计划留在数据中心,“主要是因为我们希望保留所有数据,不以任何方式共享,”Cibulskis 说,“而且在我们的规模下,这样做更便宜。”但是,Apšega 说,使用混合云进行计算的可能性很有吸引力:“我们感兴趣的项目之一是 Virtual Kubelet,它可以让您在不同的云中启动工作节点以进行一些计算。”
Apšega、Cibulskis 和他们的同事正在密切关注云原生生态系统的发展,并热衷于贡献自己的力量。“我认为我们的公司刚刚开始我们的云原生之旅,”Apšega 说。“它看起来是一条漫长的道路,但我们很高兴加入它。”