Over the last few years, software developers have embraced the opportunity to develop cloud native applications and workloads for Arm Neoverse based platforms. This allows them to unlock the platform benefits of better price-performance and energy efficiencies. Arm is taking the lead in enabling a strong collaboration within the open-source ecosystem to ensure software projects provide multi-architecture support to drive these software development efforts. In addition, growing number of ISVs are providing commercial support to their software for customers. This has resulted in a mature software ecosystem for Arm Neoverse and enables a frictionless development experience for a wide range of cloud to edge deployments.
Microsoft is announcing today preview access of Microsoft Azure virtual machines featuring Ampere Altra processors. This makes the Arm ecosystem even stronger. Arm Neoverse-based Ampere Altra processors are designed to meet the requirements of modern datacenters and deliver predictable performance, high scalability, and power efficiency for scale-out cloud deployments. These Ampere Altra-based Azure Virtual Machines are designed to efficiently run Linux based workloads across the software stack. Target workloads include web applications, application servers, open-source databases, custom Java applications, gaming servers and more. Customers looking to deploy their applications can take advantage of the rich software ecosystem support for Arm processors. For specifics of the preview environment, please refer to the Microsoft blog. And for an executive overview on the significance of this announcement, please see our blog from Chris Bergey, GM and SVP for Infrastructure at Arm.
Let us take a closer look at the software stack and the ecosystem support for Arm Neoverse architecture. There is mature support across the operating system landscape enabled by standards-based certification program with Arm System Ready that ensures that the operating systems just work. The Ampere Altra platform is Arm System Ready certified which provides the foundational support needed to enable the operating system environment. Today, all the leading Linux based operating systems support 64-bit Arm architecture as shown below.
Providing a robust set of developer tools support to enable application development in cloud environments is table stakes. This includes native build capabilities across the leading languages extensively used for building enterprise workloads including collaboration with Microsoft on .Net on Arm development.
Developer tools and cloud native software projects are enabled to support Arm architecture across the software stack. Arm is taking an active role in driving projects to be multi-architecture in nature and is a platinum level member within the Cloud Native Computing Foundation. The below cloud native software stack showcases reference projects that enable a wide range of use cases and provide the ease of deploying containerized applications.
Having all the software infrastructure and development tools available enables deployment of broad set of cloud software workloads. Using Arm, developers can achieve better performance and gain overall TCO benefits compared to equivalent x86 systems.
We built two use cases within the Azure Virtual Machine environment that showcases how easy it is for customers to deploy their applications natively on Arm architecture.
In the following example, we showcase a deployment of Java based multi-tiered web application that uses PostgreSQL as the backend database in the Microsoft Azure preview environment. This software stack is running on Arm64 Ubuntu virtual machine and we used Microsoft build of OpenJDK, which is a no-cost long term supported distribution from Microsoft that supports the Arm architecture. We used native Arm binaries of Apache Maven which is an open-source build automation tool used to resolve project dependencies and to build and publish project artifacts. The backend relational database used for this web application is PostgreSQL.
For deploying the application, we used Payara which is an open-source application server based on Glassfish server to run the application natively on Arm.
Figures 1 and 2 below show the details of the build process and the application natively running on Arm64-based Microsoft Azure virtual machines.
Figure 1: Building a Java based web application on an Arm-based Azure VM
Figure 2. Java application running natively on an Arm-based Azure VM
Let us look at an example that showcases how easy it is to build a containerized application in the Arm-based Azure virtual machine environment. We built a Go based web application using native remote builder with Docker BuildX. For this environment, we used Flatcar Container Linux which is a minimal OS image that includes the necessary tools needed to run containers. Figure 3 shows a web application running on a x86 virtual machine. The Docker BuildX command is used to easily make it multi-architecture to run the web application on an Arm64 based virtual machine.
Figure 3. Dockerfile for Go-based web application and image running on x86-based Azure VM
Figure 4. Register and bootstrap for Arm-based Azure VM as a remote builder and build docker image with BuildX
Together with our partner ecosystem, we are enabling customers to gain the platform benefits and achieve scalability, performance, and energy efficiencies for their cloud native software deployments. Microsoft Azure Virtual Machines featuring Arm Neoverse-based Ampere Altra processors are a huge step forward in this journey. You can request access to the preview by filling out this form.
For more information on Arm software ecosystem, please refer to the resources such as Arm Developer Resources and Ampere Solutions Domain.
Or reach out to us directly on Twitter (@ArmSoftwareDev) or through email.
[CTAToken URL="https://aka.ms/Arm64VMsPreview" target="_blank" text="Join the preview" class ="green"]