# Deploy Apache Kafka on Arm-based Microsoft Azure Cobalt 100 virtual machines

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/)
- [Overview](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/background/)
- [Create an Arm-based cloud virtual machine using Microsoft Cobalt 100 CPU](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/create-instance/)
- [Install Kafka](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/deploy/)
- [Run baseline testing with Kafka on Azure Arm VM](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/baseline/)
- [Benchmark with official Kafka tools](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/benchmarking/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/kafka-azure/_next-steps/)

## About this Learning Path
|  |  |
| --- | --- |
| Skill level: | Advanced |
| Reading time: | 30 min |
| Last updated: | 17 Sep 2026 |

|  |  |
| --- | --- |
| Author: | Pareena Verma , Arm<br>[GitHub](https://github.com/pareenaverma)<br>[LinkedIn](https://linkedin.com/in/pareena-verma-7853607) |
| Arm IP: | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags: | [Storage](https://learn.arm.com/tag/storage) [Microsoft Azure Cobalt](https://learn.arm.com/tag/microsoft-azure-cobalt) [Linux](https://learn.arm.com/tag/linux) [Kafka](https://learn.arm.com/tag/kafka) |

### Who is this for?
This is an advanced topic for developers looking to migrate their Apache Kafka workloads from x86_64 to Arm-based platforms, specifically on Microsoft Azure Cobalt 100 (arm64) virtual machines (VMs).

### What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Provision an Azure Arm64 VM using Azure console, with Ubuntu Pro 24.04 LTS as the base image.
- Deploy Kafka on an Ubuntu VM.
- Perform Kafka baseline testing and benchmarking on Arm64 VMs.

### Prerequisites
Before starting, you'll need the following prerequisites:
- A [Microsoft Azure](https://azure.microsoft.com/) account with access to Cobalt 100 based instances (Dpsv6)
- Basic understanding of the Linux command line
- Familiarity with the [Apache Kafka architecture](https://kafka.apache.org/) and deployment practices on Arm64 platforms

### Summary
You’ll provision an Arm64 Azure Cobalt 100 VM, install Java and Kafka, and configure Kafka `4.1.0` in KRaft mode. First, you’ll create a topic and verify producer-to-consumer message flow, then run Kafka’s official performance tools to capture throughput and latency. You’ll finish with a working Kafka deployment and baseline benchmark results from an Arm64 instance on Microsoft Azure.

### Frequently asked questions

**Which Azure VM series should I use?**

Select a D-Series v6 VM from the Dpsv6 size series, which uses the Cobalt 100 Arm-based CPU.

**Which operating system image do I choose when creating the VM?**

Use Ubuntu Pro 24.04 (Arm64).

**Do I need ZooKeeper for this Kafka setup?**

No. Kafka `4.1.0` supports KRaft mode, which removes the need for ZooKeeper. Start the broker in KRaft mode.

**How do I verify that Kafka is working after installation?**

Open separate terminals for each of the following tasks: starting the Kafka broker (KRaft), creating a topic, running a consumer, and running a producer. If the consumer receives the messages that you produce, the end-to-end flow works.

**What should I look for when running the Kafka benchmarks?**

Ensure that the broker is running and the topic is ready, then run the official `kafka-producer-perf-test.sh` and `kafka-consumer-perf-test.sh` tools. Review the reported throughput and latency metrics to confirm that the benchmark completed, and to capture baseline results.
