Bare metal Kubernetes at Adform: 'We like it and the developers love it'

Migrating to containers has meant 20 per cent performance improvement and happier devs, say systems engineers at the adtech firm

Adform is a global advertising technology platform that provides a marketplace for publishers and advertisers. In this space, it competes with Google. Google recently and rather ominously dropped its famous "don't be evil" motto, but, said systems engineer Edgaras Apšega, Adform is proud of its own mission statement. "We deliver the technology that enables an open internet" he said. "We're like the good Google."

Apšega (pictured, left) and his colleague Andrius Cibulskis work on the team that delivers private cloud services to Adform's developers. The private cloud is based on OpenStack, supports 4,000 virtual machines (VMs) and runs across seven data centres globally. This architecture was chosen for performance and compliance reasons, because it's open source, and also for it's low running costs.

"Private cloud is actually much cheaper than public cloud," Apšega said. "But you have to have the skills, you have to do a lot of the work yourself," he told Computing at the recent KubeCon and CloudNative event.

The cause of more than a few grumbles, developers have had to manage the VMs themselves manually - bootstrapping them, installing their own security patches and monitoring software - and getting up in the middle of the night to restart them when they go down.

About a year ago the private cloud team started to experiment with containers and Kubernetes as a way of easing this burden and offering additional services. Their initial proof of concept proved successful and they now have a Kubernetes stack running on bare metal servers across their data centres in parallel with their private cloud, which it will gradually replace. All new applications are now designed as microservices for containers. Meanwhile, the legacy applications running on OpenStack are being steadily refactored and migrated across to the new system.

"It's a huge project, we are migrating all our API servers now and eventually our customer-facing apps will all be in containers too," said Cibulskis. "It's really a lot of work refactoring from .Net".

So why do it? So far they have achieved a 20 per cent improvement in performance, Cibulskis said, but the really noticeable boost has been to developer morale.

"We really like it and the developers love it," he said, simply. "They can go into production really fast because they just push to Git and everything is done automatically, all the CI/CD part. They don't have to worry about spinning up VMs."

Apšega chipped in: "Kubernetes saves the developers a lot of time," he said. "You should see their faces now. Even the security guys are happy - and they are never happy. But now they can inspect the containers and make sure that Security is in control of the services. They're really happy about that."

This latter improvement comes through Jaeger, a distributed tracing system, and the Prometheus monitoring software that Adform runs on Kubernetes.

"Before we had no real tracing capability but now the developers push the code and we have running Prometheus instances that automatically start the apps and we have Jaeger that automatically samples the traces, and everything is logged automatically. Everything is in place so the developers don't need to worry about anything," said Apšega.

The self-healing properties of Kubernetes also have an obvious appeal to those who's pagers routinely beep at 4 am.

"They would have to get up in the night when the application crashed and remove the servers but now with containers it just automatically restarts them. That's a huge advantage."