Ignat Korchagin, Cloudflare
Over the years Cloudflare have built a huge network: today we have over 5000 servers in 120 data centers around the world and operate a dozen of workloads in our infrastructure, including Nginx, Kafka, Mesos, ClickHouse, Prometheus, ElasticSearch, Hadoop etc. But with all the diversity in software stacks our hardware fleet still shared one common thing—CPU architecture: we, like most other SaaS companies around the world, exclusively used x86-based CPUs.
Recently we began exploring using a second CPU architecture for our hardware. The obvious choice was ARM, because it is the second most popular architecture in the world thanks to the boom of the mobile and IoT markets. Initially we considered to evaluate cost-effectiveness of running a different CPU architecture in our data centers and how easy it is to avoid vendor lock-in. The recently published Meltdown and Spectre attacks gave us even more reasons to pursue this goal.
After doing preliminary tests and some synthetic benchmarks and the results were promising came the question: so what’s next? The answer: we need to put this into the wild...
The talk provides an overview of potential steps and pitfalls of adopting a second CPU architecture in your cloud.
Ignat Korchagin, Cloudflare
Ignat is a systems engineer at Cloudflare working mostly on platform and hardware security. Ignat’s interests are cryptography, hacking, and low-level programming. Before Cloudflare, Ignat worked as senior security engineer for Samsung Electronics’ Mobile Communications Division. His solutions may be found in many older Samsung smart phones and tablets.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Ignat Korchagin},
title = {Call to {ARMs}: Adopting an arm64 Server into x86 Infrastructure},
year = {2018},
publisher = {USENIX Association},
month = jun
}